Status for Dolphin Central
Recent events
2025-11-01T17:37:10.053642 {'source': 'webserver', 'raw': {'buildid': 139581, 'number': 6845, 'builderid': 19, 'buildrequestid': 139741, 'workerid': 8, 'masterid': 1, 'started_at': 1762018591, 'complete_at': 1762018593, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed update (failure)', 'results': 2, 'properties': {'shortrev': ['baa26a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'branchname': ['pr-14061', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [6845, 'Build'], 'project': ['', 'Build'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mvk-osx-m1', 'Worker'], 'pr_id': [14061, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build']}, 'buildrequest': {'buildrequestid': 139741, 'buildsetid': 32362, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1762018591, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1762018591, 'complete_at': 1762018593, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32362, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1762018591, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 139571, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/6845'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:51.543458 {'source': 'webserver', 'raw': {'buildid': 139581, 'number': 6845, 'builderid': 19, 'buildrequestid': 139741, 'workerid': 8, 'masterid': 1, 'started_at': 1762018591, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['baa26a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14061', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [6845, 'Build'], 'project': ['', 'Build'], 'pr_id': [14061, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build']}, 'buildrequest': {'buildrequestid': 139741, 'buildsetid': 32362, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1762018591, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018591, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32362, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1762018591, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 139571, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/6845'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:34.218980 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'shortrev': '1b9d05', 'service': 'pr-osx-universal', 'pr': 14061, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/7980', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2025-11-01T17:36:33.899108 {'source': 'webserver', 'raw': {'buildid': 139582, 'number': 7980, 'builderid': 7, 'buildrequestid': 139707, 'workerid': 8, 'masterid': 1, 'started_at': 1762018593, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'codebase': ['', 'Build'], 'branchname': ['pr-14061', 'Change'], 'buildnumber': [7980, 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'branch': ['refs/pull/14061/head', 'Build'], 'project': ['', 'Build'], 'shortrev': ['1b9d05', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [14061, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [7, 'Builder'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139707, 'buildsetid': 32359, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1762018593, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/7980'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:31.768887 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'shortrev': 'baa26a', 'service': 'pr-osx-universal', 'pr': 14061, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/7979', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2025-11-01T17:36:31.495083 {'source': 'webserver', 'raw': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-osx-universal', 'Builder'], 'builderid': [7, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [7979, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-osx-universal', 'Worker'], 'got_revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 139695, 'buildsetid': 32358, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1762018294, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/7979'}, 'type': 'raw_bb_hook'}
2025-11-01T17:34:57.195576 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/7975', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:34:56.861746 {'source': 'webserver', 'raw': {'buildid': 139580, 'number': 7975, 'builderid': 11, 'buildrequestid': 139733, 'workerid': 1, 'masterid': 1, 'started_at': 1762018475, 'complete_at': 1762018496, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'pr_id': [14059, 'Change'], 'workername': ['freebsd', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'headrev': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Build'], 'project': ['', 'Build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'shortrev': ['57d748', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'got_revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'GitNoBranch'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14059/head', 'Build'], 'branchname': ['pr-14059', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7975, 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker']}, 'buildrequest': {'buildrequestid': 139733, 'buildsetid': 32361, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018475, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018474, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32361, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018474, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9686, 'branch': 'refs/pull/14059/head', 'revision': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018474, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7975'}, 'type': 'raw_bb_hook'}
2025-11-01T17:34:35.625936 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/7975', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:34:35.323023 {'source': 'webserver', 'raw': {'buildid': 139580, 'number': 7975, 'builderid': 11, 'buildrequestid': 139733, 'workerid': 1, 'masterid': 1, 'started_at': 1762018475, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'pr_id': [14059, 'Change'], 'workername': ['freebsd', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Build'], 'project': ['', 'Build'], 'shortrev': ['57d748', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14059/head', 'Build'], 'branchname': ['pr-14059', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7975, 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139733, 'buildsetid': 32361, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018475, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018474, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32361, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018474, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9686, 'branch': 'refs/pull/14059/head', 'revision': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018474, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7975'}, 'type': 'raw_bb_hook'}
2025-11-01T17:34:34.517792 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'lint', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:34.189364 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-flatpak-arm64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.929609 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-flatpak-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.644256 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.384112 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-dbg-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.076606 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-arm64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.824122 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.517630 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-ubu-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.247500 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-osx-universal', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.953755 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-deb-dbg-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.671907 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-deb-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.385436 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-android', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.103219 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'default', 'pr': 14059, 'success': True, 'pending': False, 'url': '', 'description': 'Very basic checks passed, handed off to Buildbot.', 'type': 'build_status'}
2025-11-01T17:34:28.803493 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14059, None, 'unknown')", 'type': 'internal_log'}
2025-11-01T17:34:28.507558 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14059: Core/IOS/FS: Clean up some hard to read NAND state saving logic. (\x0306master\x03...\x0306state-nand-cleanup\x03): \x1f\x0302https://dolp.in/pr14059\x03\x1f', 'type': 'notification'}
Recent 'build_status' events
2025-11-01T17:36:34.218980 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'shortrev': '1b9d05', 'service': 'pr-osx-universal', 'pr': 14061, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/7980', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2025-11-01T17:36:31.768887 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'shortrev': 'baa26a', 'service': 'pr-osx-universal', 'pr': 14061, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/7979', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2025-11-01T17:34:57.195576 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/7975', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:34:35.625936 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/7975', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:34:34.517792 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'lint', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:34.189364 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-flatpak-arm64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.929609 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-flatpak-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.644256 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-freebsd-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.384112 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-dbg-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:33.076606 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-arm64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.824122 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-win-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.517630 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-ubu-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:32.247500 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-osx-universal', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.953755 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-deb-dbg-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.671907 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-deb-x64', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.385436 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'pr-android', 'pr': 14059, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:34:31.103219 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'shortrev': '57d748', 'service': 'default', 'pr': 14059, 'success': True, 'pending': False, 'url': '', 'description': 'Very basic checks passed, handed off to Buildbot.', 'type': 'build_status'}
2025-11-01T17:33:57.246373 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'shortrev': '700ccc', 'service': 'pr-flatpak-x64', 'pr': 14062, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/3114', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2025-11-01T17:33:52.221517 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'shortrev': 'a91240', 'service': 'pr-freebsd-x64', 'pr': 14062, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/7974', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:33:49.330716 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'shortrev': '1b9d05', 'service': 'pr-flatpak-x64', 'pr': 14061, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/43/builds/3116', 'description': 'Auto build in progress on builder pr-flatpak-x64', 'type': 'build_status'}
2025-11-01T17:33:49.057252 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'shortrev': 'baa26a', 'service': 'pr-flatpak-x64', 'pr': 14061, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/3115', 'description': 'Build failed on builder pr-flatpak-x64', 'type': 'build_status'}
2025-11-01T17:33:47.434299 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'shortrev': 'baa26a', 'service': 'pr-flatpak-x64', 'pr': 14061, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/43/builds/3115', 'description': 'Auto build in progress on builder pr-flatpak-x64', 'type': 'build_status'}
2025-11-01T17:33:29.329866 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'shortrev': 'a91240', 'service': 'pr-freebsd-x64', 'pr': 14062, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/7974', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2025-11-01T17:33:28.341766 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'shortrev': 'a91240', 'service': 'lint', 'pr': 14062, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
2025-11-01T17:33:28.085822 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'shortrev': 'a91240', 'service': 'pr-flatpak-arm64', 'pr': 14062, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}
Recent 'command_message' events
2025-10-31T07:21:29.638387 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14058', 'type': 'command_message'}
2025-10-28T05:51:36.069413 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14027', 'type': 'command_message'}
2025-10-28T05:50:49.107495 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14017', 'type': 'command_message'}
2025-10-28T05:50:44.874376 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14028', 'type': 'command_message'}
2025-10-28T05:50:42.580204 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14030', 'type': 'command_message'}
2025-10-28T05:50:33.983902 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14032', 'type': 'command_message'}
2025-10-28T05:50:30.645387 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14033', 'type': 'command_message'}
2025-10-28T05:50:26.962101 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14034', 'type': 'command_message'}
2025-10-28T05:50:17.936798 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14035', 'type': 'command_message'}
2025-10-28T05:50:13.067749 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14036', 'type': 'command_message'}
2025-10-28T05:12:43.428622 {'source': 'discord', 'who': 'oatmealdome', 'what': '<@1320924779556900984> please rebuild 14036', 'type': 'command_message'}
2025-10-22T20:21:28.401891 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14026', 'type': 'command_message'}
2025-10-18T04:46:58.654354 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14024', 'type': 'command_message'}
2025-10-15T17:37:28.685955 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 14018', 'type': 'command_message'}
2025-10-12T19:05:38.159172 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 14002', 'type': 'command_message'}
2025-10-10T07:05:46.795523 {'source': 'discord', 'who': 'smasher2', 'what': '<@1320924779556900984> please rebuild 14002', 'type': 'command_message'}
2025-10-08T04:04:36.477094 {'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984> - please rebuild 13998', 'type': 'command_message'}
2025-10-08T03:15:10.599604 {'source': 'discord', 'who': 'smasher2', 'what': '<@1320924779556900984> please rebuild 13998', 'type': 'command_message'}
2025-10-03T21:00:40.647867 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 13955', 'type': 'command_message'}
2025-10-01T17:41:47.624486 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13967', 'type': 'command_message'}
2025-09-30T17:29:01.708395 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13938', 'type': 'command_message'}
2025-09-29T17:06:07.248930 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13981', 'type': 'command_message'}
2025-09-28T08:22:34.145146 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13958', 'type': 'command_message'}
2025-09-27T07:42:24.760308 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13707', 'type': 'command_message'}
2025-09-27T07:40:10.788667 {'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13973', 'type': 'command_message'}
Recent 'gh_commit_comment' events
2025-10-27T10:11:43.356906 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'commit': 'e599ae37c31b0beb1594b3e664faa0a50db91690', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e599ae37c31b0beb1594b3e664faa0a50db91690#r168886740', 'type': 'gh_commit_comment'}
2025-10-18T07:12:50.565256 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'commit': 'c63f0f37cd84d627dd40ace3205c689efc068ac0', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c63f0f37cd84d627dd40ace3205c689efc068ac0#commitcomment-168194678', 'type': 'gh_commit_comment'}
2025-10-18T07:09:42.868079 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'yaomtc', 'commit': 'c63f0f37cd84d627dd40ace3205c689efc068ac0', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c63f0f37cd84d627dd40ace3205c689efc068ac0#commitcomment-168194634', 'type': 'gh_commit_comment'}
Recent 'gh_issue_comment' events
2025-11-01T16:43:15.631039 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14056, 'title': 'Core/DiscIO: Add a setting to load games into memory.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#issuecomment-3476548564', 'safe_author': True, 'body': "I was going to point the same thing @JosJuice mentioned. We don't run WADs directly from file since (at least) Dolphin 5.0 stable. WADs always get installed to the NAND and then run from the NAND if you boot one directly. In other words, WAD caching won't accomplish anything...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'id': 3572862008, 'node_id': 'PR_kwDOALCn2M6wuhHO', 'number': 14056, 'title': 'Core/DiscIO: Add a setting to load games into memory.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)'}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-10-30T23:50:55Z', 'updated_at': '2025-11-01T16:43:13Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.patch', 'merged_at': None}, 'body': 'Addresses https://bugs.dolphin-emu.org/issues/11876\r\n\r\n<img width="419" height="287" alt="image" src="https://github.com/user-attachments/assets/fc84d31a-0df6-44a1-9f9f-ebdc90d4f932" />\r\n\r\nThis is based on #14052 because it requires `BlobReader::CopyReader` results to be thread safe.\r\n\r\n`DiscScrubber` and `LazyMemoryRegion` are used to only cache non-scrubbed regions.\r\nUncached reads appropriately fall back to a normal read.\r\n\r\nNote that installed wiiware is not loaded into memory by this setting. It would probably make sense to just put the whole NAND into memory to accomplish that.\r\n\r\nI\'m certainly open to different naming and wording for the setting.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476548564', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#issuecomment-3476548564', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'id': 3476548564, 'node_id': 'IC_kwDOALCn2M7PN-vU', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T16:43:13Z', 'updated_at': '2025-11-01T16:43:13Z', 'body': "I was going to point the same thing @JosJuice mentioned. We don't run WADs directly from file since (at least) Dolphin 5.0 stable. WADs always get installed to the NAND and then run from the NAND if you boot one directly. In other words, WAD caching won't accomplish anything...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476548564/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T14:56:35.596735 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 11600, 'title': 'Android: remove "Saved settings to INI files" toast message', 'url': 'https://github.com/dolphin-emu/dolphin/pull/11600#issuecomment-3476437191', 'safe_author': True, 'body': "This PR was superceded by #14048 and it's no longer needed, closing...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'id': 1596790678, 'node_id': 'PR_kwDOALCn2M5Kmlja', 'number': 11600, 'title': 'Android: remove "Saved settings to INI files" toast message', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-02-23T12:40:09Z', 'updated_at': '2025-11-01T14:56:33Z', 'closed_at': '2025-11-01T14:56:32Z', 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.patch', 'merged_at': None}, 'body': 'This toast message was added ages ago, back when the Android UI was very rudimentary and you actually had to interact with a little save icon in the toolbar to apply setting changes. The UI got rewritten almost from scratch since then (twice if I recall correctly), dropping the manual save button in the process. Despite that, the toast message associated to it remains in Dolphin to this day, for no good reason (IMO).\r\n\r\nFor a long while now, Dolphin automatically saves changed settings once you exit the settings activity, so the toast message is simply redundant, after all I would argue there\'s an implicit expectation for app settings to get saved when you change them, especially on mobile OSes like Android. The redundancy of the "saved settings" toast message also becomes more apparent when compared to the other toast messages in use by Dolphin, which tells the user of things that actually require attention (e.g. IPL not found, settings that can\'t be changed while emulation is running, paths that can\'t be changed due to Scoped Storage, emulation errors, and so on).\r\n\r\nSo, this PR drops the "Saved settings to INI files" and "Saved settings for \\<game ID>" toast messages that used to appear when exiting the settings activity. The settings are still applied, but without generating a toast message...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476437191', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600#issuecomment-3476437191', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600', 'id': 3476437191, 'node_id': 'IC_kwDOALCn2M7PNjjH', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T14:56:32Z', 'updated_at': '2025-11-01T14:56:32Z', 'body': "This PR was superceded by #14048 and it's no longer needed, closing...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476437191/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T11:17:12.223132 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'title': 'Core/DiscIO: Add a setting to load games into memory.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#issuecomment-3476256504', 'safe_author': True, 'body': "Come to think of it, I'm not sure if this makes sense for WAD files. When we boot a WAD file, we immediately install the WAD file to NAND and then run it from NAND.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'id': 3572862008, 'node_id': 'PR_kwDOALCn2M6wuhHO', 'number': 14056, 'title': 'Core/DiscIO: Add a setting to load games into memory.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)'}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-30T23:50:55Z', 'updated_at': '2025-11-01T11:17:10Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.patch', 'merged_at': None}, 'body': 'Addresses https://bugs.dolphin-emu.org/issues/11876\r\n\r\n<img width="419" height="287" alt="image" src="https://github.com/user-attachments/assets/fc84d31a-0df6-44a1-9f9f-ebdc90d4f932" />\r\n\r\nThis is based on #14052 because it requires `BlobReader::CopyReader` results to be thread safe.\r\n\r\n`DiscScrubber` and `LazyMemoryRegion` are used to only cache non-scrubbed regions.\r\nUncached reads appropriately fall back to a normal read.\r\n\r\nNote that installed wiiware is not loaded into memory by this setting. It would probably make sense to just put the whole NAND into memory to accomplish that.\r\n\r\nI\'m certainly open to different naming and wording for the setting.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476256504', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#issuecomment-3476256504', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'id': 3476256504, 'node_id': 'IC_kwDOALCn2M7PM3b4', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T11:17:10Z', 'updated_at': '2025-11-01T11:17:10Z', 'body': "Come to think of it, I'm not sure if this makes sense for WAD files. When we boot a WAD file, we immediately install the WAD file to NAND and then run it from NAND.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476256504/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T09:06:45Z', 'pushed_at': '2025-11-01T09:06:41Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 362, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T03:18:52.855111 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Mystro256', 'action': 'created', 'id': 13443, 'title': 'Update mbedtls to 2.28.10', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13443#issuecomment-3475573085', 'safe_author': False, 'body': "I noticed this still hasn't been merged, so I updated it to 2.28.10, and also threw in 3 CVE fixes that I backported from 3.6.x, since the 2.28 branch is now officially EOL.\r\n\r\nI think there's more CVE's but these were low hanging fruit.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13443', 'id': 2936673810, 'node_id': 'PR_kwDOALCn2M6Ph6eD', 'number': 13443, 'title': 'Update mbedtls to 2.28.10', 'user': {'login': 'Mystro256', 'id': 317112, 'node_id': 'MDQ6VXNlcjMxNzExMg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/317112?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Mystro256', 'html_url': 'https://github.com/Mystro256', 'followers_url': 'https://api.github.com/users/Mystro256/followers', 'following_url': 'https://api.github.com/users/Mystro256/following{/other_user}', 'gists_url': 'https://api.github.com/users/Mystro256/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Mystro256/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Mystro256/subscriptions', 'organizations_url': 'https://api.github.com/users/Mystro256/orgs', 'repos_url': 'https://api.github.com/users/Mystro256/repos', 'events_url': 'https://api.github.com/users/Mystro256/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Mystro256/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2025-03-20T21:21:12Z', 'updated_at': '2025-11-01T03:18:50Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13443', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13443', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13443.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13443.patch', 'merged_at': None}, 'body': "Note that I don't have a windows machine to test the windows build.\r\n\r\nFor some background, mbedtls 2.28 is end of life now, but 3.x has removed TLS 1.1, which dolphin needs. See https://github.com/dolphin-emu/dolphin/pull/12246\r\n\r\nThis just updates to the latest 2.28 version (2.28.9) for good measure, since there are security bugs or bugfixes since 2.28.0, although I didn't check what directly affects dolphin. As well, if someone ends up supporting this branch longer, updating to latest makes grabbing fixes easier.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475573085', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13443#issuecomment-3475573085', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13443', 'id': 3475573085, 'node_id': 'IC_kwDOALCn2M7PKQld', 'user': {'login': 'Mystro256', 'id': 317112, 'node_id': 'MDQ6VXNlcjMxNzExMg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/317112?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Mystro256', 'html_url': 'https://github.com/Mystro256', 'followers_url': 'https://api.github.com/users/Mystro256/followers', 'following_url': 'https://api.github.com/users/Mystro256/following{/other_user}', 'gists_url': 'https://api.github.com/users/Mystro256/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Mystro256/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Mystro256/subscriptions', 'organizations_url': 'https://api.github.com/users/Mystro256/orgs', 'repos_url': 'https://api.github.com/users/Mystro256/repos', 'events_url': 'https://api.github.com/users/Mystro256/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Mystro256/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T03:18:50Z', 'updated_at': '2025-11-01T03:18:50Z', 'body': "I noticed this still hasn't been merged, so I updated it to 2.28.10, and also threw in 3 CVE fixes that I backported from 3.6.x, since the 2.28 branch is now officially EOL.\r\n\r\nI think there's more CVE's but these were low hanging fruit.", 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475573085/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T21:05:14Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Mystro256', 'id': 317112, 'node_id': 'MDQ6VXNlcjMxNzExMg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/317112?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Mystro256', 'html_url': 'https://github.com/Mystro256', 'followers_url': 'https://api.github.com/users/Mystro256/followers', 'following_url': 'https://api.github.com/users/Mystro256/following{/other_user}', 'gists_url': 'https://api.github.com/users/Mystro256/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Mystro256/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Mystro256/subscriptions', 'organizations_url': 'https://api.github.com/users/Mystro256/orgs', 'repos_url': 'https://api.github.com/users/Mystro256/repos', 'events_url': 'https://api.github.com/users/Mystro256/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Mystro256/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T00:34:46.586783 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'safe_author': True, 'body': 'Tested, unfortunately this doesn\'t work. I must have misinterpreted Extrem\'s comment about looping over 15, or I took them too literally with their comment "post process". I considered opening a bug but I guess this will be resolved with 13909, whenever someone tackles it. I\'ll add some details there.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'Tested, unfortunately this doesn\'t work. I must have misinterpeted Extrem\'s comment about looping over 15, or I took them too literally with their comment "post process". I considered opening a bug but I guess this will be resolved with 13909, whenever someone tackles it. I\'ll add some details there.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-11-01T00:34:38Z', 'closed_at': '2025-11-01T00:28:53Z', 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3475296768, 'node_id': 'IC_kwDOALCn2M7PJNIA', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T00:28:53Z', 'updated_at': '2025-11-01T00:34:45Z', 'body': 'Tested, unfortunately this doesn\'t work. I must have misinterpreted Extrem\'s comment about looping over 15, or I took them too literally with their comment "post process". I considered opening a bug but I guess this will be resolved with 13909, whenever someone tackles it. I\'ll add some details there.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T21:05:14Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 365, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 365, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T00:34:39.445010 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'safe_author': True, 'body': 'Tested, unfortunately this doesn\'t work. I must have misinterpeted Extrem\'s comment about looping over 15, or I took them too literally with their comment "post process". I considered opening a bug but I guess this will be resolved with 13909, whenever someone tackles it. I\'ll add some details there.', 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested, unfortunately this doesn't work."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-11-01T00:28:54Z', 'closed_at': '2025-11-01T00:28:53Z', 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3475296768, 'node_id': 'IC_kwDOALCn2M7PJNIA', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T00:28:53Z', 'updated_at': '2025-11-01T00:34:38Z', 'body': 'Tested, unfortunately this doesn\'t work. I must have misinterpeted Extrem\'s comment about looping over 15, or I took them too literally with their comment "post process". I considered opening a bug but I guess this will be resolved with 13909, whenever someone tackles it. I\'ll add some details there.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T21:05:14Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 365, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 365, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-11-01T00:28:55.978733 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'safe_author': True, 'body': "Tested, unfortunately this doesn't work.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-11-01T00:28:54Z', 'closed_at': '2025-11-01T00:28:53Z', 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3475296768', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3475296768, 'node_id': 'IC_kwDOALCn2M7PJNIA', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T00:28:53Z', 'updated_at': '2025-11-01T00:28:53Z', 'body': "Tested, unfortunately this doesn't work.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3475296768/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T21:05:14Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 365, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 365, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T15:33:02.038666 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473611102', 'safe_author': True, 'body': "Thanks @BhaaLseN . I saw that after I pushed but wanted to confirm it worked before moving forward.\r\n\r\nExtrems doesn't think this will work:\r\n\r\n>I suspect it wouldn't be right since you're writing out the CSD as 32-bit little endian before processing.\r\n\r\nI don't know if they are saying the same thing you were or if this is something else.\r\n\r\nEDIT: they added more details on Discord if someone else wants to take a stab at this.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "Thanks @BhaaLseN . I saw that after I pushed but wanted to confirm it worked before moving forward.\r\n\r\nExtrems doesn't think this will work:\r\n\r\n>I suspect it wouldn't be right since you're writing out the CSD as 32-bit little endian before processing.\r\n\r\nI don't know if they are saying the same thing you were or if this is something else."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-10-31T15:31:25Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473611102', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473611102', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3473611102, 'node_id': 'IC_kwDOALCn2M7PCxle', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T15:31:25Z', 'updated_at': '2025-10-31T15:33:00Z', 'body': "Thanks @BhaaLseN . I saw that after I pushed but wanted to confirm it worked before moving forward.\r\n\r\nExtrems doesn't think this will work:\r\n\r\n>I suspect it wouldn't be right since you're writing out the CSD as 32-bit little endian before processing.\r\n\r\nI don't know if they are saying the same thing you were or if this is something else.\r\n\r\nEDIT: they added more details on Discord if someone else wants to take a stab at this.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473611102/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T15:31:27.575465 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473611102', 'safe_author': True, 'body': "Thanks @BhaaLseN . I saw that after I pushed but wanted to confirm it worked before moving forward.\r\n\r\nExtrems doesn't think this will work:\r\n\r\n>I suspect it wouldn't be right since you're writing out the CSD as 32-bit little endian before processing.\r\n\r\nI don't know if they are saying the same thing you were or if this is something else.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-10-31T15:31:25Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473611102', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473611102', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3473611102, 'node_id': 'IC_kwDOALCn2M7PCxle', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T15:31:25Z', 'updated_at': '2025-10-31T15:31:25Z', 'body': "Thanks @BhaaLseN . I saw that after I pushed but wanted to confirm it worked before moving forward.\r\n\r\nExtrems doesn't think this will work:\r\n\r\n>I suspect it wouldn't be right since you're writing out the CSD as 32-bit little endian before processing.\r\n\r\nI don't know if they are saying the same thing you were or if this is something else.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473611102/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T15:00:38.437419 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BhaaLseN', 'action': 'created', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473474839', 'safe_author': True, 'body': "Figured. My only other comment would be putting the swap in a function, but...it's two locations, that's barely below my threshold where it becomes more noise than a useful suggestion.\r\n_(On the other hand though, it would put the swap in a convinient location for later rather than spread it apart.)_", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-10-31T15:00:36Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473474839', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473474839', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3473474839, 'node_id': 'IC_kwDOALCn2M7PCQUX', 'user': {'login': 'BhaaLseN', 'id': 826052, 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/826052?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BhaaLseN', 'html_url': 'https://github.com/BhaaLseN', 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T15:00:36Z', 'updated_at': '2025-10-31T15:00:36Z', 'body': "Figured. My only other comment would be putting the swap in a function, but...it's two locations, that's barely below my threshold where it becomes more noise than a useful suggestion.\r\n_(On the other hand though, it would put the swap in a convinient location for later rather than spread it apart.)_", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473474839/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'BhaaLseN', 'id': 826052, 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/826052?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BhaaLseN', 'html_url': 'https://github.com/BhaaLseN', 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T14:59:43.635061 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'deleted', 'id': 14003, 'title': 'Fix a number of cross compilation issues using mingw', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14003#issuecomment-3473471225', 'safe_author': True, 'body': '@dolphin-emu-bot rebuild', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003', 'id': 3502737601, 'node_id': 'PR_kwDOALCn2M6tFSTA', 'number': 14003, 'title': 'Fix a number of cross compilation issues using mingw', 'user': {'login': 'cscd98', 'id': 1188869, 'node_id': 'MDQ6VXNlcjExODg4Njk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1188869?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cscd98', 'html_url': 'https://github.com/cscd98', 'followers_url': 'https://api.github.com/users/cscd98/followers', 'following_url': 'https://api.github.com/users/cscd98/following{/other_user}', 'gists_url': 'https://api.github.com/users/cscd98/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cscd98/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cscd98/subscriptions', 'organizations_url': 'https://api.github.com/users/cscd98/orgs', 'repos_url': 'https://api.github.com/users/cscd98/repos', 'events_url': 'https://api.github.com/users/cscd98/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cscd98/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2025-10-10T12:42:37Z', 'updated_at': '2025-10-31T14:59:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14003', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14003.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14003.patch', 'merged_at': None}, 'body': 'On a case sensitive filesystem such as what the majority of Linux users have, compilation will fail because the headers are lower case on disk. Makes no difference to Windows as its case insensitive file system.\r\n\r\n- winrt & some dx headers are incomplete or not available, hence the shims\r\n- Externals/WIL is not compatible with mingw at present and the authors (Microsoft) have no intention of fixing it\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473471225', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003#issuecomment-3473471225', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003', 'id': 3473471225, 'node_id': 'IC_kwDOALCn2M7PCPb5', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T14:59:37Z', 'updated_at': '2025-10-31T14:59:37Z', 'body': '@dolphin-emu-bot rebuild', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473471225/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T14:59:39.542310 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14003, 'title': 'Fix a number of cross compilation issues using mingw', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14003#issuecomment-3473471225', 'safe_author': True, 'body': '@dolphin-emu-bot rebuild', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003', 'id': 3502737601, 'node_id': 'PR_kwDOALCn2M6tFSTA', 'number': 14003, 'title': 'Fix a number of cross compilation issues using mingw', 'user': {'login': 'cscd98', 'id': 1188869, 'node_id': 'MDQ6VXNlcjExODg4Njk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1188869?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cscd98', 'html_url': 'https://github.com/cscd98', 'followers_url': 'https://api.github.com/users/cscd98/followers', 'following_url': 'https://api.github.com/users/cscd98/following{/other_user}', 'gists_url': 'https://api.github.com/users/cscd98/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cscd98/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cscd98/subscriptions', 'organizations_url': 'https://api.github.com/users/cscd98/orgs', 'repos_url': 'https://api.github.com/users/cscd98/repos', 'events_url': 'https://api.github.com/users/cscd98/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cscd98/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2025-10-10T12:42:37Z', 'updated_at': '2025-10-31T14:59:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14003', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14003.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14003.patch', 'merged_at': None}, 'body': 'On a case sensitive filesystem such as what the majority of Linux users have, compilation will fail because the headers are lower case on disk. Makes no difference to Windows as its case insensitive file system.\r\n\r\n- winrt & some dx headers are incomplete or not available, hence the shims\r\n- Externals/WIL is not compatible with mingw at present and the authors (Microsoft) have no intention of fixing it\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473471225', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14003#issuecomment-3473471225', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14003', 'id': 3473471225, 'node_id': 'IC_kwDOALCn2M7PCPb5', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T14:59:37Z', 'updated_at': '2025-10-31T14:59:37Z', 'body': '@dolphin-emu-bot rebuild', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473471225/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T14:49:36.191271 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'created', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473428483', 'safe_author': True, 'body': "Dolphin is completely broken on big endian hosts in general, all our `swap32` usages and `BigEndianValue` and so on assume little endian. I mean it's not a bad idea to make sure new code doesn't add any additional breakages but I don't think it actually matters much...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-10-31T14:49:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473428483', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473428483', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3473428483, 'node_id': 'IC_kwDOALCn2M7PCFAD', 'user': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T14:49:34Z', 'updated_at': '2025-10-31T14:49:34Z', 'body': "Dolphin is completely broken on big endian hosts in general, all our `swap32` usages and `BigEndianValue` and so on assume little endian. I mean it's not a bad idea to make sure new code doesn't add any additional breakages but I don't think it actually matters much...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473428483/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:57:49Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T13:55:49.684870 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BhaaLseN', 'action': 'created', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473201392', 'safe_author': True, 'body': 'Do we assume a certain host endianness at the moment? Because that piece of code will either fix or break it for little/big endian hosts. (Then again, does _anyone_ running Dolphin do it on big endian these days?)', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'id': 3575026437, 'node_id': 'PR_kwDOALCn2M6w1nLz', 'number': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-31T13:45:09Z', 'updated_at': '2025-10-31T13:55:47Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14060', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14060.patch', 'merged_at': None}, 'body': "Extrems mentioned our byte ordering for CSD construction did not match hardware. Their comment was:\r\n\r\n```\r\nThe CSD of Dolphin's SD card is in the wrong byte order relative to hardware. It should be post-processed like this:\r\n\r\nfor (int i = 0; i < 15; i++)\r\n out[(i + 1) ^ 0xC] = in[i];\r\n\r\n\r\nCRC7 is not accessible.\r\n```\r\n\r\nThis comment was from early in 2025 and was mentioned again when this issue came up: https://bugs.dolphin-emu.org/issues/13909\r\n\r\nI mostly posted this to get opinions and test. There is most likely a better bit-fiddling way to do what I did. But that is not my forte..", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473201392', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14060#issuecomment-3473201392', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14060', 'id': 3473201392, 'node_id': 'IC_kwDOALCn2M7PBNjw', 'user': {'login': 'BhaaLseN', 'id': 826052, 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/826052?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BhaaLseN', 'html_url': 'https://github.com/BhaaLseN', 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T13:55:47Z', 'updated_at': '2025-10-31T13:55:47Z', 'body': 'Do we assume a certain host endianness at the moment? Because that piece of code will either fix or break it for little/big endian hosts. (Then again, does _anyone_ running Dolphin do it on big endian these days?)', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3473201392/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T13:31:09Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538900, 'stargazers_count': 14221, 'watchers_count': 14221, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 366, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 366, 'watchers': 14221, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'BhaaLseN', 'id': 826052, 'node_id': 'MDQ6VXNlcjgyNjA1Mg==', 'avatar_url': 'https://avatars.githubusercontent.com/u/826052?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BhaaLseN', 'html_url': 'https://github.com/BhaaLseN', 'followers_url': 'https://api.github.com/users/BhaaLseN/followers', 'following_url': 'https://api.github.com/users/BhaaLseN/following{/other_user}', 'gists_url': 'https://api.github.com/users/BhaaLseN/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BhaaLseN/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BhaaLseN/subscriptions', 'organizations_url': 'https://api.github.com/users/BhaaLseN/orgs', 'repos_url': 'https://api.github.com/users/BhaaLseN/repos', 'events_url': 'https://api.github.com/users/BhaaLseN/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BhaaLseN/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T02:17:35.769649 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14057, 'title': 'VideoCommon: Fix render to texture in wrong layout', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14057#issuecomment-3471035248', 'safe_author': True, 'body': 'Can confirm this fixes the panic alerts in SMG2', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14057', 'id': 3573093842, 'node_id': 'PR_kwDOALCn2M6wvMkG', 'number': 14057, 'title': 'VideoCommon: Fix render to texture in wrong layout', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-31T01:53:43Z', 'updated_at': '2025-10-31T02:17:34Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14057', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14057', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14057.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14057.patch', 'merged_at': None}, 'body': '`g_gfx->BeginUtilityDrawing()` calls `g_vertex_manager->Flush();` which may render to the EFB texture that was just marked as done being rendered to.\r\n\r\nFixes assertions in SMG2 from #14025', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3471035248', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14057#issuecomment-3471035248', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14057', 'id': 3471035248, 'node_id': 'IC_kwDOALCn2M7O48tw', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T02:17:33Z', 'updated_at': '2025-10-31T02:17:33Z', 'body': 'Can confirm this fixes the panic alerts in SMG2', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3471035248/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-31T01:47:47Z', 'pushed_at': '2025-10-31T01:47:42Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538870, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2886, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2886, 'open_issues': 363, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T00:13:08.875005 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13626, 'title': 'Common: Make HookableEvent use non-static data.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13626#issuecomment-3470769692', 'safe_author': True, 'body': "> I've added [f141031](https://github.com/dolphin-emu/dolphin/commit/f1410314bdde6cd7be8bb62faf2e3c2c4858be30) to #13199 which converts the new HookableEvents added to AchievementManager since this PR was made.\r\n> \r\n> I have an upcoming PR that crashes when Dolphin exits due to static deinitialization issues in HookableEvent. That crash is fixed by cherry-picking this PR, so let me know if there's anything else I can do to help with this.\r\n\r\nOkie, thanks, I'll get this PR cleaned up.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'id': 3037286863, 'node_id': 'PR_kwDOALCn2M6U0arR', 'number': 13626, 'title': 'Common: Make HookableEvent use non-static data.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)'}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2025-05-03T09:01:37Z', 'updated_at': '2025-10-31T00:13:07Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.patch', 'merged_at': None}, 'body': 'This makes `Common::HookableEvent` into a normal object rather than each event being a unique type with static storage.\r\n\r\nThe video events for now exist inside a struct accessible from `System::GetVideoEvents()`.\r\nI\'ve also, for now, added a global `GetVideoEvents()` function for places that don\'t have a system reference readily available.\r\nI\'m open to suggestions on doing it differently.\r\n\r\n`Register` and `Trigger` calls are unfortunately much more verbose, but that\'s how removing globals goes.\r\n\r\nIn future PRs I plan to rectify all of our duplicate "callback" implementations, replacing them with `HookableEvent`.\r\n`HookableEvent`\'s `EventHook` handle has automatic callback removal on destruction, which these others do not.\r\ne.g. `ControllerInterface::RegisterDevicesChangedCallback`, `Config::AddConfigChangedCallback`, `Core::AddOnStateChangedCallback`, are there more?\r\n\r\nI\'m also thinking there might be some future situations more cleanly implemented with additional `HookableEvent`s rather than having unrelated subsystems talk to each other.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470769692', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626#issuecomment-3470769692', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'id': 3470769692, 'node_id': 'IC_kwDOALCn2M7O374c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T00:13:07Z', 'updated_at': '2025-10-31T00:13:07Z', 'body': "> I've added [f141031](https://github.com/dolphin-emu/dolphin/commit/f1410314bdde6cd7be8bb62faf2e3c2c4858be30) to #13199 which converts the new HookableEvents added to AchievementManager since this PR was made.\r\n> \r\n> I have an upcoming PR that crashes when Dolphin exits due to static deinitialization issues in HookableEvent. That crash is fixed by cherry-picking this PR, so let me know if there's anything else I can do to help with this.\r\n\r\nOkie, thanks, I'll get this PR cleaned up.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470769692/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T23:26:27Z', 'pushed_at': '2025-10-30T23:26:22Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2886, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 364, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2886, 'open_issues': 364, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-31T00:10:07.112935 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'created', 'id': 13626, 'title': 'Common: Make HookableEvent use non-static data.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13626#issuecomment-3470764672', 'safe_author': True, 'body': "I've added f1410314bdde6cd7be8bb62faf2e3c2c4858be30 to https://github.com/dolphin-emu/dolphin/pull/13199 which converts the new HookableEvents added to AchievementManager since this PR was made.\r\n\r\nI have an upcoming PR that crashes when Dolphin exits due to static deinitialization issues in HookableEvent. That crash is fixed by cherry-picking this PR, so let me know if there's anything else I can do to help with this.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'id': 3037286863, 'node_id': 'PR_kwDOALCn2M6U0arR', 'number': 13626, 'title': 'Common: Make HookableEvent use non-static data.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)'}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2025-05-03T09:01:37Z', 'updated_at': '2025-10-31T00:10:05Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.patch', 'merged_at': None}, 'body': 'This makes `Common::HookableEvent` into a normal object rather than each event being a unique type with static storage.\r\n\r\nThe video events for now exist inside a struct accessible from `System::GetVideoEvents()`.\r\nI\'ve also, for now, added a global `GetVideoEvents()` function for places that don\'t have a system reference readily available.\r\nI\'m open to suggestions on doing it differently.\r\n\r\n`Register` and `Trigger` calls are unfortunately much more verbose, but that\'s how removing globals goes.\r\n\r\nIn future PRs I plan to rectify all of our duplicate "callback" implementations, replacing them with `HookableEvent`.\r\n`HookableEvent`\'s `EventHook` handle has automatic callback removal on destruction, which these others do not.\r\ne.g. `ControllerInterface::RegisterDevicesChangedCallback`, `Config::AddConfigChangedCallback`, `Core::AddOnStateChangedCallback`, are there more?\r\n\r\nI\'m also thinking there might be some future situations more cleanly implemented with additional `HookableEvent`s rather than having unrelated subsystems talk to each other.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470764672', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626#issuecomment-3470764672', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'id': 3470764672, 'node_id': 'IC_kwDOALCn2M7O36qA', 'user': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-31T00:10:05Z', 'updated_at': '2025-10-31T00:10:05Z', 'body': "I've added f1410314bdde6cd7be8bb62faf2e3c2c4858be30 to https://github.com/dolphin-emu/dolphin/pull/13199 which converts the new HookableEvents added to AchievementManager since this PR was made.\r\n\r\nI have an upcoming PR that crashes when Dolphin exits due to static deinitialization issues in HookableEvent. That crash is fixed by cherry-picking this PR, so let me know if there's anything else I can do to help with this.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470764672/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T23:26:27Z', 'pushed_at': '2025-10-30T23:26:22Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2886, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 364, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2886, 'open_issues': 364, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T23:03:52.339659 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 14055, 'title': 'IP/Top: Make InetAToN async', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14055#issuecomment-3470641604', 'safe_author': True, 'body': 'This greatly reduces freezes in Mario Kart Wii online when players join/leave an active race on Android.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'This greatly reduces freezes in Mario Kart Wii online when players join/leave an active race.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055', 'id': 3572566284, 'node_id': 'PR_kwDOALCn2M6wtj2a', 'number': 14055, 'title': 'IP/Top: Make InetAToN async', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-30T21:25:40Z', 'updated_at': '2025-10-30T23:02:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14055', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14055.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14055.patch', 'merged_at': None}, 'body': "This PR is similar to https://github.com/dolphin-emu/dolphin/pull/8901 and aims to fix sporadic freezes with some online games. `HandleInetAToNRequest` is using `gethostbyname` which is required because a hostname can be passed as parameter, and this function can be blocking (waiting for the DNS response).\r\n\r\nI was able to confirm the issue on PC with games like Mario Kart Wii and Monster Hunter 3, however, it's barely noticeable due to how fast the resolution is.\r\n\r\nReady to be reviewed and merged.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470641604', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055#issuecomment-3470641604', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055', 'id': 3470641604, 'node_id': 'IC_kwDOALCn2M7O3cnE', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T23:02:41Z', 'updated_at': '2025-10-30T23:03:50Z', 'body': 'This greatly reduces freezes in Mario Kart Wii online when players join/leave an active race on Android.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470641604/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2886, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 365, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2886, 'open_issues': 365, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T23:02:42.973406 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14055, 'title': 'IP/Top: Make InetAToN async', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14055#issuecomment-3470641604', 'safe_author': True, 'body': 'This greatly reduces freezes in Mario Kart Wii online when players join/leave an active race.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055', 'id': 3572566284, 'node_id': 'PR_kwDOALCn2M6wtj2a', 'number': 14055, 'title': 'IP/Top: Make InetAToN async', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-30T21:25:40Z', 'updated_at': '2025-10-30T23:02:41Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14055', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14055.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14055.patch', 'merged_at': None}, 'body': "This PR is similar to https://github.com/dolphin-emu/dolphin/pull/8901 and aims to fix sporadic freezes with some online games. `HandleInetAToNRequest` is using `gethostbyname` which is required because a hostname can be passed as parameter, and this function can be blocking (waiting for the DNS response).\r\n\r\nI was able to confirm the issue on PC with games like Mario Kart Wii and Monster Hunter 3, however, it's barely noticeable due to how fast the resolution is.\r\n\r\nReady to be reviewed and merged.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470641604', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14055#issuecomment-3470641604', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14055', 'id': 3470641604, 'node_id': 'IC_kwDOALCn2M7O3cnE', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T23:02:41Z', 'updated_at': '2025-10-30T23:02:41Z', 'body': 'This greatly reduces freezes in Mario Kart Wii online when players join/leave an active race.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3470641604/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2886, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 365, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2886, 'open_issues': 365, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T19:44:49.639219 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'created', 'id': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469791259', 'safe_author': True, 'body': "> What do you think of putting this under User Data instead of Advanced?\r\n\r\nYes, good point, that seems like a much better location for this. Changed\r\n\r\n> Also, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme.\r\n\r\nI forgot about this. I had to handle some theme issues which are all fixed now. This should hopefully get better in the future...\r\n\r\n> (Maybe it's time to implement setting changed callbacks on Android so we don't need to think about calling ThemeHelper in every location where the theme settings might be changed...? Let me know if that's something you'd like me to work on.)\r\n\r\nI can try poking it after this PR\r\n", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'id': 3567713601, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'number': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-10-30T19:44:47Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'merged_at': None}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\nhttps://github.com/user-attachments/assets/7640496c-a1ec-4c98-9155-e13b10194468\r\n\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469791259', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469791259', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'id': 3469791259, 'node_id': 'IC_kwDOALCn2M7O0NAb', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T19:44:47Z', 'updated_at': '2025-10-30T19:44:47Z', 'body': "> What do you think of putting this under User Data instead of Advanced?\r\n\r\nYes, good point, that seems like a much better location for this. Changed\r\n\r\n> Also, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme.\r\n\r\nI forgot about this. I had to handle some theme issues which are all fixed now. This should hopefully get better in the future...\r\n\r\n> (Maybe it's time to implement setting changed callbacks on Android so we don't need to think about calling ThemeHelper in every location where the theme settings might be changed...? Let me know if that's something you'd like me to work on.)\r\n\r\nI can try poking it after this PR\r\n", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469791259/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 364, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 364, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T18:31:13.329129 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'created', 'id': 14048, 'title': 'Android: Save settings instantly after edits', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14048#issuecomment-3469487220', 'safe_author': True, 'body': "I think it's safer to save ASAP in case `onSaveInstanceState` is never called in case the app crashes or the phone reboots. People very likely aren't switching settings on and off constantly so I don't think worrying about write cycles is a priority.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048', 'id': 3567870933, 'node_id': 'PR_kwDOALCn2M6weKvg', 'number': 14048, 'title': 'Android: Save settings instantly after edits', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-10-29T21:03:08Z', 'updated_at': '2025-10-30T18:31:11Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14048', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14048.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14048.patch', 'merged_at': None}, 'body': "I’ve switched the Android settings flow to write every tweak immediately, which matches how most modern apps behave. I can’t think of a good reason not to save right away.\r\nAlso the “settings saved” toast felt out of date given today’s UI standards so I removed that as well. It's redundant with this change anyway.\r\n\r\nBefore: \r\n\r\nhttps://github.com/user-attachments/assets/d87276c7-9c8b-42b8-bc1a-1da049548a8a\r\n\r\n\r\n\r\nAfter:\r\n\r\nhttps://github.com/user-attachments/assets/4ba5ed24-6ec0-4291-9115-bf57828c74e6\r\n\r\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469487220', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048#issuecomment-3469487220', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048', 'id': 3469487220, 'node_id': 'IC_kwDOALCn2M7OzCx0', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T18:31:10Z', 'updated_at': '2025-10-30T18:31:10Z', 'body': "I think it's safer to save ASAP in case `onSaveInstanceState` is never called in case the app crashes or the phone reboots. People very likely aren't switching settings on and off constantly so I don't think worrying about write cycles is a priority.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469487220/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 363, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T17:21:47.827837 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'edited', 'id': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469142615', 'safe_author': True, 'body': "What do you think of putting this under User Data instead of Advanced?\r\n\r\nAlso, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme. (Maybe it's time to implement setting changed callbacks on Android so we don't need to think about calling ThemeHelper in every location where the theme settings might be changed...? Let me know if that's something you'd like me to work on.)", 'raw': {'action': 'edited', 'changes': {'body': {'from': 'What do you think of putting this under User Data instead of Advanced?\r\n\r\nAlso, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'id': 3567713601, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'number': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-10-30T17:20:36Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'merged_at': None}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\nhttps://github.com/user-attachments/assets/7640496c-a1ec-4c98-9155-e13b10194468\r\n\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469142615', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469142615', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'id': 3469142615, 'node_id': 'IC_kwDOALCn2M7OxupX', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T17:20:36Z', 'updated_at': '2025-10-30T17:21:46Z', 'body': "What do you think of putting this under User Data instead of Advanced?\r\n\r\nAlso, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme. (Maybe it's time to implement setting changed callbacks on Android so we don't need to think about calling ThemeHelper in every location where the theme settings might be changed...? Let me know if that's something you'd like me to work on.)", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469142615/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 363, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T17:20:39.387532 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469142615', 'safe_author': True, 'body': 'What do you think of putting this under User Data instead of Advanced?\r\n\r\nAlso, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'id': 3567713601, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'number': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-10-30T17:20:36Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'merged_at': None}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\nhttps://github.com/user-attachments/assets/7640496c-a1ec-4c98-9155-e13b10194468\r\n\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469142615', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#issuecomment-3469142615', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'id': 3469142615, 'node_id': 'IC_kwDOALCn2M7OxupX', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T17:20:36Z', 'updated_at': '2025-10-30T17:20:36Z', 'body': 'What do you think of putting this under User Data instead of Advanced?\r\n\r\nAlso, I think you need to call ThemeHelper in some way to correctly handle the case where the currently selected theme is different from the default theme.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469142615/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 363, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T17:16:18.145327 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14048, 'title': 'Android: Save settings instantly after edits', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14048#issuecomment-3469123088', 'safe_author': True, 'body': "This is definitely better UX. Though I'm wondering, is there a particular reason why you went for saving immediately instead of on the next onSaveInstanceState? These two should be identical in terms of UX (assuming Dolphin doesn't crash, at least), but the latter will lead to less flash writes. I guess that's not a very big reason to switch to using onSaveInstanceState, though.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048', 'id': 3567870933, 'node_id': 'PR_kwDOALCn2M6weKvg', 'number': 14048, 'title': 'Android: Save settings instantly after edits', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-29T21:03:08Z', 'updated_at': '2025-10-30T17:16:15Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14048', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14048.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14048.patch', 'merged_at': None}, 'body': "I’ve switched the Android settings flow to write every tweak immediately, which matches how most modern apps behave. I can’t think of a good reason not to save right away.\r\nAlso the “settings saved” toast felt out of date given today’s UI standards so I removed that as well. It's redundant with this change anyway.\r\n\r\nBefore: \r\n\r\nhttps://github.com/user-attachments/assets/d87276c7-9c8b-42b8-bc1a-1da049548a8a\r\n\r\n\r\n\r\nAfter:\r\n\r\nhttps://github.com/user-attachments/assets/4ba5ed24-6ec0-4291-9115-bf57828c74e6\r\n\r\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469123088', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14048#issuecomment-3469123088', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14048', 'id': 3469123088, 'node_id': 'IC_kwDOALCn2M7Oxp4Q', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T17:16:15Z', 'updated_at': '2025-10-30T17:16:15Z', 'body': "This is definitely better UX. Though I'm wondering, is there a particular reason why you went for saving immediately instead of on the next onSaveInstanceState? These two should be identical in terms of UX (assuming Dolphin doesn't crash, at least), but the latter will lead to less flash writes. I guess that's not a very big reason to switch to using onSaveInstanceState, though.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3469123088/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T16:14:19Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14218, 'watchers_count': 14218, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 363, 'watchers': 14218, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-10-30T15:10:29.033607 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14053, 'title': 'Externals: Make imgui a submodule', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14053#issuecomment-3468517407', 'safe_author': True, 'body': "I'll test this later but this makes me very happy. I had no idea `IMGUI_USER_CONFIG` was a thing. Thanks @JoshuaVandaele !", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14053', 'id': 3570825453, 'node_id': 'PR_kwDOALCn2M6wn038', 'number': 14053, 'title': 'Externals: Make imgui a submodule', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2025-10-30T13:34:19Z', 'updated_at': '2025-10-30T15:10:26Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14053', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14053', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14053.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14053.patch', 'merged_at': None}, 'body': None, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3468517407', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14053#issuecomment-3468517407', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14053', 'id': 3468517407, 'node_id': 'IC_kwDOALCn2M7OvWAf', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-10-30T15:10:26Z', 'updated_at': '2025-10-30T15:10:26Z', 'body': "I'll test this later but this makes me very happy. I had no idea `IMGUI_USER_CONFIG` was a thing. Thanks @JoshuaVandaele !", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3468517407/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-10-30T14:17:25Z', 'pushed_at': '2025-10-30T06:44:12Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538851, 'stargazers_count': 14217, 'watchers_count': 14217, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2885, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 363, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2885, 'open_issues': 363, 'watchers': 14217, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
Recent 'gh_pull_request' events
2025-11-01T17:34:28.506249 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14059, 'title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059', 'head_ref_name': 'state-nand-cleanup', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T17:33:22.258690 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'synchronize', 'id': 14062, 'title': 'macOS: UI fixes for dark mode', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14062', 'head_ref_name': 'macos-design-fixes', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T17:31:45.765322 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14061, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'head_ref_name': 'config-info-spin-mutex', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T17:30:36.211900 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14061, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'head_ref_name': 'config-info-spin-mutex', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T17:26:08.008456 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'review_requested', 'id': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'head_ref_name': 'reset-all-dolphin-settings-android', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'merged': False, 'requested_reviewers': [{'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'type': 'gh_pull_request'}
2025-11-01T17:25:46.096502 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'opened', 'id': 14062, 'title': 'macOS: UI fixes for dark mode', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14062', 'head_ref_name': 'macos-design-fixes', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T16:57:28.124003 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'synchronize', 'id': 14047, 'title': 'Android: Add Reset Dolphin Settings functionality', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'head_ref_name': 'reset-all-dolphin-settings-android', 'safe_author': True, 'base_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'head_sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T14:56:34.878952 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'closed', 'id': 11600, 'title': 'Android: remove "Saved settings to INI files" toast message', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'head_ref_name': 'ToastMessage_begone', 'safe_author': True, 'base_sha': '5800b874d7cf3cace856a56d3c30e1cc1c3c2caa', 'head_sha': '17ad371a634b1c82a17e1a210e1bd1233e2d49af', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T11:29:29.691954 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'edited', 'id': 13236, 'title': 'Call JitInterface::UpdateMembase from PowerPC::MSRUpdated', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13236', 'head_ref_name': 'jit-set-msr-on-fallback', 'safe_author': True, 'base_sha': 'f9ce2b9d764014ab59cf2c19e49c2c848604e6fc', 'head_sha': '2aa00e15db0d6f1ebe19af5cf59ad63965618507', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T11:22:46.959619 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 13655, 'title': 'Android: Expand bottom sheets on devices with touch too', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13655', 'head_ref_name': 'android-always-expand-sheets', 'safe_author': True, 'base_sha': '478fb20bc2f3376b974b170f8ded590b34b7fb99', 'head_sha': '1b8a54024c6be2453345d57064ae73647e7a1e44', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T11:22:37.093954 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14048, 'title': 'Android: Save settings instantly after edits', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14048', 'head_ref_name': 'android-instant-settings-saving', 'safe_author': True, 'base_sha': 'f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'head_sha': '82c86221d602fda2f09a26fdcc77d250fbe5db7e', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T09:36:15.711886 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 13475, 'title': 'Common: Make Event and WaitableFlag use std::atomic::wait.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13475', 'head_ref_name': 'atomic-event', 'safe_author': True, 'base_sha': 'd2db9d95906de73d704bd0f32bd1ee79f4a442f6', 'head_sha': '6deba24d5af6ce988bdaaba80a337926dc436125', 'merged': False, 'requested_reviewers': [{'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'type': 'gh_pull_request'}
2025-11-01T09:10:59.084244 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14016, 'title': 'USBUtils: Replace GetDeviceNameUsingSetupAPI with GetDeviceNameUsingCfgMgr32', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14016', 'head_ref_name': 'usbutils-CfgMgr32', 'safe_author': True, 'base_sha': 'da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'head_sha': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T09:06:43.387262 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14057, 'title': 'VideoCommon: Fix render to texture in wrong layout', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14057', 'head_ref_name': 'VkRenderWrongLayout', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '21ac489d575662091be107fab0d807392b1e9fdf', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T09:06:10.049042 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14035, 'title': 'PauseAndLock Refactoring', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14035', 'head_ref_name': 'pauseandlock_refactoring', 'safe_author': True, 'base_sha': 'c22a483431bcc40a18250985426e0ae0c27bfa5a', 'head_sha': '70d8bc6fd722c9d2fb13e20cc3de41b97a25a650', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T09:05:13.308793 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14034, 'title': 'JitRegister: Remove OProfile profiler', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14034', 'head_ref_name': 'byeprofile', 'safe_author': True, 'base_sha': 'f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'head_sha': '713dfb41dfa240a847cd9d07996bd25a38259d0c', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T09:01:50.249649 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'closed', 'id': 14054, 'title': 'libmgba: Fix build when disabled', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14054', 'head_ref_name': 'libmgba_fix_build_when_disabled', 'safe_author': True, 'base_sha': '478fb20bc2f3376b974b170f8ded590b34b7fb99', 'head_sha': '2836dd2b5ec95492076e3af41a6b1634f87ee5e4', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T07:03:52.442849 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14061, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'head_ref_name': 'config-info-spin-mutex', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T07:02:57.146820 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14058, 'title': 'Externals: Bump SDL submodule version to release-3.2.26', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14058', 'head_ref_name': 'sdl-version-bump', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': 'fc7241dec373509773f02ec7a74bb7fb5908e817', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T06:54:43.128817 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14061, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'head_ref_name': 'config-info-spin-mutex', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '5c4646f80bd93cfd668fe722a914e5c2de831d95', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T04:32:26.741522 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'closed', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'head_ref_name': 'csd_wrong_ordering', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '2e3dae01a48dffcffe27db25ec3950584f22f8cf', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T03:57:43.211817 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'synchronize', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'head_ref_name': 'csd_wrong_ordering', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '2e3dae01a48dffcffe27db25ec3950584f22f8cf', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T03:55:54.971940 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'synchronize', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'head_ref_name': 'csd_wrong_ordering', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '21411764cd5d6f43c5b1498c921adfd24c4acb23', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T03:48:14.151342 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'synchronize', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'head_ref_name': 'csd_wrong_ordering', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '540f9036a3d514137d6e9f9b4b8847c4ea698c09', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-11-01T03:42:58.563350 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'synchronize', 'id': 14060, 'title': 'Core: modify byte order of SD card CSD construction to ensure it matches hardware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14060', 'head_ref_name': 'csd_wrong_ordering', 'safe_author': True, 'base_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'head_sha': '0b4837ae7f1cd30f933cd8a25feca7ade1dbc1be', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
Recent 'gh_pull_request_comment' events
2025-11-01T17:17:52.418852 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14061, 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483804241', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-11-01T17:07:18.182716 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14061, 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483800778', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-11-01T16:57:29.041248 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'created', 'id': 14047, 'hash': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483797455', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-11-01T16:13:37.320109 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14061, 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483772857', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T16:13:36.134038 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14061, 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483773782', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T15:20:12.639384 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 13626, 'hash': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13626#discussion_r2483742824', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:41:20.609059 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14059, 'hash': '6efecce200ffe47da9feedce32aab878bf742a68', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678163', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:41:20.594657 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14059, 'hash': '6efecce200ffe47da9feedce32aab878bf742a68', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678139', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.610709 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483637630', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.593841 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483610995', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.556908 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483625650', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.551958 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483589948', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.532697 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483582698', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.519679 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579033', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.516667 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483595141', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.423139 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483618139', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T11:12:41.385206 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14056, 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579930', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T10:43:01.249163 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14052, 'hash': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483395828', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T10:43:00.866522 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14052, 'hash': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483540217', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T10:43:00.796839 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14052, 'hash': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483531909', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T10:43:00.794767 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14052, 'hash': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483448491', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T10:43:00.793053 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14052, 'hash': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483408749', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T08:57:25.041385 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14047, 'hash': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483254718', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-11-01T01:45:06.357128 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14037, 'hash': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483039187', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-11-01T01:40:57.957383 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14037, 'hash': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483037796', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
Recent 'gh_pull_request_review' events
2025-11-01T17:17:52.417671 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14061, 'pr_title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407605708', 'comments': [{'id': 2483804241, 'node_id': 'PRRC_kwDOALCn2M6UC9hR', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241', 'pull_request_review_id': 3407605708, 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;\n+\n+ bool worker_done = false;\n+\n+ static constexpr auto SLEEP_TIME = std::chrono::microseconds{1};\n+\n+ // lock() on main thread, unlock() on worker thread.\n+ std::thread thread{[&, lk = std::unique_lock{work_mtx}] {\n+ std::this_thread::sleep_for(SLEEP_TIME);\n+ worker_done = true;\n+ }};\n+\n+ // lock() waits for the thread to unlock().\n+ if (std::lock_guard lk{work_mtx}; true)\n+ EXPECT_TRUE(worker_done);', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'position': 29, 'original_position': 29, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "It's not something you could get used to? :( :P", 'created_at': '2025-11-01T17:17:50Z', 'updated_at': '2025-11-01T17:17:50Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483804241', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483804241'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2483773782}], 'type': 'gh_pull_request_review'}
2025-11-01T17:07:18.181323 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14061, 'pr_title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407602468', 'comments': [{'id': 2483800778, 'node_id': 'PRRC_kwDOALCn2M6UC8rK', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778', 'pull_request_review_id': 3407602468, 'diff_hunk': "@@ -35,80 +35,69 @@ template <typename T>\n class Info\n {\n public:\n- constexpr Info(const Location& location, const T& default_value)\n- : m_location{location}, m_default_value{default_value}, m_cached_value{default_value, 0}\n+ constexpr Info(Location location, T default_value)\n+ : m_location{std::move(location)}, m_default_value{default_value},\n+ m_cached_value{std::move(default_value), 0}\n {\n }\n \n- Info(const Info<T>& other) { *this = other; }\n-\n- // Not thread-safe\n- Info(Info<T>&& other) { *this = std::move(other); }\n-\n- // Make it easy to convert Info<Enum> into Info<UnderlyingType<Enum>>\n- // so that enum settings can still easily work with code that doesn't care about the enum values.\n- template <Common::TypedEnum<T> Enum>\n- Info(const Info<Enum>& other)\n+ Info(const Info<T>& other)\n+ : m_location{other.m_location}, m_default_value{other.m_default_value},\n+ m_cached_value(other.GetCachedValue())\n {\n- *this = other;\n }\n \n- Info<T>& operator=(const Info<T>& other)\n+ Info(Info&& other)\n+ : m_location{std::move(other.m_location)}, m_default_value{std::move(other.m_location)},\n+ m_cached_value(other.GetCachedValue())\n {\n- m_location = other.GetLocation();\n- m_default_value = other.GetDefaultValue();\n- m_cached_value = other.GetCachedValue();\n- return *this;\n- }\n-\n- // Not thread-safe\n- Info<T>& operator=(Info<T>&& other)\n- {\n- m_location = std::move(other.m_location);\n- m_default_value = std::move(other.m_default_value);\n- m_cached_value = std::move(other.m_cached_value);\n- return *this;\n }\n \n // Make it easy to convert Info<Enum> into Info<UnderlyingType<Enum>>\n // so that enum settings can still easily work with code that doesn't care about the enum values.\n template <Common::TypedEnum<T> Enum>\n- Info<T>& operator=(const Info<Enum>& other)\n+ Info(const Info<Enum>& other)\n+ : m_location{other.GetLocation()}, m_default_value{static_cast<T>(other.GetDefaultValue())},\n+ m_cached_value(other.template GetCachedValueCasted<T>())\n {\n- m_location = other.GetLocation();\n- m_default_value = static_cast<T>(other.GetDefaultValue());\n- m_cached_value = other.template GetCachedValueCasted<T>();\n- return *this;\n }\n \n+ ~Info() = default;\n+\n+ // Assignments after construction would require more locking to be thread safe.\n+ // It seems unnecessary to have this functionality anyways.\n+ Info& operator=(const Info&) = delete;\n+ Info& operator=(Info&&) = delete;\n+\n constexpr const Location& GetLocation() const { return m_location; }\n constexpr const T& GetDefaultValue() const { return m_default_value; }\n \n CachedValue<T> GetCachedValue() const\n {\n- std::shared_lock lock(m_cached_value_mutex);\n+ std::lock_guard lk{m_cached_value_mutex};\n return m_cached_value;\n }\n \n template <typename U>\n CachedValue<U> GetCachedValueCasted() const\n {\n- std::shared_lock lock(m_cached_value_mutex);\n- return CachedValue<U>{static_cast<U>(m_cached_value.value), m_cached_value.config_version};\n+ std::lock_guard lk{m_cached_value_mutex};\n+ return {static_cast<U>(m_cached_value.value), m_cached_value.config_version};\n }\n \n- void SetCachedValue(const CachedValue<T>& cached_value) const\n+ // Only updates if the provided config_version is newer.\n+ void TryToSetCachedValue(CachedValue<T> new_value) const\n {\n- std::unique_lock lock(m_cached_value_mutex);\n- if (m_cached_value.config_version < cached_value.config_version)\n- m_cached_value = cached_value;\n+ std::lock_guard lk{m_cached_value_mutex};\n+ if (new_value.config_version > m_cached_value.config_version)\n+ m_cached_value = new_value;\n }\n \n private:\n Location m_location;\n T m_default_value;\n \n mutable CachedValue<T> m_cached_value;\n- mutable std::shared_mutex m_cached_value_mutex;\n+ mutable Common::SpinMutex m_cached_value_mutex;", 'path': 'Source/Core/Common/Config/ConfigInfo.h', 'position': 120, 'original_position': 120, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Please add a comment about why you're using a spin mutex here. (You've explained it in the PR description and commit message, but most people reading the code won't look at those.)", 'created_at': '2025-11-01T17:07:16Z', 'updated_at': '2025-11-01T17:07:16Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483800778', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483800778'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T16:57:28.984205 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Simonx22', 'action': 'submitted', 'pr_id': 14047, 'pr_title': 'Android: Add Reset Dolphin Settings functionality', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#pullrequestreview-3407599523', 'comments': [{'id': 2483797455, 'node_id': 'PRRC_kwDOALCn2M6UC73P', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455', 'pull_request_review_id': 3407599523, 'diff_hunk': '@@ -73,18 +81,41 @@ class UserDataActivity : AppCompatActivity() {\n \n mBinding.buttonExportUserData.setOnClickListener { exportUserData() }\n \n+ mBinding.buttonResetSettings?.setOnClickListener { confirmResetSettings() }\n+\n setSupportActionBar(mBinding.toolbarUserData)\n supportActionBar!!.setDisplayHomeAsUpEnabled(true)\n \n setInsets()\n enableScrollTint(this, mBinding.toolbarUserData, mBinding.appbarUserData)\n+\n+ if (intent.getBooleanExtra(EXTRA_PENDING_ANALYTICS, false)) {\n+ intent.putExtra(EXTRA_PENDING_ANALYTICS, false)', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.kt', 'position': 1, 'original_position': 50, 'commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Makes sense, should be addressed now', 'created_at': '2025-11-01T16:57:27Z', 'updated_at': '2025-11-01T16:57:27Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483797455', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483797455'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}}, 'original_commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2483254718}], 'type': 'gh_pull_request_review'}
2025-11-01T16:13:36.130588 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14061, 'pr_title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407578556', 'comments': [{'id': 2483772857, 'node_id': 'PRRC_kwDOALCn2M6UC125', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857', 'pull_request_review_id': 3407578556, 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'position': 15, 'original_position': 15, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n MutexType work_mutex;\r\n```\r\n\r\nSame for `done_mtx`.', 'created_at': '2025-11-01T15:48:37Z', 'updated_at': '2025-11-01T16:13:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483772857', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483772857'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483773782, 'node_id': 'PRRC_kwDOALCn2M6UC2FW', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782', 'pull_request_review_id': 3407578556, 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;\n+\n+ bool worker_done = false;\n+\n+ static constexpr auto SLEEP_TIME = std::chrono::microseconds{1};\n+\n+ // lock() on main thread, unlock() on worker thread.\n+ std::thread thread{[&, lk = std::unique_lock{work_mtx}] {\n+ std::this_thread::sleep_for(SLEEP_TIME);\n+ worker_done = true;\n+ }};\n+\n+ // lock() waits for the thread to unlock().\n+ if (std::lock_guard lk{work_mtx}; true)\n+ EXPECT_TRUE(worker_done);', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'position': 29, 'original_position': 29, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This is a construction I'm not used to. Could it instead be expressed in this easier-to-understand way?\r\n\r\n```suggestion\r\n {\r\n std::lock_guard lk{work_mtx};\r\n EXPECT_TRUE(worker_done);\r\n }\r\n```", 'created_at': '2025-11-01T15:51:07Z', 'updated_at': '2025-11-01T16:13:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483773782', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483773782'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T15:20:12.592175 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 13626, 'pr_title': 'Common: Make HookableEvent use non-static data.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13626#pullrequestreview-3407552453', 'comments': [{'id': 2483742824, 'node_id': 'PRRC_kwDOALCn2M6UCuho', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824', 'pull_request_review_id': 3407552453, 'diff_hunk': '@@ -3,113 +3,138 @@\n \n #pragma once\n \n-#include "Common/Logging/Log.h"\n-#include "Common/StringLiteral.h"\n-\n #include <functional>\n #include <memory>\n #include <mutex>\n-#include <string>\n #include <string_view>\n #include <vector>\n \n+#if defined(_DEBUG)\n+#include <string>\n+\n+#include "Common/Logging/Log.h"\n+#endif\n+\n namespace Common\n {\n struct HookBase\n {\n- virtual ~HookBase() = default;\n-\n-protected:\n- HookBase() = default;\n-\n- // This shouldn\'t be copied. And since we always wrap it in unique_ptr, no need to move it either\n- HookBase(const HookBase&) = delete;\n- HookBase(HookBase&&) = delete;\n- HookBase& operator=(const HookBase&) = delete;\n- HookBase& operator=(HookBase&&) = delete;\n+ // Prevent slicing/copying/moving.\n+ virtual ~HookBase() = 0;', 'path': 'Source/Core/Common/HookableEvent.h', 'position': 35, 'original_position': 35, 'commit_id': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Unless something changed in a recent C++ standards update, declaring a destructor only automatically prevents moving, not copying.', 'created_at': '2025-11-01T14:19:37Z', 'updated_at': '2025-11-01T15:20:10Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626#discussion_r2483742824', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13626#discussion_r2483742824'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626'}}, 'original_commit_id': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T11:41:20.591034 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14059, 'pr_title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059#pullrequestreview-3407487597', 'comments': [{'id': 2483678139, 'node_id': 'PRRC_kwDOALCn2M6UCeu7', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139', 'pull_request_review_id': 3407487597, 'diff_hunk': '@@ -374,56 +374,52 @@ void HostFileSystem::DoState(PointerWrap& p)\n handle.host_file.reset();\n \n // The format for the next part of the save state is follows:\n- // 1. bool Movie::WasMovieActiveWhenStateSaved() &&\n- // WiiRoot::WasWiiRootTemporaryDirectoryWhenStateSaved()\n+ // 1. bool is_nand_in_state (movie active && temporary wii root)\n // 2. Contents of the "/tmp" directory recursively.\n- // 3. u32 size_of_nand_folder_saved_below (or 0, if the root\n- // of the NAND folder is not savestated below).\n+ // 3. u32 size_of_nand (or 0, if not is_nand_in_state).\n // 4. Contents of the "/" directory recursively (or nothing, if the\n // root of the NAND folder is not save stated).\n \n // The "/" directory is only saved when a savestate is made during a movie recording\n // and when the directory root is temporary (i.e. WiiSession).\n // If a save state is made during a movie recording and is loaded when no movie is active,\n // then a call to p.DoExternal() will be used to skip over reading the contents of the "/"\n- // directory (it skips over the number of bytes specified by size_of_nand_folder_saved)\n+ // directory (it skips over the number of bytes specified by size_of_nand)\n \n auto& movie = Core::System::GetInstance().GetMovie();\n- bool original_save_state_made_during_movie_recording =\n- movie.IsMovieActive() && Core::WiiRootIsTemporary();\n- p.Do(original_save_state_made_during_movie_recording);\n \n- u32 temp_val = 0;\n+ const bool is_nand_wanted = movie.IsMovieActive() && Core::WiiRootIsTemporary();', 'path': 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'position': 27, 'original_position': 27, 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I would like to call this `is_full_nand_wanted`. `/tmp` is part of the NAND, after all.', 'created_at': '2025-11-01T11:33:01Z', 'updated_at': '2025-11-01T11:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678139', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678139'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'original_commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483678163, 'node_id': 'PRRC_kwDOALCn2M6UCevT', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163', 'pull_request_review_id': 3407487597, 'diff_hunk': '@@ -374,56 +374,52 @@ void HostFileSystem::DoState(PointerWrap& p)\n handle.host_file.reset();\n \n // The format for the next part of the save state is follows:\n- // 1. bool Movie::WasMovieActiveWhenStateSaved() &&\n- // WiiRoot::WasWiiRootTemporaryDirectoryWhenStateSaved()\n+ // 1. bool is_nand_in_state (movie active && temporary wii root)\n // 2. Contents of the "/tmp" directory recursively.\n- // 3. u32 size_of_nand_folder_saved_below (or 0, if the root\n- // of the NAND folder is not savestated below).\n+ // 3. u32 size_of_nand (or 0, if not is_nand_in_state).\n // 4. Contents of the "/" directory recursively (or nothing, if the\n // root of the NAND folder is not save stated).\n \n // The "/" directory is only saved when a savestate is made during a movie recording\n // and when the directory root is temporary (i.e. WiiSession).\n // If a save state is made during a movie recording and is loaded when no movie is active,\n // then a call to p.DoExternal() will be used to skip over reading the contents of the "/"\n- // directory (it skips over the number of bytes specified by size_of_nand_folder_saved)\n+ // directory (it skips over the number of bytes specified by size_of_nand)\n \n auto& movie = Core::System::GetInstance().GetMovie();\n- bool original_save_state_made_during_movie_recording =\n- movie.IsMovieActive() && Core::WiiRootIsTemporary();\n- p.Do(original_save_state_made_during_movie_recording);\n \n- u32 temp_val = 0;\n+ const bool is_nand_wanted = movie.IsMovieActive() && Core::WiiRootIsTemporary();\n+\n+ bool is_nand_in_state = is_nand_wanted;', 'path': 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'position': 29, 'original_position': 29, 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Same here.', 'created_at': '2025-11-01T11:33:07Z', 'updated_at': '2025-11-01T11:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678163', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678163'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'original_commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T11:12:41.092710 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14056, 'pr_title': 'Core/DiscIO: Add a setting to load games into memory.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14056#pullrequestreview-3407378278', 'comments': [{'id': 2483579033, 'node_id': 'PRRC_kwDOALCn2M6UCGiZ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579033', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -147,6 +148,14 @@ void GeneralPane::CreateBasic()\n m_checkbox_cheats = new ConfigBool(tr("Enable Cheats"), Config::MAIN_ENABLE_CHEATS);\n basic_group_layout->addWidget(m_checkbox_cheats);\n \n+ m_checkbox_load_games_into_memory =\n+ new ConfigBool(tr("Load Games Into Memory"), Config::MAIN_LOAD_GAMES_INTO_MEMORY);', 'path': 'Source/Core/DolphinQt/Settings/GeneralPane.cpp', 'position': 13, 'original_position': 13, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'What do you think about "Load Whole Game Into Memory"?', 'created_at': '2025-11-01T10:44:23Z', 'updated_at': '2025-11-01T11:12:38Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579033', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579033'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579033'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579033/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483579930, 'node_id': 'PRRC_kwDOALCn2M6UCGwa', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579930', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -147,6 +148,14 @@ void GeneralPane::CreateBasic()\n m_checkbox_cheats = new ConfigBool(tr("Enable Cheats"), Config::MAIN_ENABLE_CHEATS);\n basic_group_layout->addWidget(m_checkbox_cheats);\n \n+ m_checkbox_load_games_into_memory =\n+ new ConfigBool(tr("Load Games Into Memory"), Config::MAIN_LOAD_GAMES_INTO_MEMORY);\n+ basic_group_layout->addWidget(m_checkbox_load_games_into_memory);\n+ m_checkbox_load_games_into_memory->SetDescription(\n+ tr("Load active discs and WAD files into memory in the background."\n+ "<br><br>This may improve performance with slow or high-latency storage."\n+ "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));', 'path': 'Source/Core/DolphinQt/Settings/GeneralPane.cpp', 'position': 18, 'original_position': 18, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Please mention the RAM requirement.', 'created_at': '2025-11-01T10:44:45Z', 'updated_at': '2025-11-01T11:12:38Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579930', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579930'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483579930'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483579930/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483582698, 'node_id': 'PRRC_kwDOALCn2M6UCHbq', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483582698', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -147,6 +148,14 @@ void GeneralPane::CreateBasic()\n m_checkbox_cheats = new ConfigBool(tr("Enable Cheats"), Config::MAIN_ENABLE_CHEATS);\n basic_group_layout->addWidget(m_checkbox_cheats);\n \n+ m_checkbox_load_games_into_memory =\n+ new ConfigBool(tr("Load Games Into Memory"), Config::MAIN_LOAD_GAMES_INTO_MEMORY);\n+ basic_group_layout->addWidget(m_checkbox_load_games_into_memory);\n+ m_checkbox_load_games_into_memory->SetDescription(\n+ tr("Load active discs and WAD files into memory in the background."', 'path': 'Source/Core/DolphinQt/Settings/GeneralPane.cpp', 'position': 16, 'original_position': 16, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'What "active" and what "discs" means is maybe not clear to everyone. How about "Loads the running game into memory in the background"? (I know this is technically inaccurate in the case of running a title that\'s installed on the NAND, but everyone should hopefully have their NAND on a fast local disk, and it\'s one of the rarest ways of running games too.)', 'created_at': '2025-11-01T10:46:01Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483582698', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483582698'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483582698'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483582698/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483589948, 'node_id': 'PRRC_kwDOALCn2M6UCJM8', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483589948', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.\n+\n+ for (u64 i = offset; i < end_pos; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ return CacheState::Scrubbed;\n+ }\n+\n+ return CacheState::Cached;\n+ }\n+\n+ void ThreadFunc(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ {\n+ static constexpr auto PERIODIC_LOG_TIME = std::chrono::seconds{1};\n+\n+ const auto start_time = Clock::now();\n+ const u64 total_size = reader->GetDataSize();\n+\n+ m_memory_region_data = static_cast<u8*>(m_memory_region.Create(total_size));\n+ if (m_memory_region_data == nullptr)\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Failed to create memory region.");\n+ return;\n+ }\n+\n+ // Returns CLUSTER_SIZE or smaller at the end of the file.\n+ const auto get_read_count = [&](u64 pos) {\n+ return std::min<u64>(total_size - pos, DiscScrubber::CLUSTER_SIZE);\n+ };\n+\n+ // Used for periodic progress logging.\n+ u64 total_bytes_to_commit = total_size;\n+\n+ if (attempt_to_scrub)\n+ {\n+ const auto volume = CreateVolume(reader->CopyReader());\n+ if (volume != nullptr && m_scrubber.SetupScrub(*volume))\n+ {\n+ for (u64 i = 0; i < total_size; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ total_bytes_to_commit -= get_read_count(i);\n+ }\n+ }\n+ else\n+ {\n+ WARN_LOG_FMT(DISCIO, "CachedBlobReader: Failed to scrub. The entire file will be cached.");\n+ }\n+ }\n+\n+ auto next_log_time = start_time + PERIODIC_LOG_TIME;\n+ u64 read_offset = 0;\n+ u64 committed_count = 0;\n+\n+ while (true)\n+ {\n+ if (m_stop_thread.load(std::memory_order_relaxed))\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");\n+ break;\n+ }\n+\n+ const auto read_count = get_read_count(read_offset);\n+ if (read_count == 0)\n+ {\n+ const auto total_time = DT_s{Clock::now() - start_time}.count();\n+\n+ static constexpr auto mib_scale = double(1 << 20);\n+\n+ NOTICE_LOG_FMT(\n+ DISCIO, "CachedBlobReader: Completed. Cached {:.2f} of {:.2f} MiB in {:.2f} seconds.",\n+ committed_count / mib_scale, total_size / mib_scale, total_time);\n+ break;\n+ }\n+\n+ if (!m_scrubber.CanBlockBeScrubbed(read_offset))\n+ {\n+ // CLUSTER_SIZE is evenly divisible into LazyMemoryRegion::BLOCK_SIZE on Windows.\n+ m_memory_region.EnsureMemoryPageWritable(read_offset);\n+\n+ if (!reader->Read(read_offset, read_count, m_memory_region_data + read_offset))\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Read failed at position: {}", read_offset);\n+ break;\n+ }\n+\n+ committed_count += read_count;\n+ }\n+\n+ read_offset += read_count;\n+ m_cache_filled_pos.store(read_offset, std::memory_order_release);\n+\n+ if (Clock::now() >= next_log_time)\n+ {\n+ INFO_LOG_FMT(DISCIO, "CachedBlobReader: Progress: {}%",\n+ committed_count * 100 / total_bytes_to_commit);\n+ next_log_time += PERIODIC_LOG_TIME;\n+ }\n+ }\n+ }\n+\n+ // The thread has read non-scrubbed bytes into memory up to this point.\n+ std::atomic<u64> m_cache_filled_pos{};\n+\n+ Common::LazyMemoryRegion m_memory_region;\n+ u8* m_memory_region_data{};\n+\n+ DiscScrubber m_scrubber;\n+\n+ std::atomic_bool m_stop_thread{};\n+ std::thread m_thread;\n+};\n+\n+class CachedBlobReader final : public BlobReader\n+{\n+public:\n+ explicit CachedBlobReader(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_cache_filler{std::make_shared<CacheFiller>(reader->CopyReader(), attempt_to_scrub)},\n+ m_reader{std::move(reader)}\n+\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Created");', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 189, 'original_position': 189, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This is in my opinion not significant enough to warrant a Notice.', 'created_at': '2025-11-01T10:49:30Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483589948', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483589948'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483589948'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '4e0b2e6c7894c2f6196f9b7ea44f727200490f0e', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483589948/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483595141, 'node_id': 'PRRC_kwDOALCn2M6UCKeF', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483595141', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.\n+\n+ for (u64 i = offset; i < end_pos; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ return CacheState::Scrubbed;\n+ }\n+\n+ return CacheState::Cached;\n+ }\n+\n+ void ThreadFunc(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ {\n+ static constexpr auto PERIODIC_LOG_TIME = std::chrono::seconds{1};\n+\n+ const auto start_time = Clock::now();\n+ const u64 total_size = reader->GetDataSize();\n+\n+ m_memory_region_data = static_cast<u8*>(m_memory_region.Create(total_size));\n+ if (m_memory_region_data == nullptr)\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Failed to create memory region.");\n+ return;\n+ }\n+\n+ // Returns CLUSTER_SIZE or smaller at the end of the file.\n+ const auto get_read_count = [&](u64 pos) {\n+ return std::min<u64>(total_size - pos, DiscScrubber::CLUSTER_SIZE);\n+ };\n+\n+ // Used for periodic progress logging.\n+ u64 total_bytes_to_commit = total_size;\n+\n+ if (attempt_to_scrub)\n+ {\n+ const auto volume = CreateVolume(reader->CopyReader());\n+ if (volume != nullptr && m_scrubber.SetupScrub(*volume))\n+ {\n+ for (u64 i = 0; i < total_size; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ total_bytes_to_commit -= get_read_count(i);\n+ }\n+ }\n+ else\n+ {\n+ WARN_LOG_FMT(DISCIO, "CachedBlobReader: Failed to scrub. The entire file will be cached.");\n+ }\n+ }\n+\n+ auto next_log_time = start_time + PERIODIC_LOG_TIME;\n+ u64 read_offset = 0;\n+ u64 committed_count = 0;\n+\n+ while (true)\n+ {\n+ if (m_stop_thread.load(std::memory_order_relaxed))\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");\n+ break;\n+ }\n+\n+ const auto read_count = get_read_count(read_offset);\n+ if (read_count == 0)\n+ {\n+ const auto total_time = DT_s{Clock::now() - start_time}.count();\n+\n+ static constexpr auto mib_scale = double(1 << 20);\n+\n+ NOTICE_LOG_FMT(\n+ DISCIO, "CachedBlobReader: Completed. Cached {:.2f} of {:.2f} MiB in {:.2f} seconds.",\n+ committed_count / mib_scale, total_size / mib_scale, total_time);\n+ break;\n+ }\n+\n+ if (!m_scrubber.CanBlockBeScrubbed(read_offset))\n+ {\n+ // CLUSTER_SIZE is evenly divisible into LazyMemoryRegion::BLOCK_SIZE on Windows.\n+ m_memory_region.EnsureMemoryPageWritable(read_offset);\n+\n+ if (!reader->Read(read_offset, read_count, m_memory_region_data + read_offset))\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Read failed at position: {}", read_offset);\n+ break;\n+ }\n+\n+ committed_count += read_count;\n+ }\n+\n+ read_offset += read_count;\n+ m_cache_filled_pos.store(read_offset, std::memory_order_release);\n+\n+ if (Clock::now() >= next_log_time)\n+ {\n+ INFO_LOG_FMT(DISCIO, "CachedBlobReader: Progress: {}%",\n+ committed_count * 100 / total_bytes_to_commit);\n+ next_log_time += PERIODIC_LOG_TIME;\n+ }\n+ }\n+ }\n+\n+ // The thread has read non-scrubbed bytes into memory up to this point.\n+ std::atomic<u64> m_cache_filled_pos{};\n+\n+ Common::LazyMemoryRegion m_memory_region;\n+ u8* m_memory_region_data{};\n+\n+ DiscScrubber m_scrubber;\n+\n+ std::atomic_bool m_stop_thread{};\n+ std::thread m_thread;\n+};\n+\n+class CachedBlobReader final : public BlobReader\n+{\n+public:\n+ explicit CachedBlobReader(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_cache_filler{std::make_shared<CacheFiller>(reader->CopyReader(), attempt_to_scrub)},\n+ m_reader{std::move(reader)}\n+\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Created");\n+ }\n+\n+ CachedBlobReader(std::shared_ptr<CacheFiller> cache_filler, std::unique_ptr<BlobReader> reader)\n+ : m_cache_filler{std::move(cache_filler)}, m_reader{std::move(reader)}\n+ {\n+ INFO_LOG_FMT(DISCIO, "CachedBlobReader: Copied");\n+ }\n+\n+ BlobType GetBlobType() const override { return BlobType::PLAIN; }', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 198, 'original_position': 198, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n BlobType GetBlobType() const override { return m_reader->GetBlobType(); }\r\n```', 'created_at': '2025-11-01T10:52:00Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483595141', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483595141'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483595141'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483595141/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483610995, 'node_id': 'PRRC_kwDOALCn2M6UCOVz', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483610995', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 68, 'original_position': 68, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Could probably be easier to understand as:\r\n\r\n```suggestion\r\n // Note: GetCacheState(0, 0) would race scrubber setup, but then we'd check 0 clusters, so all good.\r\n```", 'created_at': '2025-11-01T11:00:36Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483610995', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483610995'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483610995'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483610995/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483618139, 'node_id': 'PRRC_kwDOALCn2M6UCQFb', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483618139', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.\n+\n+ for (u64 i = offset; i < end_pos; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ return CacheState::Scrubbed;\n+ }\n+\n+ return CacheState::Cached;\n+ }\n+\n+ void ThreadFunc(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ {\n+ static constexpr auto PERIODIC_LOG_TIME = std::chrono::seconds{1};\n+\n+ const auto start_time = Clock::now();\n+ const u64 total_size = reader->GetDataSize();\n+\n+ m_memory_region_data = static_cast<u8*>(m_memory_region.Create(total_size));\n+ if (m_memory_region_data == nullptr)\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Failed to create memory region.");\n+ return;\n+ }\n+\n+ // Returns CLUSTER_SIZE or smaller at the end of the file.\n+ const auto get_read_count = [&](u64 pos) {\n+ return std::min<u64>(total_size - pos, DiscScrubber::CLUSTER_SIZE);\n+ };\n+\n+ // Used for periodic progress logging.\n+ u64 total_bytes_to_commit = total_size;\n+\n+ if (attempt_to_scrub)\n+ {\n+ const auto volume = CreateVolume(reader->CopyReader());\n+ if (volume != nullptr && m_scrubber.SetupScrub(*volume))\n+ {\n+ for (u64 i = 0; i < total_size; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ total_bytes_to_commit -= get_read_count(i);\n+ }\n+ }\n+ else\n+ {\n+ WARN_LOG_FMT(DISCIO, "CachedBlobReader: Failed to scrub. The entire file will be cached.");\n+ }\n+ }\n+\n+ auto next_log_time = start_time + PERIODIC_LOG_TIME;\n+ u64 read_offset = 0;\n+ u64 committed_count = 0;\n+\n+ while (true)\n+ {\n+ if (m_stop_thread.load(std::memory_order_relaxed))\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 126, 'original_position': 126, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This shouldn't use Notice either.", 'created_at': '2025-11-01T11:04:09Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483618139', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483618139'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483618139'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483618139/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483625650, 'node_id': 'PRRC_kwDOALCn2M6UCR6y', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483625650', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.\n+\n+ for (u64 i = offset; i < end_pos; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ return CacheState::Scrubbed;\n+ }\n+\n+ return CacheState::Cached;\n+ }\n+\n+ void ThreadFunc(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ {\n+ static constexpr auto PERIODIC_LOG_TIME = std::chrono::seconds{1};\n+\n+ const auto start_time = Clock::now();\n+ const u64 total_size = reader->GetDataSize();\n+\n+ m_memory_region_data = static_cast<u8*>(m_memory_region.Create(total_size));\n+ if (m_memory_region_data == nullptr)\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Failed to create memory region.");\n+ return;\n+ }\n+\n+ // Returns CLUSTER_SIZE or smaller at the end of the file.\n+ const auto get_read_count = [&](u64 pos) {\n+ return std::min<u64>(total_size - pos, DiscScrubber::CLUSTER_SIZE);\n+ };\n+\n+ // Used for periodic progress logging.\n+ u64 total_bytes_to_commit = total_size;\n+\n+ if (attempt_to_scrub)\n+ {\n+ const auto volume = CreateVolume(reader->CopyReader());\n+ if (volume != nullptr && m_scrubber.SetupScrub(*volume))\n+ {\n+ for (u64 i = 0; i < total_size; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ total_bytes_to_commit -= get_read_count(i);\n+ }\n+ }\n+ else\n+ {\n+ WARN_LOG_FMT(DISCIO, "CachedBlobReader: Failed to scrub. The entire file will be cached.");\n+ }\n+ }\n+\n+ auto next_log_time = start_time + PERIODIC_LOG_TIME;\n+ u64 read_offset = 0;\n+ u64 committed_count = 0;\n+\n+ while (true)\n+ {\n+ if (m_stop_thread.load(std::memory_order_relaxed))\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");\n+ break;\n+ }\n+\n+ const auto read_count = get_read_count(read_offset);\n+ if (read_count == 0)\n+ {\n+ const auto total_time = DT_s{Clock::now() - start_time}.count();\n+\n+ static constexpr auto mib_scale = double(1 << 20);\n+\n+ NOTICE_LOG_FMT(\n+ DISCIO, "CachedBlobReader: Completed. Cached {:.2f} of {:.2f} MiB in {:.2f} seconds.",\n+ committed_count / mib_scale, total_size / mib_scale, total_time);\n+ break;\n+ }\n+\n+ if (!m_scrubber.CanBlockBeScrubbed(read_offset))\n+ {\n+ // CLUSTER_SIZE is evenly divisible into LazyMemoryRegion::BLOCK_SIZE on Windows.', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 145, 'original_position': 145, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '`static_assert`?', 'created_at': '2025-11-01T11:07:50Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483625650', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483625650'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483625650'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483625650/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483637630, 'node_id': 'PRRC_kwDOALCn2M6UCU1-', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483637630', 'pull_request_review_id': 3407378278, 'diff_hunk': '@@ -0,0 +1,236 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DiscIO/CachedBlob.h"\n+\n+#include <atomic>\n+#include <chrono>\n+#include <thread>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/Logging/Log.h"\n+#include "Common/MemArena.h"\n+\n+#include "DiscIO/DiscScrubber.h"\n+#include "DiscIO/Volume.h"\n+\n+namespace DiscIO\n+{\n+class CacheFiller final\n+{\n+public:\n+ explicit CacheFiller(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ : m_thread{&CacheFiller::ThreadFunc, this, std::move(reader), attempt_to_scrub}\n+ {\n+ }\n+\n+ ~CacheFiller()\n+ {\n+ m_stop_thread.store(true, std::memory_order_relaxed);\n+ m_thread.join();\n+ }\n+\n+ bool Read(u64 offset, u64 size, u8* out_ptr)\n+ {\n+ switch (GetCacheState(offset, size))\n+ {\n+ case CacheState::Cached:\n+ std::memcpy(out_ptr, m_memory_region_data + offset, size);\n+ return true;\n+\n+ case CacheState::Scrubbed:\n+ WARN_LOG_FMT(DISCIO,\n+ "CachedBlobReader: Read({}, {}) hits a scrubbed cluster which is not cached.",\n+ offset, size);\n+ return false;\n+\n+ default:\n+ return false;\n+ }\n+ }\n+\n+private:\n+ enum class CacheState\n+ {\n+ Cached,\n+ NotCached,\n+ Scrubbed,\n+ };\n+\n+ CacheState GetCacheState(u64 offset, u64 size)\n+ {\n+ const auto cache_pos = m_cache_filled_pos.load(std::memory_order_acquire);\n+\n+ const auto end_pos = offset + size;\n+ if (end_pos > cache_pos)\n+ return CacheState::NotCached;\n+\n+ // Note: Read(0, 0) would race scrubber setup, but then we\'d check 0 clusters, so all good.\n+\n+ for (u64 i = offset; i < end_pos; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ return CacheState::Scrubbed;\n+ }\n+\n+ return CacheState::Cached;\n+ }\n+\n+ void ThreadFunc(std::unique_ptr<BlobReader> reader, bool attempt_to_scrub)\n+ {\n+ static constexpr auto PERIODIC_LOG_TIME = std::chrono::seconds{1};\n+\n+ const auto start_time = Clock::now();\n+ const u64 total_size = reader->GetDataSize();\n+\n+ m_memory_region_data = static_cast<u8*>(m_memory_region.Create(total_size));\n+ if (m_memory_region_data == nullptr)\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Failed to create memory region.");\n+ return;\n+ }\n+\n+ // Returns CLUSTER_SIZE or smaller at the end of the file.\n+ const auto get_read_count = [&](u64 pos) {\n+ return std::min<u64>(total_size - pos, DiscScrubber::CLUSTER_SIZE);\n+ };\n+\n+ // Used for periodic progress logging.\n+ u64 total_bytes_to_commit = total_size;\n+\n+ if (attempt_to_scrub)\n+ {\n+ const auto volume = CreateVolume(reader->CopyReader());\n+ if (volume != nullptr && m_scrubber.SetupScrub(*volume))\n+ {\n+ for (u64 i = 0; i < total_size; i += DiscScrubber::CLUSTER_SIZE)\n+ {\n+ if (m_scrubber.CanBlockBeScrubbed(i))\n+ total_bytes_to_commit -= get_read_count(i);\n+ }\n+ }\n+ else\n+ {\n+ WARN_LOG_FMT(DISCIO, "CachedBlobReader: Failed to scrub. The entire file will be cached.");\n+ }\n+ }\n+\n+ auto next_log_time = start_time + PERIODIC_LOG_TIME;\n+ u64 read_offset = 0;\n+ u64 committed_count = 0;\n+\n+ while (true)\n+ {\n+ if (m_stop_thread.load(std::memory_order_relaxed))\n+ {\n+ NOTICE_LOG_FMT(DISCIO, "CachedBlobReader: Stopped");\n+ break;\n+ }\n+\n+ const auto read_count = get_read_count(read_offset);\n+ if (read_count == 0)\n+ {\n+ const auto total_time = DT_s{Clock::now() - start_time}.count();\n+\n+ static constexpr auto mib_scale = double(1 << 20);\n+\n+ NOTICE_LOG_FMT(\n+ DISCIO, "CachedBlobReader: Completed. Cached {:.2f} of {:.2f} MiB in {:.2f} seconds.",\n+ committed_count / mib_scale, total_size / mib_scale, total_time);\n+ break;\n+ }\n+\n+ if (!m_scrubber.CanBlockBeScrubbed(read_offset))\n+ {\n+ // CLUSTER_SIZE is evenly divisible into LazyMemoryRegion::BLOCK_SIZE on Windows.\n+ m_memory_region.EnsureMemoryPageWritable(read_offset);\n+\n+ if (!reader->Read(read_offset, read_count, m_memory_region_data + read_offset))\n+ {\n+ ERROR_LOG_FMT(DISCIO, "CachedBlobReader: Read failed at position: {}", read_offset);\n+ break;\n+ }\n+\n+ committed_count += read_count;\n+ }\n+\n+ read_offset += read_count;\n+ m_cache_filled_pos.store(read_offset, std::memory_order_release);\n+\n+ if (Clock::now() >= next_log_time)\n+ {\n+ INFO_LOG_FMT(DISCIO, "CachedBlobReader: Progress: {}%",\n+ committed_count * 100 / total_bytes_to_commit);\n+ next_log_time += PERIODIC_LOG_TIME;', 'path': 'Source/Core/DiscIO/CachedBlob.cpp', 'position': 164, 'original_position': 164, 'commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "```suggestion\r\n next_log_time = Clock::now() + PERIODIC_LOG_TIME;\r\n```\r\n\r\nOtherwise if Dolphin froze for a while (maybe the system is heavily swapping because the user enabled caching for a too big game), you'll get a burst of log spam.", 'created_at': '2025-11-01T11:12:16Z', 'updated_at': '2025-11-01T11:12:39Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483637630', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483637630'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14056#discussion_r2483637630'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056'}}, 'original_commit_id': '96711b89c324516b145906f01a7d814bb63134dc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483637630/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T10:43:00.791654 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14052, 'pr_title': 'Common and DiscIO: Introduce a thread safe DirectIOFile and make BlobReader implementations use it.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14052#pullrequestreview-3407179064', 'comments': [{'id': 2483395828, 'node_id': 'PRRC_kwDOALCn2M6UBZz0', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483395828', 'pull_request_review_id': 3407179064, 'diff_hunk': '@@ -0,0 +1,250 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "Common/DirectIOFile.h"\n+\n+#include <cassert>\n+#include <utility>\n+\n+#if defined(_WIN32)\n+#include <string_view>\n+\n+#include <windows.h>\n+\n+#include "Common/CommonFuncs.h"\n+#include "Common/StringUtil.h"\n+#else\n+#include <fcntl.h>\n+#include <sys/stat.h>\n+#include <unistd.h>\n+#endif\n+\n+#include "Common/Assert.h"\n+\n+namespace File\n+{\n+DirectIOFile::DirectIOFile() = default;\n+\n+DirectIOFile::~DirectIOFile()\n+{\n+ Close();\n+}\n+\n+DirectIOFile::DirectIOFile(const DirectIOFile& other)\n+{\n+ *this = other.Duplicate();\n+}\n+\n+DirectIOFile& DirectIOFile::operator=(const DirectIOFile& other)\n+{\n+ return *this = other.Duplicate();\n+}\n+\n+DirectIOFile::DirectIOFile(DirectIOFile&& other)\n+{\n+ Swap(other);\n+}\n+\n+DirectIOFile& DirectIOFile::operator=(DirectIOFile&& other)\n+{\n+ Close();\n+ Swap(other);\n+ return *this;\n+}\n+\n+DirectIOFile::DirectIOFile(const std::string& path, const char open_mode[])\n+{\n+ Open(path, open_mode);\n+}\n+\n+bool DirectIOFile::Open(const std::string& path, const char open_mode[])\n+{\n+ ASSERT(!IsOpen());\n+\n+ m_current_offset = 0;\n+\n+#ifdef _WIN32\n+ const std::string_view open_mode_str{open_mode};\n+\n+ DWORD desired_access = 0;\n+ DWORD share_mode = 0;\n+ DWORD creation_disposition = OPEN_EXISTING;\n+\n+ if (open_mode_str.contains(\'r\'))\n+ {\n+ desired_access |= GENERIC_READ;\n+ share_mode |= FILE_SHARE_READ;\n+ }\n+ if (open_mode_str.contains(\'w\'))\n+ {\n+ desired_access |= GENERIC_WRITE;\n+ share_mode |= FILE_SHARE_WRITE;\n+ creation_disposition = OPEN_ALWAYS;\n+ }\n+\n+ m_handle = CreateFile(UTF8ToTStr(path).c_str(), desired_access, share_mode, nullptr,\n+ creation_disposition, FILE_ATTRIBUTE_NORMAL, nullptr);\n+ if (!IsOpen())\n+ WARN_LOG_FMT(COMMON, "CreateFile: {}", Common::GetLastErrorString());\n+#else\n+ // Leveraging IOFile to avoid reimplementing OS-specific opening procedures.\n+ if (IOFile file(path, open_mode); file.IsOpen())\n+ m_fd = dup(fileno(file.GetHandle()));\n+#endif\n+\n+ return IsOpen();\n+}\n+\n+bool DirectIOFile::Close()\n+{\n+ if (!IsOpen())\n+ return true;\n+\n+#if defined(_WIN32)\n+ return CloseHandle(std::exchange(m_handle, INVALID_HANDLE_VALUE)) != 0;\n+#else\n+ return close(std::exchange(m_fd, -1)) == 0;\n+#endif\n+}\n+\n+bool DirectIOFile::IsOpen() const\n+{\n+#if defined(_WIN32)\n+ return m_handle != INVALID_HANDLE_VALUE;\n+#else\n+ return m_fd != -1;\n+#endif\n+}\n+\n+#if defined(_WIN32)\n+template <auto* TransferFunc>\n+static bool OverlappedTransfer(HANDLE handle, u64 offset, auto* data_ptr, u64 size)\n+{\n+ // ReadFile/WriteFile take a 32bit size so we must loop to handle our 64bit size.\n+ while (true)\n+ {\n+ OVERLAPPED overlapped{};\n+ overlapped.Offset = DWORD(offset);\n+ overlapped.OffsetHigh = DWORD(offset >> 32);\n+\n+ DWORD bytes_transferred{};\n+ if (TransferFunc(handle, data_ptr, DWORD(size), &bytes_transferred, &overlapped) == 0)\n+ {\n+ ERROR_LOG_FMT(COMMON, "OverlappedTransfer: {}", Common::GetLastErrorString());\n+ return false;\n+ }\n+\n+ size -= bytes_transferred;\n+\n+ if (size == 0)\n+ return true;\n+\n+ offset += bytes_transferred;\n+ data_ptr += bytes_transferred;\n+ }\n+}\n+#endif\n+\n+bool DirectIOFile::OffsetRead(u64 offset, u8* out_ptr, u64 size)\n+{\n+ assert(IsOpen());', 'path': 'Source/Core/Common/DirectIOFile.cpp', 'position': 150, 'original_position': 150, 'commit_id': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Any particular reason why you're using `assert` instead of `ASSERT`?", 'created_at': '2025-11-01T09:48:51Z', 'updated_at': '2025-11-01T10:42:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483395828', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483395828'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483395828'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052'}}, 'original_commit_id': '4cd6ed65dc0cbfb2d9b09897f5be33207935d63f', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483395828/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483408749, 'node_id': 'PRRC_kwDOALCn2M6UBc9t', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483408749', 'pull_request_review_id': 3407179064, 'diff_hunk': '@@ -0,0 +1,250 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "Common/DirectIOFile.h"\n+\n+#include <cassert>\n+#include <utility>\n+\n+#if defined(_WIN32)\n+#include <string_view>\n+\n+#include <windows.h>\n+\n+#include "Common/CommonFuncs.h"\n+#include "Common/StringUtil.h"\n+#else\n+#include <fcntl.h>\n+#include <sys/stat.h>\n+#include <unistd.h>\n+#endif\n+\n+#include "Common/Assert.h"\n+\n+namespace File\n+{\n+DirectIOFile::DirectIOFile() = default;\n+\n+DirectIOFile::~DirectIOFile()\n+{\n+ Close();\n+}\n+\n+DirectIOFile::DirectIOFile(const DirectIOFile& other)\n+{\n+ *this = other.Duplicate();\n+}\n+\n+DirectIOFile& DirectIOFile::operator=(const DirectIOFile& other)\n+{\n+ return *this = other.Duplicate();\n+}\n+\n+DirectIOFile::DirectIOFile(DirectIOFile&& other)\n+{\n+ Swap(other);\n+}\n+\n+DirectIOFile& DirectIOFile::operator=(DirectIOFile&& other)\n+{\n+ Close();\n+ Swap(other);\n+ return *this;\n+}\n+\n+DirectIOFile::DirectIOFile(const std::string& path, const char open_mode[])\n+{\n+ Open(path, open_mode);\n+}\n+\n+bool DirectIOFile::Open(const std::string& path, const char open_mode[])', 'path': 'Source/Core/Common/DirectIOFile.cpp', 'position': 60, 'original_position': 60, 'commit_id': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'The use of a char array for the open mode implies that this supports all the "usual" flags like `b` and so on, yet it only supports `r` and `w`. I recommend using an enum instead to make it clear for callers which modes are supported.', 'created_at': '2025-11-01T09:52:48Z', 'updated_at': '2025-11-01T10:42:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483408749', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483408749'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483408749'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052'}}, 'original_commit_id': '4cd6ed65dc0cbfb2d9b09897f5be33207935d63f', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483408749/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483448491, 'node_id': 'PRRC_kwDOALCn2M6UBmqr', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483448491', 'pull_request_review_id': 3407179064, 'diff_hunk': '@@ -4,14 +4,12 @@\n #include "DiscIO/Blob.h"\n \n #include <algorithm>\n-#include <cstddef>\n-#include <limits>\n #include <memory>\n #include <string>\n #include <utility>\n \n+#include "Common/BitUtils.h"\n #include "Common/CommonTypes.h"\n-#include "Common/IOFile.h"\n #include "Common/MsgHandler.h"', 'path': 'Source/Core/DiscIO/Blob.cpp', 'position': 13, 'original_position': 13, 'commit_id': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'No DirectIOFile.h include?', 'created_at': '2025-11-01T10:02:33Z', 'updated_at': '2025-11-01T10:42:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483448491', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483448491'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483448491'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052'}}, 'original_commit_id': 'b4ffd4219c355e77bfd1dacfb51bdd56a4991f68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483448491/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483531909, 'node_id': 'PRRC_kwDOALCn2M6UB7CF', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483531909', 'pull_request_review_id': 3407179064, 'diff_hunk': '@@ -167,9 +164,9 @@ NFSFileReader::NFSFileReader(std::vector<NFSLBARange> lba_ranges, std::vector<Fi\n \n std::unique_ptr<BlobReader> NFSFileReader::CopyReader() const\n {\n- std::vector<File::IOFile> new_files{};\n- for (const File::IOFile& file : m_files)\n- new_files.push_back(file.Duplicate("rb"));\n+ std::vector<File::DirectIOFile> new_files{};\n+ for (const auto& file : m_files)\n+ new_files.push_back(file);', 'path': 'Source/Core/DiscIO/NFSBlob.cpp', 'position': 101, 'original_position': 101, 'commit_id': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Now that you don't need to call `Duplicate`, you should be able to use the vector copy constructor instead of writing a loop and using `std::move`.", 'created_at': '2025-11-01T10:25:59Z', 'updated_at': '2025-11-01T10:42:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483531909', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483531909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483531909'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052'}}, 'original_commit_id': 'b4ffd4219c355e77bfd1dacfb51bdd56a4991f68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483531909/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2483540217, 'node_id': 'PRRC_kwDOALCn2M6UB9D5', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483540217', 'pull_request_review_id': 3407179064, 'diff_hunk': '@@ -61,8 +55,7 @@ std::unique_ptr<BlobReader> SplitPlainFileReader::CopyReader() const\n std::vector<SingleFile> new_files{};\n for (const SingleFile& file : m_files)\n {\n- new_files.push_back(\n- {.file = file.file.Duplicate("rb"), .offset = file.offset, .size = file.size});\n+ new_files.push_back({.file = file.file, .offset = file.offset, .size = file.size});', 'path': 'Source/Core/DiscIO/SplitFileBlob.cpp', 'position': 33, 'original_position': 33, 'commit_id': '343e72d5c6c9ffcac523ba6a05de70855b88574d', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Same here regarding using the vector copy constructor.', 'created_at': '2025-11-01T10:29:21Z', 'updated_at': '2025-11-01T10:42:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483540217', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483540217'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14052#discussion_r2483540217'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14052'}}, 'original_commit_id': 'b4ffd4219c355e77bfd1dacfb51bdd56a4991f68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483540217/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T10:26:19.931637 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'submitted', 'pr_id': 14048, 'pr_title': 'Android: Save settings instantly after edits', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14048#pullrequestreview-3407328220', 'comments': [], 'type': 'gh_pull_request_review'}
2025-11-01T08:59:57.610765 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14048, 'pr_title': 'Android: Save settings instantly after edits', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14048#pullrequestreview-3407025193', 'comments': [], 'type': 'gh_pull_request_review'}
2025-11-01T08:57:25.026867 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14047, 'pr_title': 'Android: Add Reset Dolphin Settings functionality', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14047#pullrequestreview-3407014990', 'comments': [{'id': 2483254718, 'node_id': 'PRRC_kwDOALCn2M6UA3W-', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483254718', 'pull_request_review_id': 3407014990, 'diff_hunk': '@@ -73,18 +81,41 @@ class UserDataActivity : AppCompatActivity() {\n \n mBinding.buttonExportUserData.setOnClickListener { exportUserData() }\n \n+ mBinding.buttonResetSettings?.setOnClickListener { confirmResetSettings() }\n+\n setSupportActionBar(mBinding.toolbarUserData)\n supportActionBar!!.setDisplayHomeAsUpEnabled(true)\n \n setInsets()\n enableScrollTint(this, mBinding.toolbarUserData, mBinding.appbarUserData)\n+\n+ if (intent.getBooleanExtra(EXTRA_PENDING_ANALYTICS, false)) {\n+ intent.putExtra(EXTRA_PENDING_ANALYTICS, false)', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.kt', 'position': 50, 'original_position': 50, 'commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Does this `putExtra` call have a purpose?\r\n\r\nAlso, regarding this intent approach in general, wouldn't it be simpler to just call `Analytics.checkAnalyticsInit` in something like `onCreate`, like `MainActivity` does?", 'created_at': '2025-11-01T08:57:22Z', 'updated_at': '2025-11-01T08:57:23Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483254718', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483254718'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483254718'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}}, 'original_commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483254718/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T01:45:06.355645 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406728208', 'comments': [{'id': 2483039187, 'node_id': 'PRRC_kwDOALCn2M6UACvT', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483039187', 'pull_request_review_id': 3406728208, 'diff_hunk': '@@ -886,10 +886,10 @@ void VideoInterfaceManager::EndField(FieldType field, u64 ticks)\n \n // Note: OutputField above doesn\'t present when using GPU-on-Thread or Early/Immediate XFB,\n // giving "VBlank" measurements here poor pacing without a Throttle call.\n- // If the user actually wants the data, we\'ll Throttle to make the numbers nice.\n- const bool is_vblank_data_wanted = g_ActiveConfig.bShowVPS || g_ActiveConfig.bShowVTimes ||\n- g_ActiveConfig.bLogRenderTimeToFile ||\n- g_ActiveConfig.bShowGraphs;\n+ // We\'ll throttle so long as ImmediateXFB and RushFramePresentation aren\'t enabled.\n+ // Those settings intend to minimize input latency and throttling would be counterproductive.\n+ const bool is_vblank_data_wanted =\n+ !g_ActiveConfig.bImmediateXFB && !Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION);', 'path': 'Source/Core/Core/HW/VideoInterface.cpp', 'position': 11, 'original_position': 11, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Note to self: `Config::MAIN_RUSH_FRAME_PRESENTATION` doesn't need to be checked here, that's handled inside `Throttle` itself.", 'created_at': '2025-11-01T01:45:03Z', 'updated_at': '2025-11-01T01:45:03Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483039187', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483039187'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483039187'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483039187/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T01:40:58.420121 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406723298', 'comments': [{'id': 2483037796, 'node_id': 'PRRC_kwDOALCn2M6UACZk', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483037796', 'pull_request_review_id': 3406723298, 'diff_hunk': '@@ -903,6 +910,34 @@ void Presenter::Present(std::optional<TimePoint> presentation_time)\n g_gfx->EndUtilityDrawing();\n }\n \n+TimePoint Presenter::GetUpdatedPresentationTime(TimePoint intended_presentation_time)\n+{\n+ const auto now = Clock::now();\n+ const auto arrival_offset = std::min(now - intended_presentation_time, DT{});\n+\n+ if (!Config::Get(Config::MAIN_SMOOTH_EARLY_PRESENTATION))\n+ {\n+ m_presentation_time_offset = arrival_offset;\n+\n+ // When SmoothEarlyPresentation is off and ImmediateXFB or RushFramePresentation are on,\n+ // present as soon as possible as the goal is to achieve low input latency.\n+ if (g_ActiveConfig.bImmediateXFB || Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION))\n+ return now;\n+\n+ return intended_presentation_time;\n+ }\n+\n+ // Adjust slowly backward in time but quickly forward in time.\n+ // This keeps the pacing moderately smooth even if games produce regular sporadic bumps.\n+ // This was tuned to handle the terrible pacing in Brawl with "Immediate XFB".', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 125, 'original_position': 106, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "I was pretty much just trying different numbers until something made Brawl's pacing not suck. :D", 'created_at': '2025-11-01T01:40:55Z', 'updated_at': '2025-11-01T01:40:56Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483037796', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483037796'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483037796'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'ce41dc7131f27c9e6d478c6d238049efec0a6090', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483037796/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2483029209}], 'type': 'gh_pull_request_review'}
2025-11-01T01:36:24.437207 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406717906', 'comments': [{'id': 2483036346, 'node_id': 'PRRC_kwDOALCn2M6UACC6', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483036346', 'pull_request_review_id': 3406717906, 'diff_hunk': '@@ -903,6 +910,34 @@ void Presenter::Present(std::optional<TimePoint> presentation_time)\n g_gfx->EndUtilityDrawing();\n }\n \n+TimePoint Presenter::GetUpdatedPresentationTime(TimePoint intended_presentation_time)\n+{\n+ const auto now = Clock::now();\n+ const auto arrival_offset = std::min(now - intended_presentation_time, DT{});\n+\n+ if (!Config::Get(Config::MAIN_SMOOTH_EARLY_PRESENTATION))\n+ {\n+ m_presentation_time_offset = arrival_offset;\n+\n+ // When SmoothEarlyPresentation is off and ImmediateXFB or RushFramePresentation are on,\n+ // present as soon as possible as the goal is to achieve low input latency.\n+ if (g_ActiveConfig.bImmediateXFB || Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION))\n+ return now;\n+\n+ return intended_presentation_time;\n+ }\n+\n+ // Adjust slowly backward in time but quickly forward in time.\n+ // This keeps the pacing moderately smooth even if games produce regular sporadic bumps.\n+ // This was tuned to handle the terrible pacing in Brawl with "Immediate XFB".\n+ // Super Mario Galaxy 1 + 2 still perform poorly here in SingleCore mode.\n+ const auto adjustment_divisor = (arrival_offset < m_presentation_time_offset) ? 100 : 2;\n+\n+ m_presentation_time_offset += (arrival_offset - m_presentation_time_offset) / adjustment_divisor;', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 129, 'original_position': 110, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Thanks, just read the opening which at least gave me some details on Galaxy. I questioned the algorithm initially but I need to think more about this and how it plays with XFBs. Good work. Feel free to resolve this.', 'created_at': '2025-11-01T01:36:22Z', 'updated_at': '2025-11-01T01:36:22Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483036346', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483036346'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483036346'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'ce41dc7131f27c9e6d478c6d238049efec0a6090', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483036346/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2483029347}], 'type': 'gh_pull_request_review'}
2025-11-01T01:23:30.711342 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406700951', 'comments': [{'id': 2483030586, 'node_id': 'PRRC_kwDOALCn2M6UAAo6', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483030586', 'pull_request_review_id': 3406700951, 'diff_hunk': '@@ -903,6 +910,34 @@ void Presenter::Present(std::optional<TimePoint> presentation_time)\n g_gfx->EndUtilityDrawing();\n }\n \n+TimePoint Presenter::GetUpdatedPresentationTime(TimePoint intended_presentation_time)\n+{\n+ const auto now = Clock::now();\n+ const auto arrival_offset = std::min(now - intended_presentation_time, DT{});\n+\n+ if (!Config::Get(Config::MAIN_SMOOTH_EARLY_PRESENTATION))\n+ {\n+ m_presentation_time_offset = arrival_offset;\n+\n+ // When SmoothEarlyPresentation is off and ImmediateXFB or RushFramePresentation are on,\n+ // present as soon as possible as the goal is to achieve low input latency.\n+ if (g_ActiveConfig.bImmediateXFB || Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION))\n+ return now;\n+\n+ return intended_presentation_time;\n+ }\n+\n+ // Adjust slowly backward in time but quickly forward in time.\n+ // This keeps the pacing moderately smooth even if games produce regular sporadic bumps.\n+ // This was tuned to handle the terrible pacing in Brawl with "Immediate XFB".\n+ // Super Mario Galaxy 1 + 2 still perform poorly here in SingleCore mode.\n+ const auto adjustment_divisor = (arrival_offset < m_presentation_time_offset) ? 100 : 2;\n+\n+ m_presentation_time_offset += (arrival_offset - m_presentation_time_offset) / adjustment_divisor;', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 129, 'original_position': 110, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "There's probably a better algorithm, but I do think it makes sense for the adjustment to be bigger/smaller based on how close we are.", 'created_at': '2025-11-01T01:23:28Z', 'updated_at': '2025-11-01T01:23:29Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483030586', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483030586'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483030586'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'ce41dc7131f27c9e6d478c6d238049efec0a6090', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483030586/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2483029347}], 'type': 'gh_pull_request_review'}
2025-11-01T01:20:55.053102 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406697267', 'comments': [{'id': 2483029347, 'node_id': 'PRRC_kwDOALCn2M6UAAVj', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029347', 'pull_request_review_id': 3406697267, 'diff_hunk': '@@ -903,6 +910,34 @@ void Presenter::Present(std::optional<TimePoint> presentation_time)\n g_gfx->EndUtilityDrawing();\n }\n \n+TimePoint Presenter::GetUpdatedPresentationTime(TimePoint intended_presentation_time)\n+{\n+ const auto now = Clock::now();\n+ const auto arrival_offset = std::min(now - intended_presentation_time, DT{});\n+\n+ if (!Config::Get(Config::MAIN_SMOOTH_EARLY_PRESENTATION))\n+ {\n+ m_presentation_time_offset = arrival_offset;\n+\n+ // When SmoothEarlyPresentation is off and ImmediateXFB or RushFramePresentation are on,\n+ // present as soon as possible as the goal is to achieve low input latency.\n+ if (g_ActiveConfig.bImmediateXFB || Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION))\n+ return now;\n+\n+ return intended_presentation_time;\n+ }\n+\n+ // Adjust slowly backward in time but quickly forward in time.\n+ // This keeps the pacing moderately smooth even if games produce regular sporadic bumps.\n+ // This was tuned to handle the terrible pacing in Brawl with "Immediate XFB".\n+ // Super Mario Galaxy 1 + 2 still perform poorly here in SingleCore mode.\n+ const auto adjustment_divisor = (arrival_offset < m_presentation_time_offset) ? 100 : 2;\n+\n+ m_presentation_time_offset += (arrival_offset - m_presentation_time_offset) / adjustment_divisor;', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 129, 'original_position': 110, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "I'm not really great at this but one thing I notice is that as we get closer to arrival offset, the `adjustment_divisor` will have a bigger or smaller impact on increment of the `m_presentation_time_offset` depending on how close we are. Wondering if a different algorithm would be better?", 'created_at': '2025-11-01T01:20:53Z', 'updated_at': '2025-11-01T01:20:53Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483029347', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029347'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483029347'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'ce41dc7131f27c9e6d478c6d238049efec0a6090', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029347/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-11-01T01:20:31.770084 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14037, 'pr_title': 'Add "Rush Frame Presentation" and "Smooth Early Presentation" settings.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14037#pullrequestreview-3406696906', 'comments': [{'id': 2483029209, 'node_id': 'PRRC_kwDOALCn2M6UAATZ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029209', 'pull_request_review_id': 3406696906, 'diff_hunk': '@@ -903,6 +910,34 @@ void Presenter::Present(std::optional<TimePoint> presentation_time)\n g_gfx->EndUtilityDrawing();\n }\n \n+TimePoint Presenter::GetUpdatedPresentationTime(TimePoint intended_presentation_time)\n+{\n+ const auto now = Clock::now();\n+ const auto arrival_offset = std::min(now - intended_presentation_time, DT{});\n+\n+ if (!Config::Get(Config::MAIN_SMOOTH_EARLY_PRESENTATION))\n+ {\n+ m_presentation_time_offset = arrival_offset;\n+\n+ // When SmoothEarlyPresentation is off and ImmediateXFB or RushFramePresentation are on,\n+ // present as soon as possible as the goal is to achieve low input latency.\n+ if (g_ActiveConfig.bImmediateXFB || Config::Get(Config::MAIN_RUSH_FRAME_PRESENTATION))\n+ return now;\n+\n+ return intended_presentation_time;\n+ }\n+\n+ // Adjust slowly backward in time but quickly forward in time.\n+ // This keeps the pacing moderately smooth even if games produce regular sporadic bumps.\n+ // This was tuned to handle the terrible pacing in Brawl with "Immediate XFB".', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 125, 'original_position': 106, 'commit_id': 'c8a73999fb843ecba3e43d1d64e08ef32955a84f', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "It might be helpful to know how this was tuned?\r\n\r\nI'm not really great at this but one thing I notice is that as we get closer to arrival offset, the `adjustment_divisor` will have a bigger or smaller impact on increment of the `m_presentation_time_offset` depending on how close we are. Wondering if a different algorithm would be better?", 'created_at': '2025-11-01T01:20:29Z', 'updated_at': '2025-11-01T01:20:29Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483029209', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029209'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14037#discussion_r2483029209'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14037'}}, 'original_commit_id': 'ce41dc7131f27c9e6d478c6d238049efec0a6090', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483029209/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-10-31T23:14:36.424165 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'submitted', 'pr_id': 14059, 'pr_title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059#pullrequestreview-3406534545', 'comments': [], 'type': 'gh_pull_request_review'}
2025-10-31T19:54:20.532501 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'submitted', 'pr_id': 13626, 'pr_title': 'Common: Make HookableEvent use non-static data.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13626#pullrequestreview-3405927967', 'comments': [], 'type': 'gh_pull_request_review'}
2025-10-31T18:36:27.005585 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14042, 'pr_title': 'VideoCommon: move global variables out of BPFunctions', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14042#pullrequestreview-3405625465', 'comments': [], 'type': 'gh_pull_request_review'}
2025-10-31T18:00:48.755302 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14042, 'pr_title': 'VideoCommon: move global variables out of BPFunctions', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14042#pullrequestreview-3405408035', 'comments': [{'id': 2482245454, 'node_id': 'PRRC_kwDOALCn2M6T9A9O', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482245454', 'pull_request_review_id': 3405408035, 'diff_hunk': '@@ -113,7 +114,9 @@ void Init()\n \n void ScissorChanged()\n {\n- scissors = std::move(BPFunctions::ComputeScissorRects().m_result);\n+ scissors = std::move(BPFunctions::ComputeScissorRects(bpmem.scissorTL, bpmem.scissorBR,', 'path': 'Source/Core/VideoBackends/Software/Rasterizer.cpp', 'position': 13, 'original_position': 13, 'commit_id': '781011c18a40307c02dd212a4ab4b2aa31c1f512', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I know it was already there, but this `std::move` is unnecessary here, the member of that rvalue is also already an rvalue.', 'created_at': '2025-10-31T17:49:33Z', 'updated_at': '2025-10-31T18:00:46Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2482245454', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482245454'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2482245454'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042'}}, 'original_commit_id': '781011c18a40307c02dd212a4ab4b2aa31c1f512', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482245454/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2482260541, 'node_id': 'PRRC_kwDOALCn2M6T9Eo9', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482260541', 'pull_request_review_id': 3405408035, 'diff_hunk': '@@ -146,21 +149,28 @@ struct ScissorResult\n }\n \n private:\n- ScissorResult(const BPMemory& bpmem, std::pair<float, float> viewport_x,\n+ ScissorResult(ScissorPos scissor_top_left, ScissorPos scissor_bottom_right,\n+ ScissorOffset scissor_offset, std::pair<float, float> viewport_x,\n std::pair<float, float> viewport_y);\n \n int GetViewportArea(const ScissorRect& rect) const;\n bool IsWorse(const ScissorRect& lhs, const ScissorRect& rhs) const;\n };\n \n-ScissorResult ComputeScissorRects();\n+ScissorResult ComputeScissorRects(ScissorPos scissor_top_left, ScissorPos scissor_bottom_right,\n+ ScissorOffset scissor_offset, const Viewport& viewport);\n \n void FlushPipeline();\n void SetGenerationMode();\n-void SetScissorAndViewport();\n+void SetScissorAndViewport(FramebufferManager* frame_buffer_manager, ScissorPos scissor_top_left,\n+ ScissorPos scissor_bottom_right, ScissorOffset scissor_offset,\n+ Viewport viewport);\n void SetDepthMode();\n void SetBlendMode();\n-void ClearScreen(const MathUtil::Rectangle<int>& rc);\n-void OnPixelFormatChange();\n+bool ClearScreen(FramebufferManager* frame_buffer_manager, const MathUtil::Rectangle<int>& rc,', 'path': 'Source/Core/VideoCommon/BPFunctions.h', 'position': 48, 'original_position': 48, 'commit_id': '781011c18a40307c02dd212a4ab4b2aa31c1f512', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "The meaning of the `bool` return value isn't immediately obvious. It could use a one line comment.", 'created_at': '2025-10-31T17:53:35Z', 'updated_at': '2025-10-31T18:00:46Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2482260541', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482260541'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2482260541'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042'}}, 'original_commit_id': '781011c18a40307c02dd212a4ab4b2aa31c1f512', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482260541/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-10-31T17:09:34.950927 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14059, 'pr_title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14059#pullrequestreview-3405270114', 'comments': [{'id': 2482143147, 'node_id': 'PRRC_kwDOALCn2M6T8n-r', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482143147', 'pull_request_review_id': 3405270114, 'diff_hunk': '@@ -374,56 +374,52 @@ void HostFileSystem::DoState(PointerWrap& p)\n handle.host_file.reset();\n \n // The format for the next part of the save state is follows:\n- // 1. bool Movie::WasMovieActiveWhenStateSaved() &&\n- // WiiRoot::WasWiiRootTemporaryDirectoryWhenStateSaved()\n+ // 1. bool is_nand_in_state (movie active && temporary wii root)\n // 2. Contents of the "/tmp" directory recursively.\n- // 3. u32 size_of_nand_folder_saved_below (or 0, if the root\n- // of the NAND folder is not savestated below).\n+ // 3. u32 size_of_nand (or 0, if not is_nand_in_state).\n // 4. Contents of the "/" directory recursively (or nothing, if the\n // root of the NAND folder is not save stated).\n \n // The "/" directory is only saved when a savestate is made during a movie recording\n // and when the directory root is temporary (i.e. WiiSession).\n // If a save state is made during a movie recording and is loaded when no movie is active,\n // then a call to p.DoExternal() will be used to skip over reading the contents of the "/"\n- // directory (it skips over the number of bytes specified by size_of_nand_folder_saved)\n+ // directory (it skips over the number of bytes specified by size_of_nand)\n \n auto& movie = Core::System::GetInstance().GetMovie();\n- bool original_save_state_made_during_movie_recording =\n- movie.IsMovieActive() && Core::WiiRootIsTemporary();\n- p.Do(original_save_state_made_during_movie_recording);\n \n- u32 temp_val = 0;\n+ const bool is_nand_wanted = movie.IsMovieActive() && Core::WiiRootIsTemporary();\n+\n+ bool is_nand_in_state = is_nand_wanted;\n+ p.Do(is_nand_in_state);\n \n if (!p.IsReadMode())\n {\n DoStateWriteOrMeasure(p, "/tmp");\n- u8* previous_position = p.ReserveU32();\n- if (original_save_state_made_during_movie_recording)\n+ u8* const nand_size_ptr = p.ReserveU32();\n+ if (is_nand_in_state)\n {\n DoStateWriteOrMeasure(p, "/");\n if (p.IsWriteMode())\n {\n- u32 size_of_nand = p.GetOffsetFromPreviousPosition(previous_position) - sizeof(u32);\n- memcpy(previous_position, &size_of_nand, sizeof(u32));\n+ const u32 size_of_nand = p.GetOffsetFromPreviousPosition(nand_size_ptr) - sizeof(u32);\n+ memcpy(nand_size_ptr, &size_of_nand, sizeof(size_of_nand));\n }\n }\n }\n else // case where we\'re in read mode.\n {\n+ u32 size_of_nand = 0;\n DoStateRead(p, "/tmp");\n- if (!movie.IsMovieActive() || !original_save_state_made_during_movie_recording ||', 'path': 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'position': 54, 'original_position': 54, 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I know little about this stuff but you are ignoring the current state after the read? I\'d assume that is important?\r\n\r\nWhat if you put the check in a lambda:\r\n\r\n```\r\nconst auto check_nand_wanted = [&]{ return movie.IsMovieActive() && Core::WiiRootIsTemporary(); };\r\nconst bool was_nand_wnated = check_nand_wanted();\r\n\r\n...\r\nelse // case where we\'re in read mode.\r\n{\r\n DoStateRead(p, "/tmp");\r\n const bool is_nand_wanted = check_nand_wanted();\r\n\r\n // Did nand state change?\r\n if (!is_nand_wanted || !was_nand_wanted || was_nand_wanted != is_nand_wanted)\r\n {\r\n (void)p.DoExternal(temp_val);\r\n }\r\n ...\r\n```', 'created_at': '2025-10-31T17:09:32Z', 'updated_at': '2025-10-31T17:09:33Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2482143147', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482143147'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2482143147'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'original_commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2482143147/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-10-31T09:16:28.157456 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'DrHeadhunter', 'action': 'submitted', 'pr_id': 14041, 'pr_title': 'VideoCommon: Clean up and eliminate the mutex in AsyncRequests.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14041#pullrequestreview-3403222275', 'comments': [], 'type': 'gh_pull_request_review'}
2025-10-31T03:51:50.131059 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14042, 'pr_title': 'VideoCommon: move global variables out of BPFunctions', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14042#pullrequestreview-3402500775', 'comments': [{'id': 2480096977, 'node_id': 'PRRC_kwDOALCn2M6T00bR', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2480096977', 'pull_request_review_id': 3402500775, 'diff_hunk': '@@ -146,21 +149,29 @@ struct ScissorResult\n }\n \n private:\n- ScissorResult(const BPMemory& bpmem, std::pair<float, float> viewport_x,\n+ ScissorResult(const ScissorPos& scissor_top_left, const ScissorPos& scissor_bottom_right,\n+ const ScissorOffset scissor_offset, std::pair<float, float> viewport_x,\n std::pair<float, float> viewport_y);\n \n int GetViewportArea(const ScissorRect& rect) const;\n bool IsWorse(const ScissorRect& lhs, const ScissorRect& rhs) const;\n };\n \n-ScissorResult ComputeScissorRects();\n+ScissorResult ComputeScissorRects(const ScissorPos& scissor_top_left,\n+ const ScissorPos& scissor_top_right,', 'path': 'Source/Core/VideoCommon/BPFunctions.h', 'position': 36, 'original_position': 36, 'commit_id': '23c4674e8b86c656ecb92c925dc81ae1397f21d1', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Whoops, swear I had fixed that. Maybe got missed when I was moving code over. Thanks!', 'created_at': '2025-10-31T03:51:47Z', 'updated_at': '2025-10-31T03:51:48Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2480096977', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2480096977'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14042#discussion_r2480096977'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14042'}}, 'original_commit_id': '23c4674e8b86c656ecb92c925dc81ae1397f21d1', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2480096977/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2479963382}], 'type': 'gh_pull_request_review'}
2025-10-31T03:24:26.413354 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'pr_id': 14057, 'pr_title': 'VideoCommon: Fix render to texture in wrong layout', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14057#pullrequestreview-3402395837', 'comments': [], 'type': 'gh_pull_request_review'}
Recent 'gh_push' events
2025-11-01T11:22:47.158520 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '35c5b51b6236070d9829c6cb41eb023e93d246ae', 'after_sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/GridOptionDialogFragment.kt', 'Source/Android/app/src/main/res/values/bools.xml'], 'removed': ['Source/Android/app/src/main/res/values-notouch/bools.xml'], 'message': 'Android: Expand bottom sheets on devices with touch too\n\nIn a few places in Dolphin, we\'re using BottomSheetDialogFragments.\nThese unhelpfully tend to start out in a "collapsed" state when in\nlandscape mode (presumably depending on factors like screen size). The\nuser then has to manually expand them before they can meaningfully\ninteract with them.\n\nWe\'ve been automatically setting BottomSheetDialogFragments to the\nexpanded state if the device Dolphin is running on doesn\'t support\ntouch, since with d-pad navigation it\'s impossible to expand these\nsheets. But I think we should set them to expanded on devices that\nsupport touch too. I haven\'t encountered a single case where you can do\nanything useful with any of Dolphin\'s BottomSheetDialogFragments while\nthey\'re collapsed, so the user always has to expand sheets manually if\nthey start out collapsed. And just because a device supports touch\ndoesn\'t necessarily mean you\'re interacting with it through the touch\nscreen right now - you could be using a gamepad, for instance.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1b8a54024c6be2453345d57064ae73647e7a1e44', 'hash': '1b8a54024c6be2453345d57064ae73647e7a1e44'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/input/ui/ProfileDialog.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/AboutDialogFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/GridOptionDialogFragment.kt', 'Source/Android/app/src/main/res/values/bools.xml'], 'removed': ['Source/Android/app/src/main/res/values-notouch/bools.xml'], 'message': 'Merge pull request #13655 from JosJuice/android-always-expand-sheets\n\nAndroid: Expand bottom sheets on devices with touch too', 'url': 'https://github.com/dolphin-emu/dolphin/commit/249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'hash': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-11-01T11:22:37.098312 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'after_sha': '35c5b51b6236070d9829c6cb41eb023e93d246ae', 'commits': [{'author': {'name': 'Simonx22', 'email': 'simon@oatmealdome.me', 'username': 'Simonx22'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt', 'Source/Android/app/src/main/res/values/strings.xml'], 'removed': [], 'message': 'Android: Save settings instantly after edits', 'url': 'https://github.com/dolphin-emu/dolphin/commit/82c86221d602fda2f09a26fdcc77d250fbe5db7e', 'hash': '82c86221d602fda2f09a26fdcc77d250fbe5db7e'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/Settings.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsActivityPresenter.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/Analytics.kt', 'Source/Android/app/src/main/res/values/strings.xml'], 'removed': [], 'message': 'Merge pull request #14048 from Simonx22/android-instant-settings-saving\n\nAndroid: Save settings instantly after edits', 'url': 'https://github.com/dolphin-emu/dolphin/commit/35c5b51b6236070d9829c6cb41eb023e93d246ae', 'hash': '35c5b51b6236070d9829c6cb41eb023e93d246ae'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-11-01T09:06:43.720335 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '91fd53a98ce7adcce2c724f4a06fe7df1bd0367a', 'after_sha': 'da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'commits': [{'author': {'name': 'TellowKrinkle', 'email': 'tellowkrinkle@gmail.com', 'username': 'TellowKrinkle'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/FramebufferManager.cpp', 'Source/Core/VideoCommon/TextureCacheBase.cpp'], 'removed': [], 'message': 'VideoCommon: Fix render to texture in wrong layout', 'url': 'https://github.com/dolphin-emu/dolphin/commit/21ac489d575662091be107fab0d807392b1e9fdf', 'hash': '21ac489d575662091be107fab0d807392b1e9fdf'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoCommon/FramebufferManager.cpp', 'Source/Core/VideoCommon/TextureCacheBase.cpp'], 'removed': [], 'message': 'Merge pull request #14057 from TellowKrinkle/VkRenderWrongLayout\n\nVideoCommon: Fix render to texture in wrong layout', 'url': 'https://github.com/dolphin-emu/dolphin/commit/da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'hash': 'da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-11-01T09:06:10.642636 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '828e72d604217d19e4b6875b7cac5d2e049ecedd', 'after_sha': '91fd53a98ce7adcce2c724f4a06fe7df1bd0367a', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPU: Convert static variable to class member\n\nMake s_have_fake_cpu_thread a class member instead. In addition to\ngetting rid of a bit of static state, this simplifies refactoring in an\nupcoming commit.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bebeba29c30e651156ba2ffe7717bd8ee4573be3', 'hash': 'bebeba29c30e651156ba2ffe7717bd8ee4573be3'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': "CPU: Extract RestoreStateAndUnlock from PauseAndLock\n\nReplace call of CPUManager::PauseAndLock(do_lock=false) with new\nfunction RestoreStateAndUnlock for clarity.\n\nCallers of Core::PauseAndLock ignore the return value when do_lock is\nfalse, so in that case was_unpaused in Core::PauseAndLock doesn't need\nto be set and so RestoreStateAndUnlock doesn't need to return anything.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/691743fbc4cb119ce28b4494e084218ca0cc9bb2', 'hash': '691743fbc4cb119ce28b4494e084218ca0cc9bb2'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPU: Remove default arguments for PauseAndLock\n\nFor clarity in the next commit.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1a6e2856857c6bc03c162113e9f58cf0ba34caec', 'hash': '1a6e2856857c6bc03c162113e9f58cf0ba34caec'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPUManager: Remove unnecessary PauseAndLock parameters\n\nCPUManager::PauseAndLock is now only called with do_lock=true, and\nunpause_on_unlock only ever was used when do_lock is false (which is now\nhandled in RestoreStateAndUnlock instead), so both parameters are\nunnecessary.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/48d48fe1af09e437f574a5fb3d6a5b62a146e08a', 'hash': '48d48fe1af09e437f574a5fb3d6a5b62a146e08a'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPUManager: Remove redundant parameter from PauseAndLock\n\nPauseAndLock was only called with control_adjacent=false. Remove the\nparameter and the function call that was only made when it was true.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8d0dbb0ef64ffb76b64bc94166399dc2dad1af2c', 'hash': '8d0dbb0ef64ffb76b64bc94166399dc2dad1af2c'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPUManager: Remove redundant parameter from RestoreStateAndUnlock\n\nRestoreStateAndUnlock was only called with control_adjacent=true. Remove\nthe parameter and unconditionally call the function that was gated\nbehind it being true.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4e64d8e94f8715885d243afe4dafcda0a56a05be', 'hash': '4e64d8e94f8715885d243afe4dafcda0a56a05be'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp'], 'removed': [], 'message': "Core: Extract RestoreStateAndUnlock from PauseAndLock\n\nReplace calls of PauseAndLock(do_lock=false) with new function\nRestoreStateAndUnlock for clarity.\n\nCallers of PauseAndLock ignored the return value when do_lock is\nfalse, so RestoreStateAndUnlock doesn't need to return anything.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/c9c8461d366f383e1e121996422bf001deae57c1', 'hash': 'c9c8461d366f383e1e121996422bf001deae57c1'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp'], 'removed': [], 'message': 'Core: Remove unnecessary PauseAndLock parameters\n\nPauseAndLock is now only called with do_lock=true, and unpause_on_unlock\nonly ever was used when do_lock is false (which is now handled in\nRestoreStateAndUnlock instead), so both parameters are unnecessary.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2d888ea4d3c8f7957f15ad7428555cc03334acb3', 'hash': '2d888ea4d3c8f7957f15ad7428555cc03334acb3'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp'], 'removed': [], 'message': "Core: Remove pointless call to FifoManager::PauseAndLock\n\nFifoManager::PauseAndLock doesn't do anything when doLock and\nunpauseOnUnlock are both false, so remove the call.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/f628a979c435723eaec40b7081634a67b575fcb8', 'hash': 'f628a979c435723eaec40b7081634a67b575fcb8'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Host.cpp', 'Source/Core/VideoCommon/Fifo.cpp', 'Source/Core/VideoCommon/Fifo.h', 'Source/Core/VideoCommon/VideoConfig.cpp'], 'removed': [], 'message': 'FifoManager: Extract RestoreState from PauseAndLock\n\nReplace calls of FifoManager::PauseAndLock(do_lock=false) with new\nfunction RestoreState for clarity.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f497eb519e672a0dffbcd029dc937425af754ba0', 'hash': 'f497eb519e672a0dffbcd029dc937425af754ba0'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/DolphinQt/Host.cpp', 'Source/Core/VideoCommon/Fifo.cpp', 'Source/Core/VideoCommon/Fifo.h', 'Source/Core/VideoCommon/VideoConfig.cpp'], 'removed': [], 'message': 'FifoManager: Remove redundant PauseAndLock parameters\n\nPauseAndLock was only called with do_lock=true, and the function only\nused unpauseOnUnlock when do_lock was false.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/933071dd573c202de8c3c722e042d37d6bfcc2d1', 'hash': '933071dd573c202de8c3c722e042d37d6bfcc2d1'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/DSPEmulator.h', 'Source/Core/Core/HW/DSPHLE/DSPHLE.cpp', 'Source/Core/Core/HW/DSPHLE/DSPHLE.h', 'Source/Core/Core/HW/DSPLLE/DSPLLE.cpp', 'Source/Core/Core/HW/DSPLLE/DSPLLE.h'], 'removed': [], 'message': 'DSPEmulator: Extract UnpauseAndUnlock from PauseAndLock\n\nReplace call to PauseAndLock(do_lock=false) with new function\nUnpauseAndUnlock.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d5f079d78b8a894d03dee0590bfa691962f033f2', 'hash': 'd5f079d78b8a894d03dee0590bfa691962f033f2'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/DSPEmulator.h', 'Source/Core/Core/HW/DSPHLE/DSPHLE.cpp', 'Source/Core/Core/HW/DSPHLE/DSPHLE.h', 'Source/Core/Core/HW/DSPLLE/DSPLLE.cpp', 'Source/Core/Core/HW/DSPLLE/DSPLLE.h'], 'removed': [], 'message': 'DSPEmulator: Remove redundant parameter and code\n\nPauseAndLock is only called with do_lock=true, so remove the parameter\nand modify PauseAndLock accordingly.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c47db6dba7f9b0625dd18aacbbf234cc0c0a98ba', 'hash': 'c47db6dba7f9b0625dd18aacbbf234cc0c0a98ba'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/CPU.h'], 'removed': [], 'message': 'CPU: Update PauseAndLock comment', 'url': 'https://github.com/dolphin-emu/dolphin/commit/70d8bc6fd722c9d2fb13e20cc3de41b97a25a650', 'hash': '70d8bc6fd722c9d2fb13e20cc3de41b97a25a650'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/DSPEmulator.h', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/Core/HW/CPU.h', 'Source/Core/Core/HW/DSPHLE/DSPHLE.cpp', 'Source/Core/Core/HW/DSPHLE/DSPHLE.h', 'Source/Core/Core/HW/DSPLLE/DSPLLE.cpp', 'Source/Core/Core/HW/DSPLLE/DSPLLE.h', 'Source/Core/DolphinQt/Host.cpp', 'Source/Core/VideoCommon/Fifo.cpp', 'Source/Core/VideoCommon/Fifo.h', 'Source/Core/VideoCommon/VideoConfig.cpp'], 'removed': [], 'message': 'Merge pull request #14035 from Dentomologist/pauseandlock_refactoring\n\nPauseAndLock Refactoring', 'url': 'https://github.com/dolphin-emu/dolphin/commit/91fd53a98ce7adcce2c724f4a06fe7df1bd0367a', 'hash': '91fd53a98ce7adcce2c724f4a06fe7df1bd0367a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-11-01T09:05:13.429992 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '998a3577cea04abaa1a41963bf58785bbcb39618', 'after_sha': '828e72d604217d19e4b6875b7cac5d2e049ecedd', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/Common/CMakeLists.txt', 'Source/Core/Common/JitRegister.cpp'], 'removed': ['CMake/FindOProfile.cmake'], 'message': "JitRegister: Remove OProfile profiler\n\nOProfile is not used at all these days, most major distributions do not ship it anymore (Debian, Fedora, and Alpine to name the few I've checked) and following a discussion on Discord, nobody is apparently using it, most devs not even being aware of it. This removes an optional dependency from Dolphin.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/713dfb41dfa240a847cd9d07996bd25a38259d0c', 'hash': '713dfb41dfa240a847cd9d07996bd25a38259d0c'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/Common/CMakeLists.txt', 'Source/Core/Common/JitRegister.cpp'], 'removed': ['CMake/FindOProfile.cmake'], 'message': 'Merge pull request #14034 from JoshuaVandaele/byeprofile\n\nJitRegister: Remove OProfile profiler', 'url': 'https://github.com/dolphin-emu/dolphin/commit/828e72d604217d19e4b6875b7cac5d2e049ecedd', 'hash': '828e72d604217d19e4b6875b7cac5d2e049ecedd'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-11-01T09:01:50.328168 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'after_sha': '998a3577cea04abaa1a41963bf58785bbcb39618', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/GBACore.cpp', 'Source/Core/Core/HW/GBACore.h', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.cpp', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.h', 'Source/Core/DolphinQt/GBAHost.cpp', 'Source/Core/DolphinQt/GBAHost.h', 'Source/Core/DolphinQt/GBAWidget.cpp', 'Source/Core/DolphinQt/GBAWidget.h', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp', 'Source/Core/DolphinQt/Settings/GameCubePane.h'], 'removed': [], 'message': 'libmgba: Fix build when disabled', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2836dd2b5ec95492076e3af41a6b1634f87ee5e4', 'hash': '2836dd2b5ec95492076e3af41a6b1634f87ee5e4'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/GBACore.cpp', 'Source/Core/Core/HW/GBACore.h', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.cpp', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.h', 'Source/Core/DolphinQt/GBAHost.cpp', 'Source/Core/DolphinQt/GBAHost.h', 'Source/Core/DolphinQt/GBAWidget.cpp', 'Source/Core/DolphinQt/GBAWidget.h', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp', 'Source/Core/DolphinQt/Settings/GameCubePane.h'], 'removed': [], 'message': 'Merge pull request #14054 from Dentomologist/libmgba_fix_build_when_disabled\n\nlibmgba: Fix build when disabled', 'url': 'https://github.com/dolphin-emu/dolphin/commit/998a3577cea04abaa1a41963bf58785bbcb39618', 'hash': '998a3577cea04abaa1a41963bf58785bbcb39618'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-31T01:47:44.823093 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'd065f1ae1228203b354c35ca853f36fa45a59c43', 'after_sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/Assets/MaterialAsset.cpp'], 'removed': [], 'message': 'MaterialAsset: Fix shadowed field', 'url': 'https://github.com/dolphin-emu/dolphin/commit/280d0e7f8ddbd7a67d0771ed2b5d9e22f205cd4c', 'hash': '280d0e7f8ddbd7a67d0771ed2b5d9e22f205cd4c'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp'], 'removed': [], 'message': 'CustomPipeline.cpp: Fix unused-function warning\n\nThis whole file is apparently going away soon.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/33152740d0683865504a3d7882470522ef22ad3f', 'hash': '33152740d0683865504a3d7882470522ef22ad3f'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/x64Emitter.cpp'], 'removed': [], 'message': 'x64Emitter: Fix missing-declarations warning', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2383e68fd804e5f7050d658df37e2f18110d1719', 'hash': '2383e68fd804e5f7050d658df37e2f18110d1719'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/GameConfigEdit.cpp'], 'removed': [], 'message': 'GameConfigEdit: Fix unused-result warning', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b66b2f71afc020a4ada0017a1de91d0379a1402f', 'hash': 'b66b2f71afc020a4ada0017a1de91d0379a1402f'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/OnScreenDisplayPane.cpp'], 'removed': [], 'message': 'OnScreenDisplayPane: Fix unused-variable warning\n\nThis is used in AdvancedPane and was seemingly accidentally copied over', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5c12677705f06208970b1589c47c5d6c2167ac82', 'hash': '5c12677705f06208970b1589c47c5d6c2167ac82'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/x64Emitter.cpp', 'Source/Core/DolphinQt/Config/GameConfigEdit.cpp', 'Source/Core/DolphinQt/Settings/OnScreenDisplayPane.cpp', 'Source/Core/VideoCommon/Assets/MaterialAsset.cpp', 'Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp'], 'removed': [], 'message': 'Merge pull request #14045 from JoshuaVandaele/warn-fix\n\nFix various warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'hash': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-30T23:26:24.956992 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'ccc334cdd023ed774a89b8a207cc29e0beaf88fd', 'after_sha': 'd065f1ae1228203b354c35ca853f36fa45a59c43', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/AsyncRequests.cpp', 'Source/Core/VideoCommon/AsyncRequests.h'], 'removed': [], 'message': 'VideoCommon: Clean up and eliminate the mutex in AsyncRequests using WaitableSPSCQueue.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/09a125fec4ba077006bc0add7a8bfcdc0a572bc9', 'hash': '09a125fec4ba077006bc0add7a8bfcdc0a572bc9'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoCommon/AsyncRequests.cpp', 'Source/Core/VideoCommon/AsyncRequests.h'], 'removed': [], 'message': 'Merge pull request #14041 from jordan-woyak/lockless-async-requests\n\nVideoCommon: Clean up and eliminate the mutex in AsyncRequests.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d065f1ae1228203b354c35ca853f36fa45a59c43', 'hash': 'd065f1ae1228203b354c35ca853f36fa45a59c43'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-30T23:22:03.480750 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '478fb20bc2f3376b974b170f8ded590b34b7fb99', 'after_sha': 'ccc334cdd023ed774a89b8a207cc29e0beaf88fd', 'commits': [{'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/Network/IP/Top.cpp'], 'removed': [], 'message': 'IP/Top: Make InetAToN async', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ba8f4ca6a21d9e1550d231ba67d4bf22396a4c8a', 'hash': 'ba8f4ca6a21d9e1550d231ba67d4bf22396a4c8a'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/Network/IP/Top.cpp'], 'removed': [], 'message': 'Merge pull request #14055 from sepalani/async-inetaton\n\nIP/Top: Make InetAToN async', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ccc334cdd023ed774a89b8a207cc29e0beaf88fd', 'hash': 'ccc334cdd023ed774a89b8a207cc29e0beaf88fd'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-30T06:44:14.543798 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '91320563e0afd020a4a84a732c0dcb4319f60e22', 'after_sha': '478fb20bc2f3376b974b170f8ded590b34b7fb99', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/jni/Input/CoreDevice.cpp'], 'removed': [], 'message': 'Android: Fix unused value warning\n\nRemove "env, " from "return env, GetControlPointer..." since the left\nside of a comma operator has no effect.\n\nThis was presumably a copy/paste error from the function above it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/570ec7c322d9fb54b24d2becc7007a7420170596', 'hash': '570ec7c322d9fb54b24d2becc7007a7420170596'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/jni/Input/CoreDevice.cpp'], 'removed': [], 'message': 'Merge pull request #14050 from Dentomologist/android_input_fix_unused_value_warning\n\nAndroid: Fix unused value warning', 'url': 'https://github.com/dolphin-emu/dolphin/commit/478fb20bc2f3376b974b170f8ded590b34b7fb99', 'hash': '478fb20bc2f3376b974b170f8ded590b34b7fb99'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-30T06:42:49.527148 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'after_sha': '91320563e0afd020a4a84a732c0dcb4319f60e22', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'AchievementManager: Fix unused private field warnings\n\nRemove several unused members from AchievementManager.\n\nThese became unused in https://github.com/dolphin-emu/dolphin/pull/12639\nwhich switched from the rcheevos rc_runtime interface to rc_client.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/32a8128b53fb337e90975bce90568eb52f7a1791', 'hash': '32a8128b53fb337e90975bce90568eb52f7a1791'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'Merge pull request #14051 from Dentomologist/achievementmanager_fix_unused_private_field_warnings\n\nAchievementManager: Fix unused private field warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/91320563e0afd020a4a84a732c0dcb4319f60e22', 'hash': '91320563e0afd020a4a84a732c0dcb4319f60e22'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-29T19:10:59.619334 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'b920182c97703b3df0fcb44cebdd6d1cc5485fcc', 'after_sha': 'f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'UICommon.cpp: Revert changes from #13866', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0b7d581af59fb66fe97c901601a6ed05331b51d6', 'hash': '0b7d581af59fb66fe97c901601a6ed05331b51d6'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'Merge pull request #14044 from JoshuaVandaele/im-sorry-ibel\n\nUICommon.cpp: Revert changes from #13866', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'hash': 'f2e6cb4c29c510c6737f5cc158a055d6f3674536'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T23:16:19.194634 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '1ed86e1b162adda9382f8ccaa9da2c029eb56de7', 'after_sha': 'b920182c97703b3df0fcb44cebdd6d1cc5485fcc', 'commits': [{'author': {'name': 'cristian64', 'email': 'cristian64@gmail.com', 'username': 'cristian64'}, 'distinct': False, 'added': ['Externals/cpp-ipc/cpp-ipc'], 'modified': ['.gitmodules', 'Externals/licenses.md'], 'removed': [], 'message': 'Core/HW: Add cpp-ipc submodule.\n\nThe last official release is, at the time of writing, almost two years\nold. The latest development snapshot (updated ~2 months ago) will be\nused.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/92a201893444790d1ad1125cbb8ea92d18b6064e', 'hash': '92a201893444790d1ad1125cbb8ea92d18b6064e'}, {'author': {'name': 'cristian64', 'email': 'cristian64@gmail.com', 'username': 'cristian64'}, 'distinct': False, 'added': ['Externals/cpp-ipc/CMakeLists.txt'], 'modified': ['CMakeLists.txt'], 'removed': [], 'message': 'Core/HW: Add cpp-ipc subdirectory in main CMake file.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a74e736d29aab666d20ba5771fdfdfa9686c27b6', 'hash': 'a74e736d29aab666d20ba5771fdfdfa9686c27b6'}, {'author': {'name': 'cristian64', 'email': 'cristian64@gmail.com', 'username': 'cristian64'}, 'distinct': False, 'added': ['Externals/cpp-ipc/cpp-ipc.vcxproj', 'Externals/cpp-ipc/exports.props'], 'modified': ['Source/dolphin-emu.sln'], 'removed': [], 'message': 'Core/HW: Add Visual Studio project files for cpp-ipc library.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4677a92b1361385802414ec8d9a0559256ab6d92', 'hash': '4677a92b1361385802414ec8d9a0559256ab6d92'}, {'author': {'name': 'cristian64', 'email': 'cristian64@gmail.com', 'username': 'cristian64'}, 'distinct': False, 'added': ['Source/Core/Core/HW/EXI/BBA/IPC.cpp'], 'modified': ['Source/Core/Core/CMakeLists.txt', 'Source/Core/Core/HW/EXI/EXI_Device.cpp', 'Source/Core/Core/HW/EXI/EXI_Device.h', 'Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h', 'Source/Core/DolphinLib.props', 'Source/Core/DolphinLib.vcxproj', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp'], 'removed': [], 'message': 'Core/HW: Add Broadband Adapter (IPC).\n\nThis is a hassle-free BBA option intended for local play with multiple\nDolphin instances running *in the same system*. After selecting\n**Broadband Adapter (IPC)** in the **SP1** slot in the GameCube section\nin the settings, games that support LAN play will be able to discover\neach other, without requiring third-party software or relatively complex\nTAP setups.\n\nThe implementation is based on cpp-ipc, a high-performance inter-process\ncommunication library that uses shared memory as transport layer.\n\nSupported platforms are:\n\n- [x] Linux\n- [x] Windows\n- [ ] macOS (cpp-ipc does not support this platform)\n- [ ] FreeBSD (cpp-ipc does not support this platform)\n- [ ] Android (cpp-ipc needs some adjustments; while it could work,\n launching two Dolphin instances within the same Android system may be\n both challenging and impractical)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f5012ef457574d1b4841dc351bd2bc374d504583', 'hash': 'f5012ef457574d1b4841dc351bd2bc374d504583'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': ['Externals/cpp-ipc/CMakeLists.txt', 'Externals/cpp-ipc/cpp-ipc', 'Externals/cpp-ipc/cpp-ipc.vcxproj', 'Externals/cpp-ipc/exports.props', 'Source/Core/Core/HW/EXI/BBA/IPC.cpp'], 'modified': ['.gitmodules', 'CMakeLists.txt', 'Externals/licenses.md', 'Source/Core/Core/CMakeLists.txt', 'Source/Core/Core/HW/EXI/EXI_Device.cpp', 'Source/Core/Core/HW/EXI/EXI_Device.h', 'Source/Core/Core/HW/EXI/EXI_DeviceEthernet.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceEthernet.h', 'Source/Core/DolphinLib.props', 'Source/Core/DolphinLib.vcxproj', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp', 'Source/dolphin-emu.sln'], 'removed': [], 'message': 'Merge pull request #13870 from cristian64/broadband_adapter_ipc\n\nCore/HW: Add Broadband Adapter (IPC).', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b920182c97703b3df0fcb44cebdd6d1cc5485fcc', 'hash': 'b920182c97703b3df0fcb44cebdd6d1cc5485fcc'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T22:56:05.485210 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6', 'after_sha': '1ed86e1b162adda9382f8ccaa9da2c029eb56de7', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': ['Source/Core/DolphinQt/QtUtils/AnalyticsPrompt.cpp', 'Source/Core/DolphinQt/QtUtils/AnalyticsPrompt.h'], 'modified': ['Source/Core/Common/FileUtil.cpp', 'Source/Core/Common/FileUtil.h', 'Source/Core/Core/ConfigManager.cpp', 'Source/Core/Core/ConfigManager.h', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/DolphinQt/DolphinQt.vcxproj', 'Source/Core/DolphinQt/Main.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'AdvancedPane: Add a button to restore default settings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/33fd06d7f334f904d9b9742f7d1fb6f51f3b2a83', 'hash': '33fd06d7f334f904d9b9742f7d1fb6f51f3b2a83'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/FreeLookWidget.cpp', 'Source/Core/DolphinQt/Config/FreeLookWidget.h'], 'removed': [], 'message': 'FreeLookWidget: Use ConfigControls where applicable', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1e227bd736b4343f7fac807ac3540d4824e85a8b', 'hash': '1e227bd736b4343f7fac807ac3540d4824e85a8b'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': ['Source/Core/DolphinQt/Config/ConfigControls/ConfigText.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigText.h', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigUserPath.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigUserPath.h'], 'modified': ['Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/DolphinQt/DolphinQt.vcxproj', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp', 'Source/Core/DolphinQt/Settings/GameCubePane.h', 'Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'GameCubePane: Use ConfigControls where applicable', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b6766e1ca0146de939e6645b743634bda717b719', 'hash': 'b6766e1ca0146de939e6645b743634bda717b719'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/ConfigControls/ConfigChoice.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigChoice.h', 'Source/Core/DolphinQt/Settings.cpp', 'Source/Core/DolphinQt/Settings.h', 'Source/Core/DolphinQt/Settings/WiiPane.cpp', 'Source/Core/DolphinQt/Settings/WiiPane.h', 'Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'WiiPane: Use ConfigControls where applicable', 'url': 'https://github.com/dolphin-emu/dolphin/commit/02d84ddc7808afa64fe467af913bbf5f89681070', 'hash': '02d84ddc7808afa64fe467af913bbf5f89681070'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/PathPane.cpp', 'Source/Core/DolphinQt/Settings/PathPane.h', 'Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'PathPane: Use ConfigControls where applicable', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3cf4b02a9102c231144414a67f272dc28690e1f5', 'hash': '3cf4b02a9102c231144414a67f272dc28690e1f5'}, {'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/AdvancedPane.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'AdvancedPane: Use ConfigControls where applicable', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e1088659b1e9e4ba271ac66fb07e77c58891703e', 'hash': 'e1088659b1e9e4ba271ac66fb07e77c58891703e'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': ['Source/Core/DolphinQt/Config/ConfigControls/ConfigText.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigText.h', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigUserPath.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigUserPath.h', 'Source/Core/DolphinQt/QtUtils/AnalyticsPrompt.cpp', 'Source/Core/DolphinQt/QtUtils/AnalyticsPrompt.h'], 'modified': ['Source/Core/Common/FileUtil.cpp', 'Source/Core/Common/FileUtil.h', 'Source/Core/Core/ConfigManager.cpp', 'Source/Core/Core/ConfigManager.h', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigChoice.cpp', 'Source/Core/DolphinQt/Config/ConfigControls/ConfigChoice.h', 'Source/Core/DolphinQt/Config/FreeLookWidget.cpp', 'Source/Core/DolphinQt/Config/FreeLookWidget.h', 'Source/Core/DolphinQt/DolphinQt.vcxproj', 'Source/Core/DolphinQt/Main.cpp', 'Source/Core/DolphinQt/Settings.cpp', 'Source/Core/DolphinQt/Settings.h', 'Source/Core/DolphinQt/Settings/AdvancedPane.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.h', 'Source/Core/DolphinQt/Settings/GameCubePane.cpp', 'Source/Core/DolphinQt/Settings/GameCubePane.h', 'Source/Core/DolphinQt/Settings/PathPane.cpp', 'Source/Core/DolphinQt/Settings/PathPane.h', 'Source/Core/DolphinQt/Settings/WiiPane.cpp', 'Source/Core/DolphinQt/Settings/WiiPane.h', 'Source/Core/UICommon/UICommon.cpp'], 'removed': [], 'message': 'Merge pull request #13866 from JoshuaVandaele/reset-button-third-attempt\n\nAdvancedPane: Add a button to restore default settings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1ed86e1b162adda9382f8ccaa9da2c029eb56de7', 'hash': '1ed86e1b162adda9382f8ccaa9da2c029eb56de7'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T21:32:37.898211 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '3d764f7b42b860db834159bb2db12e88abdffbed', 'after_sha': '032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6', 'commits': [{'author': {'name': 'Mateus B. Cassiano', 'email': 'mbc07@live.com', 'username': 'mbc07'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/SJX.ini'], 'modified': ['Data/Sys/GameSettings/SJD.ini', 'Data/Sys/GameSettings/SJHE41.ini', 'Data/Sys/GameSettings/SJTP41.ini'], 'removed': [], 'message': 'GameSettings: fix texture filtering settings for earlier Just Dance games', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fca9e6a3629093910c7870c75f3f492e83a202dd', 'hash': 'fca9e6a3629093910c7870c75f3f492e83a202dd'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/SJX.ini'], 'modified': ['Data/Sys/GameSettings/SJD.ini', 'Data/Sys/GameSettings/SJHE41.ini', 'Data/Sys/GameSettings/SJTP41.ini'], 'removed': [], 'message': 'Merge pull request #14039 from mbc07/tex_filter_settings_followup\n\nGameSettings: fix texture filtering settings for earlier Just Dance games', 'url': 'https://github.com/dolphin-emu/dolphin/commit/032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6', 'hash': '032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T20:18:50.502433 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '509584d3d3c8b7a66330d2bdb16e609e20f2dbbf', 'after_sha': '3d764f7b42b860db834159bb2db12e88abdffbed', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp'], 'removed': [], 'message': 'Core: Remove GDBStub::Deinit call from EmuThread. The CpuThread function is already doing this.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/7608dbbfbd087a31faa5337b96dffc4d74db6846', 'hash': '7608dbbfbd087a31faa5337b96dffc4d74db6846'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp'], 'removed': [], 'message': 'Core: Make EmuThread spawn the Video thread and become the CPU thread in dual-core mode instead of the other way around.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6416b0a6ec289bc1aba00ce5b8f0fa6bb59586d3', 'hash': '6416b0a6ec289bc1aba00ce5b8f0fa6bb59586d3'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/VideoCommon/AsyncRequests.cpp', 'Source/Core/VideoCommon/AsyncRequests.h', 'Source/Core/VideoCommon/Fifo.cpp'], 'removed': [], 'message': 'VideoCommon/AsyncRequests: Remove now unnecessary `SetEnable` function. Requests are now always enabled. Call `SetPassthrough` on initialization to not be racy.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/700abd68e3214d7586a1ea89b33dce9c9934bacf', 'hash': '700abd68e3214d7586a1ea89b33dce9c9934bacf'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/CPU.cpp'], 'removed': [], 'message': 'Core/HW: Remove RoundingModeUpdated call from CPUManager::Run. This is now properly handled on initialization.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c69f868fff9bbbd3099abeb00a7a8da8dc930ecf', 'hash': 'c69f868fff9bbbd3099abeb00a7a8da8dc930ecf'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/Core.cpp', 'Source/Core/Core/HW/CPU.cpp', 'Source/Core/VideoCommon/AsyncRequests.cpp', 'Source/Core/VideoCommon/AsyncRequests.h', 'Source/Core/VideoCommon/Fifo.cpp'], 'removed': [], 'message': 'Merge pull request #14032 from jordan-woyak/spawn-gpu-thread\n\nCore: Make EmuThread spawn a GPU thread and become the CPU thread in dual-core mode.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3d764f7b42b860db834159bb2db12e88abdffbed', 'hash': '3d764f7b42b860db834159bb2db12e88abdffbed'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T18:34:09.196860 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'c22a483431bcc40a18250985426e0ae0c27bfa5a', 'after_sha': '509584d3d3c8b7a66330d2bdb16e609e20f2dbbf', 'commits': [{'author': {'name': 'Tillmann Karras', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/GameSettings/DD2.ini', 'Data/Sys/GameSettings/E78.ini', 'Data/Sys/GameSettings/F.ini', 'Data/Sys/GameSettings/GMS.ini', 'Data/Sys/GameSettings/GOQ.ini', 'Data/Sys/GameSettings/GXG.ini', 'Data/Sys/GameSettings/GXU.ini', 'Data/Sys/GameSettings/GZW.ini', 'Data/Sys/GameSettings/HA8.ini', 'Data/Sys/GameSettings/HA9.ini', 'Data/Sys/GameSettings/HBA.ini', 'Data/Sys/GameSettings/HBB.ini', 'Data/Sys/GameSettings/HBC.ini', 'Data/Sys/GameSettings/HBD.ini', 'Data/Sys/GameSettings/PZL.ini', 'Data/Sys/GameSettings/R38.ini', 'Data/Sys/GameSettings/R3S.ini', 'Data/Sys/GameSettings/R5I.ini', 'Data/Sys/GameSettings/R6B.ini', 'Data/Sys/GameSettings/R9G.ini', 'Data/Sys/GameSettings/RBO.ini', 'Data/Sys/GameSettings/RCJ.ini', 'Data/Sys/GameSettings/RD2.ini', 'Data/Sys/GameSettings/RG6.ini', 'Data/Sys/GameSettings/RGQ.ini', 'Data/Sys/GameSettings/RGW.ini', 'Data/Sys/GameSettings/RJ2.ini', 'Data/Sys/GameSettings/RM8.ini', 'Data/Sys/GameSettings/RN3.ini', 'Data/Sys/GameSettings/RO8.ini', 'Data/Sys/GameSettings/RQ6.ini', 'Data/Sys/GameSettings/RQL.ini', 'Data/Sys/GameSettings/RRB.ini', 'Data/Sys/GameSettings/RSN.ini', 'Data/Sys/GameSettings/RUS.ini', 'Data/Sys/GameSettings/RXI.ini', 'Data/Sys/GameSettings/RY2.ini', 'Data/Sys/GameSettings/S2C.ini', 'Data/Sys/GameSettings/S2E.ini', 'Data/Sys/GameSettings/S2W.ini', 'Data/Sys/GameSettings/S5D.ini', 'Data/Sys/GameSettings/SC7.ini', 'Data/Sys/GameSettings/SD2.ini', 'Data/Sys/GameSettings/SD2J01.ini', 'Data/Sys/GameSettings/SDB.ini', 'Data/Sys/GameSettings/SDN.ini', 'Data/Sys/GameSettings/SDZ.ini', 'Data/Sys/GameSettings/SE2.ini', 'Data/Sys/GameSettings/SEA.ini', 'Data/Sys/GameSettings/SEM.ini', 'Data/Sys/GameSettings/SEP.ini', 'Data/Sys/GameSettings/SER.ini', 'Data/Sys/GameSettings/SF2.ini', 'Data/Sys/GameSettings/SF8.ini', 'Data/Sys/GameSettings/SFU.ini', 'Data/Sys/GameSettings/SJ6.ini', 'Data/Sys/GameSettings/SJ7.ini', 'Data/Sys/GameSettings/SJ9.ini', 'Data/Sys/GameSettings/SJD.ini', 'Data/Sys/GameSettings/SJDJ01.ini', 'Data/Sys/GameSettings/SJHE41.ini', 'Data/Sys/GameSettings/SJTP41.ini', 'Data/Sys/GameSettings/SJZ.ini', 'Data/Sys/GameSettings/SMO.ini', 'Data/Sys/GameSettings/SOJ.ini', 'Data/Sys/GameSettings/SPD.ini', 'Data/Sys/GameSettings/SR4.ini', 'Data/Sys/GameSettings/SR5.ini', 'Data/Sys/GameSettings/SUO.ini', 'Data/Sys/GameSettings/SZB.ini', 'Data/Sys/GameSettings/WR2.ini'], 'removed': ['Data/Sys/GameSettings/SJX.ini'], 'message': "GameSettings: clean up texture filtering settings\n\n`MaxAnisotropy = 0` is no longer the safest setting because it forces 1x\neven if the game asks for more.\n\n`ForceFiltering` was replaced by `ForceTextureFiltering` in\nafe9d5b098ffa32ab92a9795fac9553b29fc4bce. The one remaining occurrence\nwas merged later.\n\n`ForceTextureFiltering` is an int option and shouldn't be set to False.\n\nJust Dance 3, Just Dance: Best of, and Just Dance: Greatest Hits look\nfine on AMD GPUs without manual texture sampling. On Nvidia GPUs they\nhave a single stripe that I think doesn't warrant forcing manual texture\nsampling for everyone.\n\nThe NES games I tried worked fine with anisotropic filtering, it just\ndoesn't do anything.\n\nVarious games don't actually have any issue with anisotropic filtering\nas long as it's not forced. The only game I could find that actually\nrequires the default aniso setting is Spider-Man: Shattered Dimensions.\n\nBoogie SuperStar works fine with any texture filtering setting.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/9396f0f58ea882445036f35b09b56fceb0363b30', 'hash': '9396f0f58ea882445036f35b09b56fceb0363b30'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Data/Sys/GameSettings/DD2.ini', 'Data/Sys/GameSettings/E78.ini', 'Data/Sys/GameSettings/F.ini', 'Data/Sys/GameSettings/GMS.ini', 'Data/Sys/GameSettings/GOQ.ini', 'Data/Sys/GameSettings/GXG.ini', 'Data/Sys/GameSettings/GXU.ini', 'Data/Sys/GameSettings/GZW.ini', 'Data/Sys/GameSettings/HA8.ini', 'Data/Sys/GameSettings/HA9.ini', 'Data/Sys/GameSettings/HBA.ini', 'Data/Sys/GameSettings/HBB.ini', 'Data/Sys/GameSettings/HBC.ini', 'Data/Sys/GameSettings/HBD.ini', 'Data/Sys/GameSettings/PZL.ini', 'Data/Sys/GameSettings/R38.ini', 'Data/Sys/GameSettings/R3S.ini', 'Data/Sys/GameSettings/R5I.ini', 'Data/Sys/GameSettings/R6B.ini', 'Data/Sys/GameSettings/R9G.ini', 'Data/Sys/GameSettings/RBO.ini', 'Data/Sys/GameSettings/RCJ.ini', 'Data/Sys/GameSettings/RD2.ini', 'Data/Sys/GameSettings/RG6.ini', 'Data/Sys/GameSettings/RGQ.ini', 'Data/Sys/GameSettings/RGW.ini', 'Data/Sys/GameSettings/RJ2.ini', 'Data/Sys/GameSettings/RM8.ini', 'Data/Sys/GameSettings/RN3.ini', 'Data/Sys/GameSettings/RO8.ini', 'Data/Sys/GameSettings/RQ6.ini', 'Data/Sys/GameSettings/RQL.ini', 'Data/Sys/GameSettings/RRB.ini', 'Data/Sys/GameSettings/RSN.ini', 'Data/Sys/GameSettings/RUS.ini', 'Data/Sys/GameSettings/RXI.ini', 'Data/Sys/GameSettings/RY2.ini', 'Data/Sys/GameSettings/S2C.ini', 'Data/Sys/GameSettings/S2E.ini', 'Data/Sys/GameSettings/S2W.ini', 'Data/Sys/GameSettings/S5D.ini', 'Data/Sys/GameSettings/SC7.ini', 'Data/Sys/GameSettings/SD2.ini', 'Data/Sys/GameSettings/SD2J01.ini', 'Data/Sys/GameSettings/SDB.ini', 'Data/Sys/GameSettings/SDN.ini', 'Data/Sys/GameSettings/SDZ.ini', 'Data/Sys/GameSettings/SE2.ini', 'Data/Sys/GameSettings/SEA.ini', 'Data/Sys/GameSettings/SEM.ini', 'Data/Sys/GameSettings/SEP.ini', 'Data/Sys/GameSettings/SER.ini', 'Data/Sys/GameSettings/SF2.ini', 'Data/Sys/GameSettings/SF8.ini', 'Data/Sys/GameSettings/SFU.ini', 'Data/Sys/GameSettings/SJ6.ini', 'Data/Sys/GameSettings/SJ7.ini', 'Data/Sys/GameSettings/SJ9.ini', 'Data/Sys/GameSettings/SJD.ini', 'Data/Sys/GameSettings/SJDJ01.ini', 'Data/Sys/GameSettings/SJHE41.ini', 'Data/Sys/GameSettings/SJTP41.ini', 'Data/Sys/GameSettings/SJZ.ini', 'Data/Sys/GameSettings/SMO.ini', 'Data/Sys/GameSettings/SOJ.ini', 'Data/Sys/GameSettings/SPD.ini', 'Data/Sys/GameSettings/SR4.ini', 'Data/Sys/GameSettings/SR5.ini', 'Data/Sys/GameSettings/SUO.ini', 'Data/Sys/GameSettings/SZB.ini', 'Data/Sys/GameSettings/WR2.ini'], 'removed': ['Data/Sys/GameSettings/SJX.ini'], 'message': 'Merge pull request #13916 from Tilka/tex_filter_settings\n\nGameSettings: clean up texture filtering settings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/509584d3d3c8b7a66330d2bdb16e609e20f2dbbf', 'hash': '509584d3d3c8b7a66330d2bdb16e609e20f2dbbf'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-28T05:49:29.114099 {'source': 'ghhookparser', 'repo': 'dolphin-emu/sadm', 'pusher': 'OatmealDome', 'before_sha': '84756accb9f9327ef0cf8b8cd0c03310b0e57404', 'after_sha': '6002b9040982679de45449a346f14df3652d5812', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['secrets/buildbot-flat-manager-worker-token.age'], 'removed': [], 'message': 'buildbot: Replace expired flat-manager token used by workers', 'url': 'https://github.com/dolphin-emu/sadm/commit/6002b9040982679de45449a346f14df3652d5812', 'hash': '6002b9040982679de45449a346f14df3652d5812'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-26T20:42:39.115796 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'after_sha': 'c22a483431bcc40a18250985426e0ae0c27bfa5a', 'commits': [{'author': {'name': 'TellowKrinkle', 'email': 'tellowkrinkle@gmail.com', 'username': 'TellowKrinkle'}, 'distinct': False, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/VideoBackends/D3DCommon/CMakeLists.txt', 'Source/Core/VideoBackends/Metal/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/Core/VideoCommon/CMakeLists.txt'], 'removed': [], 'message': 'CMake: Fix bundled glslang', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d404805b7f68e2dc84c54bbc488d765755e7ec6f', 'hash': 'd404805b7f68e2dc84c54bbc488d765755e7ec6f'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/VideoBackends/D3DCommon/CMakeLists.txt', 'Source/Core/VideoBackends/Metal/CMakeLists.txt', 'Source/Core/VideoBackends/Vulkan/CMakeLists.txt', 'Source/Core/VideoCommon/CMakeLists.txt'], 'removed': [], 'message': 'Merge pull request #14031 from TellowKrinkle/GlslangFix\n\nCMake: Fix bundled glslang', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c22a483431bcc40a18250985426e0ae0c27bfa5a', 'hash': 'c22a483431bcc40a18250985426e0ae0c27bfa5a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-26T17:13:34.242029 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'df351b60591140d70d7d1ef87f5332875b2b5322', 'after_sha': 'f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': ['Externals/bzip2/bzip2'], 'modified': ['.gitmodules', 'Externals/bzip2/CMakeLists.txt', 'Externals/bzip2/bzip2.vcxproj', 'Externals/bzip2/bzip2.vcxproj.filters', 'Externals/bzip2/exports.props'], 'removed': ['Externals/bzip2/CHANGES', 'Externals/bzip2/LICENSE', 'Externals/bzip2/blocksort.c', 'Externals/bzip2/bzlib.c', 'Externals/bzip2/bzlib.h', 'Externals/bzip2/bzlib_private.h', 'Externals/bzip2/compress.c', 'Externals/bzip2/crctable.c', 'Externals/bzip2/decompress.c', 'Externals/bzip2/huffman.c', 'Externals/bzip2/randtable.c'], 'message': 'Move bzip2 from vendored to a submodule\n\nWe are already on the latest version (1.0.8) since the project is not very active and has not seen much activity in the last few years.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4f7d48e018cd1e0ada57537f28dceb7734b8d4ba', 'hash': '4f7d48e018cd1e0ada57537f28dceb7734b8d4ba'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': ['Externals/bzip2/bzip2'], 'modified': ['.gitmodules', 'Externals/bzip2/CMakeLists.txt', 'Externals/bzip2/bzip2.vcxproj', 'Externals/bzip2/bzip2.vcxproj.filters', 'Externals/bzip2/exports.props'], 'removed': ['Externals/bzip2/CHANGES', 'Externals/bzip2/LICENSE', 'Externals/bzip2/blocksort.c', 'Externals/bzip2/bzlib.c', 'Externals/bzip2/bzlib.h', 'Externals/bzip2/bzlib_private.h', 'Externals/bzip2/compress.c', 'Externals/bzip2/crctable.c', 'Externals/bzip2/decompress.c', 'Externals/bzip2/huffman.c', 'Externals/bzip2/randtable.c'], 'message': 'Merge pull request #14004 from JoshuaVandaele/bzip2-submodule\n\nMove bzip2 from vendored to a submodule', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'hash': 'f8ebd27766fb87bb657ff86db92c36bffa8e13a4'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-23T18:13:05.200719 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '06b4c89c518e16c6aa19c2c52a2d96f6e056eb50', 'after_sha': 'df351b60591140d70d7d1ef87f5332875b2b5322', 'commits': [{'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'username': 'SuperSamus'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GEMJ28.ini', 'Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'GameINI: Fix Egg Mania Japanese "Force Progressive" hack', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d423eb5a754e9c847d562d58252a7f10843c1b4e', 'hash': 'd423eb5a754e9c847d562d58252a7f10843c1b4e'}, {'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'username': 'SuperSamus'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/R7XE69.ini', 'Data/Sys/GameSettings/R7XJ13.ini', 'Data/Sys/GameSettings/R7XP69.ini', 'Data/Sys/GameSettings/RRBE41r0.ini', 'Data/Sys/GameSettings/RRBE41r1.ini', 'Data/Sys/GameSettings/RRBE41r2.ini', 'Data/Sys/GameSettings/RRBJ41.ini', 'Data/Sys/GameSettings/RRBP41.ini'], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/R7X.ini', 'Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'GameINI: Add patches for idle loop detection (speed hack)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2542c79d6b743ba62be0b423b17d74d14e3127d4', 'hash': '2542c79d6b743ba62be0b423b17d74d14e3127d4'}, {'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'username': 'SuperSamus'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/GAHEGG.ini', 'Data/Sys/GameSettings/GHKD7D.ini', 'Data/Sys/GameSettings/GHKE7D.ini', 'Data/Sys/GameSettings/GHKF7D.ini', 'Data/Sys/GameSettings/GHKP7D.ini', 'Data/Sys/GameSettings/GHKS7D.ini', 'Data/Sys/GameSettings/GMNE78.ini', 'Data/Sys/GameSettings/GMNP78.ini', 'Data/Sys/GameSettings/GTRE78r0.ini', 'Data/Sys/GameSettings/GTRE78r1.ini', 'Data/Sys/GameSettings/GTRJ8N.ini', 'Data/Sys/GameSettings/GTRP78.ini', 'Data/Sys/GameSettings/RB7E54.ini', 'Data/Sys/GameSettings/RB7P54.ini', 'Data/Sys/GameSettings/SC2.ini'], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GHK.ini', 'Data/Sys/GameSettings/GHQ.ini', 'Data/Sys/GameSettings/GHQE7D.ini', 'Data/Sys/GameSettings/GHQP7D.ini', 'Data/Sys/GameSettings/GMN.ini', 'Data/Sys/GameSettings/GTR.ini', 'Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'GameINI: Add patches to limit FPS for some uncapped games', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fe63d95e02c6b3cca094bb892804f61b8146d56b', 'hash': 'fe63d95e02c6b3cca094bb892804f61b8146d56b'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/GAHEGG.ini', 'Data/Sys/GameSettings/GHKD7D.ini', 'Data/Sys/GameSettings/GHKE7D.ini', 'Data/Sys/GameSettings/GHKF7D.ini', 'Data/Sys/GameSettings/GHKP7D.ini', 'Data/Sys/GameSettings/GHKS7D.ini', 'Data/Sys/GameSettings/GMNE78.ini', 'Data/Sys/GameSettings/GMNP78.ini', 'Data/Sys/GameSettings/GTRE78r0.ini', 'Data/Sys/GameSettings/GTRE78r1.ini', 'Data/Sys/GameSettings/GTRJ8N.ini', 'Data/Sys/GameSettings/GTRP78.ini', 'Data/Sys/GameSettings/R7XE69.ini', 'Data/Sys/GameSettings/R7XJ13.ini', 'Data/Sys/GameSettings/R7XP69.ini', 'Data/Sys/GameSettings/RB7E54.ini', 'Data/Sys/GameSettings/RB7P54.ini', 'Data/Sys/GameSettings/RRBE41r0.ini', 'Data/Sys/GameSettings/RRBE41r1.ini', 'Data/Sys/GameSettings/RRBE41r2.ini', 'Data/Sys/GameSettings/RRBJ41.ini', 'Data/Sys/GameSettings/RRBP41.ini', 'Data/Sys/GameSettings/SC2.ini'], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GEMJ28.ini', 'Data/Sys/GameSettings/GHK.ini', 'Data/Sys/GameSettings/GHQ.ini', 'Data/Sys/GameSettings/GHQE7D.ini', 'Data/Sys/GameSettings/GHQP7D.ini', 'Data/Sys/GameSettings/GMN.ini', 'Data/Sys/GameSettings/GTR.ini', 'Data/Sys/GameSettings/R7X.ini', 'Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'Merge pull request #13771 from SuperSamus/gameini-speedhacks\n\nGameINI: Add some speed hacks', 'url': 'https://github.com/dolphin-emu/dolphin/commit/df351b60591140d70d7d1ef87f5332875b2b5322', 'hash': 'df351b60591140d70d7d1ef87f5332875b2b5322'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-22T02:55:57.785637 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'e34ef86be977a9db83f59ebc65f112e983bc4a7f', 'after_sha': '06b4c89c518e16c6aa19c2c52a2d96f6e056eb50', 'commits': [{'author': {'name': 'cobalt2727', 'email': '60624944+cobalt2727@users.noreply.github.com', 'username': 'cobalt2727'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp'], 'removed': [], 'message': "DolphinQT: explicitly include QAction for older QT6 libs\n\nthis fixes an exotic build environment I've got using QT6.2 on Ubuntu 18.04 without breaking any sane operating systems.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/7c63750e5379a0a1707e040b785a890c1b33c54f', 'hash': '7c63750e5379a0a1707e040b785a890c1b33c54f'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp'], 'removed': [], 'message': 'Merge pull request #14024 from cobalt2727/patch-5\n\nDolphinQt: explicitly include QAction for building with older QT6 libs', 'url': 'https://github.com/dolphin-emu/dolphin/commit/06b4c89c518e16c6aa19c2c52a2d96f6e056eb50', 'hash': '06b4c89c518e16c6aa19c2c52a2d96f6e056eb50'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-22T00:19:15.383818 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'be131ddc5974dda67e597195437a9e65034853fa', 'after_sha': 'e34ef86be977a9db83f59ebc65f112e983bc4a7f', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Debugger/EditSymbolDialog.cpp', 'Source/Core/DolphinQt/Debugger/EditSymbolDialog.h'], 'removed': [], 'message': "i18n: Improve EditSymbolDialog's symbol vs note handling for translators", 'url': 'https://github.com/dolphin-emu/dolphin/commit/8c03702b9c9a0fff6dc9499f90dd18eebb8cad9c', 'hash': '8c03702b9c9a0fff6dc9499f90dd18eebb8cad9c'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Debugger/EditSymbolDialog.cpp', 'Source/Core/DolphinQt/Debugger/EditSymbolDialog.h'], 'removed': [], 'message': "Merge pull request #13947 from JosJuice/i18n-2025-08-17-type\n\ni18n: Improve EditSymbolDialog's symbol vs note handling for translators", 'url': 'https://github.com/dolphin-emu/dolphin/commit/e34ef86be977a9db83f59ebc65f112e983bc4a7f', 'hash': 'e34ef86be977a9db83f59ebc65f112e983bc4a7f'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-21T23:49:25.080836 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '5f5cfda5ad98f63ce213323b2ac99a3854501cc3', 'after_sha': 'be131ddc5974dda67e597195437a9e65034853fa', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp', 'Source/Core/Core/HW/WiimoteReal/IOAndroid.h'], 'removed': [], 'message': 'WiimoteReal/IOAndroid: Don\'t "find" already in-use Wii remotes.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c84d30c782107c5f462e3dcda568b76627b2b12d', 'hash': 'c84d30c782107c5f462e3dcda568b76627b2b12d'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp', 'Source/Core/Core/HW/WiimoteReal/IOAndroid.h'], 'removed': [], 'message': 'WiimoteReal/IOAndroid: Only "find" DolphinBar remotes which are actually connected.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/99cc5e7bb7ed72ffae4f70bc76c4f2e77ce634ca', 'hash': '99cc5e7bb7ed72ffae4f70bc76c4f2e77ce634ca'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp', 'Source/Core/Core/HW/WiimoteReal/IOAndroid.h', 'Source/Core/Core/HW/WiimoteReal/IODummy.h', 'Source/Core/Core/HW/WiimoteReal/IOLinux.cpp', 'Source/Core/Core/HW/WiimoteReal/IOLinux.h', 'Source/Core/Core/HW/WiimoteReal/IOWin.cpp', 'Source/Core/Core/HW/WiimoteReal/IOWin.h', 'Source/Core/Core/HW/WiimoteReal/IOhidapi.cpp', 'Source/Core/Core/HW/WiimoteReal/IOhidapi.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'WiimoteReal: Make WiimoteScannerBackend classes use separate FindNewWiimotes and FindAttachedWiimotes functions.\nReturn results as vector of unique_ptr instead of raw pointers.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/590b94975d23e03612c229fb7450e75b80daa17f', 'hash': '590b94975d23e03612c229fb7450e75b80daa17f'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/WiimoteReal/IOLinux.cpp'], 'removed': [], 'message': 'WiimoteReal/IOLinux: Fix warning.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/26c5b2f57a2f0aec357448523c205b0970a5b9c3', 'hash': '26c5b2f57a2f0aec357448523c205b0970a5b9c3'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/WiimoteReal/IOAndroid.cpp', 'Source/Core/Core/HW/WiimoteReal/IOAndroid.h', 'Source/Core/Core/HW/WiimoteReal/IODummy.h', 'Source/Core/Core/HW/WiimoteReal/IOLinux.cpp', 'Source/Core/Core/HW/WiimoteReal/IOLinux.h', 'Source/Core/Core/HW/WiimoteReal/IOWin.cpp', 'Source/Core/Core/HW/WiimoteReal/IOWin.h', 'Source/Core/Core/HW/WiimoteReal/IOhidapi.cpp', 'Source/Core/Core/HW/WiimoteReal/IOhidapi.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'Merge pull request #13984 from jordan-woyak/wmreal-quick-connect-and-disconnect\n\nWiimoteReal: Quickly connect and disconnect Wii remotes with hidapi / Android.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/be131ddc5974dda67e597195437a9e65034853fa', 'hash': 'be131ddc5974dda67e597195437a9e65034853fa'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-10-21T21:05:12.700815 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'a2913abeb9b25f73d54f1bd179ce877fa5531a77', 'after_sha': '5f5cfda5ad98f63ce213323b2ac99a3854501cc3', 'commits': [{'author': {'name': 'TellowKrinkle', 'email': 'tellowkrinkle@gmail.com', 'username': 'TellowKrinkle'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoBackends/Vulkan/StateTracker.cpp', 'Source/Core/VideoBackends/Vulkan/VKTexture.cpp', 'Source/Core/VideoBackends/Vulkan/VKTexture.h'], 'removed': [], 'message': 'VideoBackends:Vulkan: Prevent hazards when restarting render passes', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e599ae37c31b0beb1594b3e664faa0a50db91690', 'hash': 'e599ae37c31b0beb1594b3e664faa0a50db91690'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoBackends/Vulkan/StateTracker.cpp', 'Source/Core/VideoBackends/Vulkan/VKTexture.cpp', 'Source/Core/VideoBackends/Vulkan/VKTexture.h'], 'removed': [], 'message': 'Merge pull request #14025 from TellowKrinkle/RenderPassHazards\n\nVideoBackends:Vulkan: Prevent hazards when restarting render passes', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5f5cfda5ad98f63ce213323b2ac99a3854501cc3', 'hash': '5f5cfda5ad98f63ce213323b2ac99a3854501cc3'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
Recent 'internal_log' events
2025-11-01T17:34:28.803493 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14059, None, 'unknown')", 'type': 'internal_log'}
2025-11-01T17:33:44.427732 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:33:43.305934 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:33:22.518361 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14062, None, 'unknown')", 'type': 'internal_log'}
2025-11-01T17:31:46.132984 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14061, None, 'unknown')", 'type': 'internal_log'}
2025-11-01T17:30:36.534246 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14061, None, 'unknown')", 'type': 'internal_log'}
2025-11-01T17:28:43.205770 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:28:42.009954 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:28:00.806320 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'JosJuice,delroth,jordan-woyak,skidau,Parlane,spycrab,OatmealDome,Helios747,degasus,linkmauve,leoetlino,lioncash,Pokechu22,CrossVR,Tilka,hrydgard,AdmiralCurtiss,phire')", 'type': 'internal_log'}
2025-11-01T17:28:00.419407 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-11-01T17:25:46.437018 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14062, True, 'clean')", 'type': 'internal_log'}
2025-11-01T17:23:41.909588 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:23:40.933346 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:18:40.833355 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:18:39.796044 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:18:00.318617 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'JosJuice,delroth,jordan-woyak,skidau,Parlane,spycrab,OatmealDome,Helios747,degasus,linkmauve,leoetlino,lioncash,Pokechu22,CrossVR,Tilka,hrydgard,AdmiralCurtiss,phire')", 'type': 'internal_log'}
2025-11-01T17:18:00.126892 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-11-01T17:13:39.695932 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:13:38.372834 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:08:38.272523 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:08:37.155929 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-11-01T17:08:00.026967 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'JosJuice,delroth,jordan-woyak,skidau,Parlane,spycrab,OatmealDome,Helios747,degasus,linkmauve,leoetlino,lioncash,Pokechu22,CrossVR,Tilka,hrydgard,AdmiralCurtiss,phire')", 'type': 'internal_log'}
2025-11-01T17:07:59.811359 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-11-01T17:03:37.054109 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Orphis,sepalani,TellowKrinkle,hthh,Helios747,zackhow,mathieui,aroulin,malleoz,yourWaifu,deReeperJosh,degasus,merryhime,jezze,phire,tygyh,JMC47,mandar1jn,CasualPokePlayer,Starsam80,BhaaLseN,kamiyo,RachelBryk,hackbar,moncefmechri,RisingFog,ColinDTaylor,ShimmerGlass,krnlyng,Geotale,dreamsyntax,zopieux,LPFaint99,EmptyChaos,LillyJadeKatrin,booto,magumagu,Pokechu22,orbea,Zopolis4,JosJuice,vladfi1,OatmealDome,JoshuaVandaele,linkmauve,Techjar,Hydr8gon,Alcaro,NanoByte011,OrN,jjdelvalle,Tilka,unknownbrackets,magcius,Ziek,mmastrac,smurf3tte,CrossVR,comex,randomstuff,spycrab,riking,SuperSamus,mimimi085181,PatrickFerry,Buddybenj,Lobsterzelda,CelestialAmber,SirMangler,DacoTaco,LAGonauta,mbc07,hrydgard,rlnilsen,mitaclaw,jloehr,Parlane,nullgemm,corwin-mcknight,CrystalGamma,glennricster,Phatcat,Simonx22,cristian64,leoetlino,skylersaleh,bentley,Sam-Belliveau,CookiePLMonster,AdmiralCurtiss,shonumi,rukai,ligfx,Linktothepast,galop1n,nickbeth,lioncash,Tinob,TryTwo,mrgreywater,gwicks,Filoppi,skidau,aldelaro5,Sintendo,Dentomologist,JordanTheToaster,archshift,marcan,MayImilae,iwubcode,meffij,kayru,mahdihijazi,FioraAeterna,hdcmeta,noahpistilli,K0bin,crediar,neobrain,delroth,jordan-woyak,spxtr,Ebola16,Gamer64ytb,adamdmoss,endrift,Stevoisiak')", 'type': 'internal_log'}
2025-11-01T17:03:36.066825 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pgczpk3sakjdkikm69x5zwyr20pqyzpa-central-env/lib/python3.10/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
Recent 'issue' events
2025-11-01T06:50:41.750477 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 13909, 'title': 'Super Smash REX and other Project+ based mods crash when build content on SD card exceeds ~10.7GB', 'author': 'Billiard26', 'type': 'issue'}
2025-11-01T00:44:39.407453 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 13909, 'title': 'Super Smash REX and other Project+ based mods crash when build content on SD card exceeds ~10.7GB', 'author': 'iwubcode', 'type': 'issue'}
2025-10-31T21:43:35.535553 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2025-10-31T05:09:08.767335 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 13876, 'title': 'Game window closes when logged in to Achievements while using a patched AND compressed ROM', 'author': 'Billiard26', 'type': 'issue'}
2025-10-31T04:59:13.372080 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 13906, 'title': 'Riivolution Mods Crash When Retroachievements Hardcore Mode is enabled', 'author': 'Billiard26', 'type': 'issue'}
2025-10-31T04:29:04.754809 {'source': 'redmine', 'new': False, 'update': 8, 'issue': 13897, 'title': 'Dolphin Emulator Hanging on Close Button – ROG Ally (Build 2506-155 / 2509)', 'author': 'hehk1234', 'type': 'issue'}
2025-10-31T03:49:42.230928 {'source': 'redmine', 'new': False, 'update': 7, 'issue': 13897, 'title': 'Dolphin Emulator Hanging on Close Button – ROG Ally (Build 2506-155 / 2509)', 'author': 'Billiard26', 'type': 'issue'}
2025-10-31T03:47:07.391343 {'source': 'redmine', 'new': False, 'update': 6, 'issue': 13897, 'title': 'Dolphin Emulator Hanging on Close Button – ROG Ally (Build 2506-155 / 2509)', 'author': 'hehk1234', 'type': 'issue'}
2025-10-31T01:17:55.768382 {'source': 'redmine', 'new': False, 'update': 10, 'issue': 11876, 'title': '[Feature Request] Load game into RAM', 'author': 'Billiard26', 'type': 'issue'}
2025-10-30T21:13:06.375552 {'source': 'redmine', 'new': False, 'update': 1, 'issue': 13132, 'title': 'NVIDIA Optimus Drivers Poor Performance on New Drivers', 'author': 'JMC4789', 'type': 'issue'}
2025-10-30T17:09:30.781811 {'source': 'redmine', 'new': False, 'update': 13, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JosJuice', 'type': 'issue'}
2025-10-29T23:35:05.165920 {'source': 'redmine', 'new': False, 'update': 12, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-29T23:28:26.921232 {'source': 'redmine', 'new': False, 'update': 11, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-29T19:07:58.256311 {'source': 'redmine', 'new': False, 'update': 10, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JosJuice', 'type': 'issue'}
2025-10-29T01:49:19.040628 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 13909, 'title': 'Super Smash REX and other Project+ based mods crash when build content on SD card exceeds ~10.7GB', 'author': 'REX-DevTeam', 'type': 'issue'}
2025-10-29T01:07:52.323337 {'source': 'redmine', 'new': False, 'update': 9, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-28T19:29:50.882332 {'source': 'redmine', 'new': False, 'update': 8, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JosJuice', 'type': 'issue'}
2025-10-28T19:14:08.501001 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 13359, 'title': 'European version of Monopoly, terrible performance.', 'author': 'JMC4789', 'type': 'issue'}
2025-10-28T07:32:21.103672 {'source': 'redmine', 'new': False, 'update': 12, 'issue': 13907, 'title': 'Smash Bros Brawl stutters when "Immediately present XFB" is turned on with a high refresh rate monitor.', 'author': 'Billiard26', 'type': 'issue'}
2025-10-28T07:31:15.494257 {'source': 'redmine', 'new': False, 'update': 9, 'issue': 11876, 'title': '[Feature Request] Load game into RAM', 'author': 'Billiard26', 'type': 'issue'}
2025-10-27T19:09:59.587522 {'source': 'redmine', 'new': False, 'update': 7, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-27T19:04:08.764731 {'source': 'redmine', 'new': False, 'update': 6, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-27T18:48:55.876376 {'source': 'redmine', 'new': False, 'update': 5, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JackWitherell', 'type': 'issue'}
2025-10-27T18:13:20.097922 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 13908, 'title': 'Android - Portrait Mode - Assumes user is using onscreen input method', 'author': 'JosJuice', 'type': 'issue'}
2025-10-27T04:21:33.228481 {'source': 'redmine', 'new': False, 'update': 11, 'issue': 13907, 'title': 'Smash Bros Brawl stutters when "Immediately present XFB" is turned on with a high refresh rate monitor.', 'author': 'Billiard26', 'type': 'issue'}
Recent 'new_dev_version' events
2025-11-01T11:22:48.787366 {'source': 'repomanager', 'hash': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'branch': 'master', 'shortrev': '2509-283', 'author': 'JosJuice', 'message': 'Merge pull request #13655 from JosJuice/android-always-expand-sheets\n\nAndroid: Expand bottom sheets on devices with touch too', 'url': 'https://github.com/dolphin-emu/dolphin/commit/249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'type': 'new_dev_version'}
2025-11-01T11:22:38.709760 {'source': 'repomanager', 'hash': '35c5b51b6236070d9829c6cb41eb023e93d246ae', 'branch': 'master', 'shortrev': '2509-281', 'author': 'JosJuice', 'message': 'Merge pull request #14048 from Simonx22/android-instant-settings-saving\n\nAndroid: Save settings instantly after edits', 'url': 'https://github.com/dolphin-emu/dolphin/commit/35c5b51b6236070d9829c6cb41eb023e93d246ae', 'type': 'new_dev_version'}
2025-11-01T09:06:45.648820 {'source': 'repomanager', 'hash': 'da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'branch': 'master', 'shortrev': '2509-279', 'author': 'JosJuice', 'message': 'Merge pull request #14057 from TellowKrinkle/VkRenderWrongLayout\n\nVideoCommon: Fix render to texture in wrong layout', 'url': 'https://github.com/dolphin-emu/dolphin/commit/da1d45dbd4d3880d8e5aa46bcd7e30314e35e82a', 'type': 'new_dev_version'}
2025-11-01T09:06:12.319973 {'source': 'repomanager', 'hash': '91fd53a98ce7adcce2c724f4a06fe7df1bd0367a', 'branch': 'master', 'shortrev': '2509-277', 'author': 'JosJuice', 'message': 'Merge pull request #14035 from Dentomologist/pauseandlock_refactoring\n\nPauseAndLock Refactoring', 'url': 'https://github.com/dolphin-emu/dolphin/commit/91fd53a98ce7adcce2c724f4a06fe7df1bd0367a', 'type': 'new_dev_version'}
2025-11-01T09:05:15.154724 {'source': 'repomanager', 'hash': '828e72d604217d19e4b6875b7cac5d2e049ecedd', 'branch': 'master', 'shortrev': '2509-262', 'author': 'JosJuice', 'message': 'Merge pull request #14034 from JoshuaVandaele/byeprofile\n\nJitRegister: Remove OProfile profiler', 'url': 'https://github.com/dolphin-emu/dolphin/commit/828e72d604217d19e4b6875b7cac5d2e049ecedd', 'type': 'new_dev_version'}
2025-11-01T09:01:51.910164 {'source': 'repomanager', 'hash': '998a3577cea04abaa1a41963bf58785bbcb39618', 'branch': 'master', 'shortrev': '2509-260', 'author': 'JosJuice', 'message': 'Merge pull request #14054 from Dentomologist/libmgba_fix_build_when_disabled\n\nlibmgba: Fix build when disabled', 'url': 'https://github.com/dolphin-emu/dolphin/commit/998a3577cea04abaa1a41963bf58785bbcb39618', 'type': 'new_dev_version'}
2025-10-31T01:47:46.432118 {'source': 'repomanager', 'hash': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'branch': 'master', 'shortrev': '2509-258', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14045 from JoshuaVandaele/warn-fix\n\nFix various warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'type': 'new_dev_version'}
2025-10-30T23:26:26.675495 {'source': 'repomanager', 'hash': 'd065f1ae1228203b354c35ca853f36fa45a59c43', 'branch': 'master', 'shortrev': '2509-252', 'author': 'JMC47', 'message': 'Merge pull request #14041 from jordan-woyak/lockless-async-requests\n\nVideoCommon: Clean up and eliminate the mutex in AsyncRequests.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d065f1ae1228203b354c35ca853f36fa45a59c43', 'type': 'new_dev_version'}
2025-10-30T23:22:05.127521 {'source': 'repomanager', 'hash': 'ccc334cdd023ed774a89b8a207cc29e0beaf88fd', 'branch': 'master', 'shortrev': '2509-250', 'author': 'JMC47', 'message': 'Merge pull request #14055 from sepalani/async-inetaton\n\nIP/Top: Make InetAToN async', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ccc334cdd023ed774a89b8a207cc29e0beaf88fd', 'type': 'new_dev_version'}
2025-10-30T06:44:16.648412 {'source': 'repomanager', 'hash': '478fb20bc2f3376b974b170f8ded590b34b7fb99', 'branch': 'master', 'shortrev': '2509-248', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14050 from Dentomologist/android_input_fix_unused_value_warning\n\nAndroid: Fix unused value warning', 'url': 'https://github.com/dolphin-emu/dolphin/commit/478fb20bc2f3376b974b170f8ded590b34b7fb99', 'type': 'new_dev_version'}
2025-10-30T06:42:51.182019 {'source': 'repomanager', 'hash': '91320563e0afd020a4a84a732c0dcb4319f60e22', 'branch': 'master', 'shortrev': '2509-246', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14051 from Dentomologist/achievementmanager_fix_unused_private_field_warnings\n\nAchievementManager: Fix unused private field warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/91320563e0afd020a4a84a732c0dcb4319f60e22', 'type': 'new_dev_version'}
2025-10-29T19:11:01.255848 {'source': 'repomanager', 'hash': 'f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'branch': 'master', 'shortrev': '2509-244', 'author': 'JosJuice', 'message': 'Merge pull request #14044 from JoshuaVandaele/im-sorry-ibel\n\nUICommon.cpp: Revert changes from #13866', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f2e6cb4c29c510c6737f5cc158a055d6f3674536', 'type': 'new_dev_version'}
2025-10-28T23:16:20.815845 {'source': 'repomanager', 'hash': 'b920182c97703b3df0fcb44cebdd6d1cc5485fcc', 'branch': 'master', 'shortrev': '2509-242', 'author': 'JMC47', 'message': 'Merge pull request #13870 from cristian64/broadband_adapter_ipc\n\nCore/HW: Add Broadband Adapter (IPC).', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b920182c97703b3df0fcb44cebdd6d1cc5485fcc', 'type': 'new_dev_version'}
2025-10-28T22:56:07.090139 {'source': 'repomanager', 'hash': '1ed86e1b162adda9382f8ccaa9da2c029eb56de7', 'branch': 'master', 'shortrev': '2509-237', 'author': 'JMC47', 'message': 'Merge pull request #13866 from JoshuaVandaele/reset-button-third-attempt\n\nAdvancedPane: Add a button to restore default settings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1ed86e1b162adda9382f8ccaa9da2c029eb56de7', 'type': 'new_dev_version'}
2025-10-28T21:32:39.510486 {'source': 'repomanager', 'hash': '032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6', 'branch': 'master', 'shortrev': '2509-230', 'author': 'JMC47', 'message': 'Merge pull request #14039 from mbc07/tex_filter_settings_followup\n\nGameSettings: fix texture filtering settings for earlier Just Dance games', 'url': 'https://github.com/dolphin-emu/dolphin/commit/032fdf6335ef3ed9986bdaeeed4d5cde36cd82f6', 'type': 'new_dev_version'}
2025-10-28T20:18:52.130006 {'source': 'repomanager', 'hash': '3d764f7b42b860db834159bb2db12e88abdffbed', 'branch': 'master', 'shortrev': '2509-228', 'author': 'JosJuice', 'message': 'Merge pull request #14032 from jordan-woyak/spawn-gpu-thread\n\nCore: Make EmuThread spawn a GPU thread and become the CPU thread in dual-core mode.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3d764f7b42b860db834159bb2db12e88abdffbed', 'type': 'new_dev_version'}
2025-10-28T18:34:10.806115 {'source': 'repomanager', 'hash': '509584d3d3c8b7a66330d2bdb16e609e20f2dbbf', 'branch': 'master', 'shortrev': '2509-223', 'author': 'JMC47', 'message': 'Merge pull request #13916 from Tilka/tex_filter_settings\n\nGameSettings: clean up texture filtering settings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/509584d3d3c8b7a66330d2bdb16e609e20f2dbbf', 'type': 'new_dev_version'}
2025-10-26T20:42:40.774223 {'source': 'repomanager', 'hash': 'c22a483431bcc40a18250985426e0ae0c27bfa5a', 'branch': 'master', 'shortrev': '2509-221', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14031 from TellowKrinkle/GlslangFix\n\nCMake: Fix bundled glslang', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c22a483431bcc40a18250985426e0ae0c27bfa5a', 'type': 'new_dev_version'}
2025-10-26T17:13:35.849446 {'source': 'repomanager', 'hash': 'f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'branch': 'master', 'shortrev': '2509-219', 'author': 'JosJuice', 'message': 'Merge pull request #14004 from JoshuaVandaele/bzip2-submodule\n\nMove bzip2 from vendored to a submodule', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f8ebd27766fb87bb657ff86db92c36bffa8e13a4', 'type': 'new_dev_version'}
2025-10-23T18:13:06.889356 {'source': 'repomanager', 'hash': 'df351b60591140d70d7d1ef87f5332875b2b5322', 'branch': 'master', 'shortrev': '2509-217', 'author': 'JMC47', 'message': 'Merge pull request #13771 from SuperSamus/gameini-speedhacks\n\nGameINI: Add some speed hacks', 'url': 'https://github.com/dolphin-emu/dolphin/commit/df351b60591140d70d7d1ef87f5332875b2b5322', 'type': 'new_dev_version'}
2025-10-22T02:55:59.698633 {'source': 'repomanager', 'hash': '06b4c89c518e16c6aa19c2c52a2d96f6e056eb50', 'branch': 'master', 'shortrev': '2509-213', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14024 from cobalt2727/patch-5\n\nDolphinQt: explicitly include QAction for building with older QT6 libs', 'url': 'https://github.com/dolphin-emu/dolphin/commit/06b4c89c518e16c6aa19c2c52a2d96f6e056eb50', 'type': 'new_dev_version'}
2025-10-21T23:49:26.345152 {'source': 'repomanager', 'hash': 'be131ddc5974dda67e597195437a9e65034853fa', 'branch': 'master', 'shortrev': '2509-209', 'author': 'JMC47', 'message': 'Merge pull request #13984 from jordan-woyak/wmreal-quick-connect-and-disconnect\n\nWiimoteReal: Quickly connect and disconnect Wii remotes with hidapi / Android.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/be131ddc5974dda67e597195437a9e65034853fa', 'type': 'new_dev_version'}
2025-10-21T21:05:14.015825 {'source': 'repomanager', 'hash': '5f5cfda5ad98f63ce213323b2ac99a3854501cc3', 'branch': 'master', 'shortrev': '2509-204', 'author': 'JMC47', 'message': 'Merge pull request #14025 from TellowKrinkle/RenderPassHazards\n\nVideoBackends:Vulkan: Prevent hazards when restarting render passes', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5f5cfda5ad98f63ce213323b2ac99a3854501cc3', 'type': 'new_dev_version'}
2025-10-18T13:36:42.531938 {'source': 'repomanager', 'hash': 'a2913abeb9b25f73d54f1bd179ce877fa5531a77', 'branch': 'master', 'shortrev': '2509-202', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14021 from jordan-woyak/cmake-CheckSymbolExists\n\nCMakeLists: Add include(CheckSymbolExists).', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a2913abeb9b25f73d54f1bd179ce877fa5531a77', 'type': 'new_dev_version'}
2025-10-17T22:47:24.237976 {'source': 'repomanager', 'hash': '7b994d965432687e194c87b347e584ddda08bfae', 'branch': 'master', 'shortrev': '2509-200', 'author': 'JMC47', 'message': 'Merge pull request #14019 from JosJuice/android-ndk-29\n\nAndroid: Update NDK version to 29.0.14206865', 'url': 'https://github.com/dolphin-emu/dolphin/commit/7b994d965432687e194c87b347e584ddda08bfae', 'type': 'new_dev_version'}
Recent 'notification' events
2025-11-01T17:34:28.507558 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14059: Core/IOS/FS: Clean up some hard to read NAND state saving logic. (\x0306master\x03...\x0306state-nand-cleanup\x03): \x1f\x0302https://dolp.in/pr14059\x03\x1f', 'type': 'notification'}
2025-11-01T17:34:19.060989 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14061 \x0304failed\x03 on builders [pr-flatpak-x64]: \x1f\x0302https://dolphin.ci/#/builders/43/builds/3115\x03\x1f', 'type': 'notification'}
2025-11-01T17:33:22.260492 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303S\ufeffimonx22\x03 synchronized pull request #14062: macOS: UI fixes for dark mode (\x0306master\x03...\x0306macos-design-fixes\x03): \x1f\x0302https://dolp.in/pr14062\x03\x1f', 'type': 'notification'}
2025-11-01T17:32:47.121967 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14061 \x0304failed\x03 on builders [pr-deb-x64, pr-flatpak-arm64]: \x1f\x0302https://dolphin.ci/#/builders/44/builds/3060\x03\x1f', 'type': 'notification'}
2025-11-01T17:31:45.766899 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14061: ConfigInfo: Cleanups and change mutex to a spin lock. (\x0306master\x03...\x0306config-info-spin-mutex\x03): \x1f\x0302https://dolp.in/pr14061\x03\x1f', 'type': 'notification'}
2025-11-01T17:30:36.213011 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14061: ConfigInfo: Cleanups and change mutex to a spin lock. (\x0306master\x03...\x0306config-info-spin-mutex\x03): \x1f\x0302https://dolp.in/pr14061\x03\x1f', 'type': 'notification'}
2025-11-01T17:27:43.449993 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14062 \x0304failed\x03 on builders [lint]: \x1f\x0302https://dolphin.ci/#/builders/9/builds/7970\x03\x1f', 'type': 'notification'}
2025-11-01T17:26:08.009159 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303S\ufeffimonx22\x03 requested a review from JosJuice for pull request #14047: Android: Add Reset Dolphin Settings functionality (\x0306master\x03...\x0306reset-all-dolphin-settings-android\x03): \x1f\x0302https://dolp.in/pr14047\x03\x1f', 'type': 'notification'}
2025-11-01T17:25:46.097581 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303S\ufeffimonx22\x03 opened pull request #14062: macOS: UI fixes for dark mode (\x0306master\x03...\x0306macos-design-fixes\x03): \x1f\x0302https://dolp.in/pr14062\x03\x1f', 'type': 'notification'}
2025-11-01T17:17:52.419153 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 commented on #14061 f96c85: \x1f\x0302https://dolp.in/pr14061#discussion_r2483804241\x03\x1f', 'type': 'notification'}
2025-11-01T17:07:18.183762 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 commented on #14061 f96c85: \x1f\x0302https://dolp.in/pr14061#discussion_r2483800778\x03\x1f', 'type': 'notification'}
2025-11-01T16:57:29.041646 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303S\ufeffimonx22\x03 commented on #14047 ee20e7: \x1f\x0302https://dolp.in/pr14047#discussion_r2483797455\x03\x1f', 'type': 'notification'}
2025-11-01T16:57:28.125462 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303S\ufeffimonx22\x03 synchronized pull request #14047: Android: Add Reset Dolphin Settings functionality (\x0306master\x03...\x0306reset-all-dolphin-settings-android\x03): \x1f\x0302https://dolp.in/pr14047\x03\x1f', 'type': 'notification'}
2025-11-01T16:43:15.631564 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 commented on #14056 (Core/DiscIO: Add a setting to load games into memory.): \x1f\x0302https://dolp.in/pr14056#issuecomment-3476548564\x03\x1f', 'type': 'notification'}
2025-11-01T16:13:36.131045 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 reviewed and commented on pull request #14061 (ConfigInfo: Cleanups and change mutex to a spin lock.): \x1f\x0302https://dolp.in/pr14061#pullrequestreview-3407578556\x03\x1f', 'type': 'notification'}
2025-11-01T15:20:12.592732 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 reviewed and commented on pull request #13626 (Common: Make HookableEvent use non-static data.): \x1f\x0302https://dolp.in/pr13626#pullrequestreview-3407552453\x03\x1f', 'type': 'notification'}
2025-11-01T14:56:35.597260 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 commented on #11600 (Android: remove "Saved settings to INI files" toast message): \x1f\x0302https://dolp.in/pr11600#issuecomment-3476437191\x03\x1f', 'type': 'notification'}
2025-11-01T14:56:34.879516 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 closed pull request #11600: Android: remove "Saved settings to INI files" toast message (\x0306master\x03...\x0306ToastMessage_begone\x03): \x1f\x0302https://dolp.in/pr11600\x03\x1f', 'type': 'notification'}
2025-11-01T11:41:20.591527 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 reviewed and commented on pull request #14059 (Core/IOS/FS: Clean up some hard to read NAND state saving logic.): \x1f\x0302https://dolp.in/pr14059#pullrequestreview-3407487597\x03\x1f', 'type': 'notification'}
2025-11-01T11:29:29.694525 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 edited pull request #13236: Call JitInterface::UpdateMembase from PowerPC::MSRUpdated (\x0306master\x03...\x0306jit-set-msr-on-fallback\x03): \x1f\x0302https://dolp.in/pr13236\x03\x1f', 'type': 'notification'}
2025-11-01T11:22:47.159027 {'source': 'notifications', 'msg': '249f99 by \x0303J\ufeffosJuice\x03 [\x03090\x03|\x03094\x03|\x03041\x03] \x1f\x0302https://dolp.in/r249f999c6a11aef91c5541b5f1736cb1df7ea0b5\x03\x1f Merge pull request #13655 from JosJuice/android-always-expand-sheets', 'type': 'notification'}
2025-11-01T11:22:47.158908 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303J\ufeffosJuice\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
2025-11-01T11:22:46.960306 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 merged pull request #13655: Android: Expand bottom sheets on devices with touch too (\x0306master\x03...\x0306android-always-expand-sheets\x03): \x1f\x0302https://dolp.in/pr13655\x03\x1f', 'type': 'notification'}
2025-11-01T11:22:37.099066 {'source': 'notifications', 'msg': '35c5b5 by \x0303J\ufeffosJuice\x03 [\x03090\x03|\x03097\x03|\x03040\x03] \x1f\x0302https://dolp.in/r35c5b51b6236070d9829c6cb41eb023e93d246ae\x03\x1f Merge pull request #14048 from Simonx22/android-instant-settings-saving', 'type': 'notification'}
2025-11-01T11:22:37.098823 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303J\ufeffosJuice\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
Recent 'pull_request_fifoci_status' events
2025-11-01T17:31:54.761928 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14062, 'type': 'pull_request_fifoci_status'}
2025-11-01T17:23:34.861094 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '60599f0f278db02dcb47022d178b9b0b056887ec', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14047, 'type': 'pull_request_fifoci_status'}
2025-11-01T17:08:30.112527 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '60599f0f278db02dcb47022d178b9b0b056887ec', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14047, 'type': 'pull_request_fifoci_status'}
2025-11-01T12:59:39.091638 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14016, 'type': 'pull_request_fifoci_status'}
2025-11-01T12:48:05.863240 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14016, 'type': 'pull_request_fifoci_status'}
2025-11-01T12:35:20.625188 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14016, 'type': 'pull_request_fifoci_status'}
2025-11-01T09:48:26.843592 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14016, 'type': 'pull_request_fifoci_status'}
2025-11-01T09:44:35.386229 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4ab2b24bd779c70655ed52040a18efa890486aa9', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14016, 'type': 'pull_request_fifoci_status'}
2025-11-01T08:26:32.533399 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-11-01T08:15:05.920406 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'fc7241dec373509773f02ec7a74bb7fb5908e817', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14058, 'type': 'pull_request_fifoci_status'}
2025-11-01T08:03:43.536549 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-11-01T07:51:05.262701 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-11-01T07:44:26.250848 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'fc7241dec373509773f02ec7a74bb7fb5908e817', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14058, 'type': 'pull_request_fifoci_status'}
2025-11-01T07:26:07.172812 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'fc7241dec373509773f02ec7a74bb7fb5908e817', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14058, 'type': 'pull_request_fifoci_status'}
2025-11-01T03:21:08.048631 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '5a3156d592b92eaae6bc5ab081f2c12ce86fcb88', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-11-01T03:07:37.999491 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '5a3156d592b92eaae6bc5ab081f2c12ce86fcb88', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-11-01T02:58:29.835443 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '5a3156d592b92eaae6bc5ab081f2c12ce86fcb88', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14061, 'type': 'pull_request_fifoci_status'}
2025-10-31T19:56:05.790106 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6728007cb4832c80745df73f980ccff53691368f', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14042, 'type': 'pull_request_fifoci_status'}
2025-10-31T19:43:26.870959 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14056, 'type': 'pull_request_fifoci_status'}
2025-10-31T19:30:47.530419 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6728007cb4832c80745df73f980ccff53691368f', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14042, 'type': 'pull_request_fifoci_status'}
2025-10-31T19:18:24.766631 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14056, 'type': 'pull_request_fifoci_status'}
2025-10-31T19:04:55.104943 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6728007cb4832c80745df73f980ccff53691368f', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14042, 'type': 'pull_request_fifoci_status'}
2025-10-31T18:54:59.529256 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '96711b89c324516b145906f01a7d814bb63134dc', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14056, 'type': 'pull_request_fifoci_status'}
2025-10-31T18:45:16.440914 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'e154754864f198387ed5017d8083c438f6f82826', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14042, 'type': 'pull_request_fifoci_status'}
2025-10-31T17:48:40.313711 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '781011c18a40307c02dd212a4ab4b2aa31c1f512', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14042, 'type': 'pull_request_fifoci_status'}
Recent 'raw_bb_hook' events
2025-11-01T17:37:10.053642 {'source': 'webserver', 'raw': {'buildid': 139581, 'number': 6845, 'builderid': 19, 'buildrequestid': 139741, 'workerid': 8, 'masterid': 1, 'started_at': 1762018591, 'complete_at': 1762018593, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed update (failure)', 'results': 2, 'properties': {'shortrev': ['baa26a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'branchname': ['pr-14061', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [6845, 'Build'], 'project': ['', 'Build'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mvk-osx-m1', 'Worker'], 'pr_id': [14061, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build']}, 'buildrequest': {'buildrequestid': 139741, 'buildsetid': 32362, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1762018591, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1762018591, 'complete_at': 1762018593, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32362, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1762018591, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 139571, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/6845'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:51.543458 {'source': 'webserver', 'raw': {'buildid': 139581, 'number': 6845, 'builderid': 19, 'buildrequestid': 139741, 'workerid': 8, 'masterid': 1, 'started_at': 1762018591, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['baa26a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14061', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [6845, 'Build'], 'project': ['', 'Build'], 'pr_id': [14061, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build']}, 'buildrequest': {'buildrequestid': 139741, 'buildsetid': 32362, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1762018591, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018591, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32362, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1762018591, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 139571, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/6845'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:33.899108 {'source': 'webserver', 'raw': {'buildid': 139582, 'number': 7980, 'builderid': 7, 'buildrequestid': 139707, 'workerid': 8, 'masterid': 1, 'started_at': 1762018593, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'codebase': ['', 'Build'], 'branchname': ['pr-14061', 'Change'], 'buildnumber': [7980, 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'branch': ['refs/pull/14061/head', 'Build'], 'project': ['', 'Build'], 'shortrev': ['1b9d05', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [14061, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [7, 'Builder'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139707, 'buildsetid': 32359, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1762018593, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/7980'}, 'type': 'raw_bb_hook'}
2025-11-01T17:36:31.495083 {'source': 'webserver', 'raw': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': 1762018591, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-osx-universal', 'Builder'], 'builderid': [7, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [7979, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-osx-universal', 'Worker'], 'got_revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 139695, 'buildsetid': 32358, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1762018294, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/7979'}, 'type': 'raw_bb_hook'}
2025-11-01T17:34:56.861746 {'source': 'webserver', 'raw': {'buildid': 139580, 'number': 7975, 'builderid': 11, 'buildrequestid': 139733, 'workerid': 1, 'masterid': 1, 'started_at': 1762018475, 'complete_at': 1762018496, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'pr_id': [14059, 'Change'], 'workername': ['freebsd', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'headrev': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Build'], 'project': ['', 'Build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'shortrev': ['57d748', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'got_revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'GitNoBranch'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14059/head', 'Build'], 'branchname': ['pr-14059', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7975, 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker']}, 'buildrequest': {'buildrequestid': 139733, 'buildsetid': 32361, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018475, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018474, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32361, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018474, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9686, 'branch': 'refs/pull/14059/head', 'revision': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018474, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7975'}, 'type': 'raw_bb_hook'}
2025-11-01T17:34:35.323023 {'source': 'webserver', 'raw': {'buildid': 139580, 'number': 7975, 'builderid': 11, 'buildrequestid': 139733, 'workerid': 1, 'masterid': 1, 'started_at': 1762018475, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'pr_id': [14059, 'Change'], 'workername': ['freebsd', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'Build'], 'project': ['', 'Build'], 'shortrev': ['57d748', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14059/head', 'Build'], 'branchname': ['pr-14059', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7975, 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139733, 'buildsetid': 32361, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018475, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018474, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32361, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018474, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9686, 'branch': 'refs/pull/14059/head', 'revision': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018474, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7975'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:56.935392 {'source': 'webserver', 'raw': {'buildid': 139560, 'number': 3114, 'builderid': 43, 'buildrequestid': 139686, 'workerid': 13, 'masterid': 1, 'started_at': 1762017952, 'complete_at': 1762018426, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14062/head', 'Build'], 'branchname': ['pr-14062', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Change'], 'shortrev': ['700ccc', 'Change'], 'builderid': [43, 'Builder'], 'buildnumber': [3114, 'Build'], 'pr_id': [14062, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Build'], 'workername': ['altair-flatpak', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker'], 'got_revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'GitNoBranch'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/6677', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 139686, 'buildsetid': 32355, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1762017952, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762017952, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32355, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762017952, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9682, 'branch': 'refs/pull/14062/head', 'revision': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762017952, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/3114'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:51.940499 {'source': 'webserver', 'raw': {'buildid': 139577, 'number': 7974, 'builderid': 11, 'buildrequestid': 139721, 'workerid': 1, 'masterid': 1, 'started_at': 1762018408, 'complete_at': 1762018431, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14062/head', 'Build'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'headrev': ['a912402967ed4fdd81a4de148ec2d35eedb74407', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['a912402967ed4fdd81a4de148ec2d35eedb74407', 'Build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [14062, 'Change'], 'workername': ['freebsd', 'Worker'], 'codebase': ['', 'Build'], 'branchname': ['pr-14062', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7974, 'Build'], 'project': ['', 'Build'], 'shortrev': ['a91240', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'got_revision': ['a912402967ed4fdd81a4de148ec2d35eedb74407', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 139721, 'buildsetid': 32360, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018408, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018408, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32360, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018408, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9685, 'branch': 'refs/pull/14062/head', 'revision': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018408, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7974'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:49.024383 {'source': 'webserver', 'raw': {'buildid': 139579, 'number': 3116, 'builderid': 43, 'buildrequestid': 139715, 'workerid': 13, 'masterid': 1, 'started_at': 1762018428, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'pr_id': [14061, 'Change'], 'workername': ['altair-flatpak', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [43, 'Builder'], 'buildnumber': [3116, 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['1b9d05', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'branch': ['refs/pull/14061/head', 'Build'], 'branchname': ['pr-14061', 'Change'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139715, 'buildsetid': 32359, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1762018428, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/3116'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:48.792701 {'source': 'webserver', 'raw': {'buildid': 139578, 'number': 3115, 'builderid': 43, 'buildrequestid': 139703, 'workerid': 13, 'masterid': 1, 'started_at': 1762018426, 'complete_at': 1762018428, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed update (failure)', 'results': 2, 'properties': {'buildnumber': [3115, 'Build'], 'project': ['', 'Build'], 'pr_id': [14061, 'Change'], 'builderid': [43, 'Builder'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker'], 'branchname': ['pr-14061', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'workername': ['altair-flatpak', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['baa26a', 'Change'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139703, 'buildsetid': 32358, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1762018426, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/3115'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:47.157518 {'source': 'webserver', 'raw': {'buildid': 139578, 'number': 3115, 'builderid': 43, 'buildrequestid': 139703, 'workerid': 13, 'masterid': 1, 'started_at': 1762018426, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'buildnumber': [3115, 'Build'], 'project': ['', 'Build'], 'pr_id': [14061, 'Change'], 'builderid': [43, 'Builder'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14061', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'workername': ['altair-flatpak', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['baa26a', 'Change'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139703, 'buildsetid': 32358, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1762018426, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/3115'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:29.054962 {'source': 'webserver', 'raw': {'buildid': 139577, 'number': 7974, 'builderid': 11, 'buildrequestid': 139721, 'workerid': 1, 'masterid': 1, 'started_at': 1762018408, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14062/head', 'Build'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'headrev': ['a912402967ed4fdd81a4de148ec2d35eedb74407', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['a912402967ed4fdd81a4de148ec2d35eedb74407', 'Build'], 'pr_id': [14062, 'Change'], 'workername': ['freebsd', 'Worker'], 'codebase': ['', 'Build'], 'branchname': ['pr-14062', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7974, 'Build'], 'project': ['', 'Build'], 'shortrev': ['a91240', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139721, 'buildsetid': 32360, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018408, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018408, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32360, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018408, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9685, 'branch': 'refs/pull/14062/head', 'revision': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018408, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7974'}, 'type': 'raw_bb_hook'}
2025-11-01T17:33:04.786524 {'source': 'webserver', 'raw': {'buildid': 139576, 'number': 7973, 'builderid': 11, 'buildrequestid': 139709, 'workerid': 1, 'masterid': 1, 'started_at': 1762018364, 'complete_at': 1762018384, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['1b9d05', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'branchname': ['pr-14061', 'Change'], 'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'got_revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'GitNoBranch'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7973, 'Build'], 'project': ['', 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'pr_id': [14061, 'Change'], 'workername': ['freebsd', 'Worker'], 'codebase': ['', 'Build'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 139709, 'buildsetid': 32359, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018364, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7973'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:45.045225 {'source': 'webserver', 'raw': {'buildid': 139576, 'number': 7973, 'builderid': 11, 'buildrequestid': 139709, 'workerid': 1, 'masterid': 1, 'started_at': 1762018364, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['1b9d05', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14061/head', 'Build'], 'branchname': ['pr-14061', 'Change'], 'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [7973, 'Build'], 'project': ['', 'Build'], 'pr_id': [14061, 'Change'], 'workername': ['freebsd', 'Worker'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139709, 'buildsetid': 32359, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018364, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7973'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:44.883253 {'source': 'webserver', 'raw': {'buildid': 139569, 'number': 7972, 'builderid': 11, 'buildrequestid': 139697, 'workerid': 1, 'masterid': 1, 'started_at': 1762018242, 'complete_at': 1762018364, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'builderid': [11, 'Builder'], 'workername': ['freebsd', 'Worker'], 'buildnumber': [7972, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'got_revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 139697, 'buildsetid': 32358, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1762018242, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/7972'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:35.951110 {'source': 'webserver', 'raw': {'buildid': 139567, 'number': 7973, 'builderid': 1, 'buildrequestid': 139676, 'workerid': 9, 'masterid': 1, 'started_at': 1762018132, 'complete_at': 1762018335, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'headrev': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Change'], 'branchname': ['pr-14062', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14062/head', 'Build'], 'shortrev': ['700ccc', 'Change'], 'pr_id': [14062, 'Change'], 'revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Build'], 'project': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'repository': ['', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'builderid': [1, 'Builder'], 'buildnumber': [7973, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'got_revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'GitNoBranch'], 'warnings-count': [2, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 139676, 'buildsetid': 32355, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1762018132, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762017952, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32355, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762017952, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9682, 'branch': 'refs/pull/14062/head', 'revision': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762017952, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/7973'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:17.009772 {'source': 'webserver', 'raw': {'buildid': 139575, 'number': 7971, 'builderid': 26, 'buildrequestid': 139712, 'workerid': 9, 'masterid': 1, 'started_at': 1762018336, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'pr_id': [14061, 'Change'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branchname': ['pr-14061', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['1b9d05', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [26, 'Builder'], 'buildnumber': [7971, 'Build'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139712, 'buildsetid': 32359, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1762018336, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/7971'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:16.828194 {'source': 'webserver', 'raw': {'buildid': 139574, 'number': 7970, 'builderid': 26, 'buildrequestid': 139700, 'workerid': 9, 'masterid': 1, 'started_at': 1762018335, 'complete_at': 1762018336, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed update (failure)', 'results': 2, 'properties': {'pr_id': [14061, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [26, 'Builder'], 'buildnumber': [7970, 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['baa26a', 'Change'], 'workername': ['debian', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14061', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 139700, 'buildsetid': 32358, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1762018335, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/7970'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:15.704240 {'source': 'webserver', 'raw': {'buildid': 139574, 'number': 7970, 'builderid': 26, 'buildrequestid': 139700, 'workerid': 9, 'masterid': 1, 'started_at': 1762018335, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'pr_id': [14061, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [26, 'Builder'], 'buildnumber': [7970, 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'codebase': ['', 'Build'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['baa26a', 'Change'], 'workername': ['debian', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14061', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139700, 'buildsetid': 32358, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1762018335, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/7970'}, 'type': 'raw_bb_hook'}
2025-11-01T17:32:02.417331 {'source': 'webserver', 'raw': {'buildid': 139559, 'number': 3059, 'builderid': 44, 'buildrequestid': 139687, 'workerid': 14, 'masterid': 1, 'started_at': 1762017952, 'complete_at': 1762018314, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'workername': ['deneb-flatpak', 'Worker'], 'codebase': ['', 'Build'], 'branchname': ['pr-14062', 'Change'], 'branch': ['refs/pull/14062/head', 'Build'], 'headrev': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Change'], 'shortrev': ['700ccc', 'Change'], 'pr_id': [14062, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'builderid': [44, 'Builder'], 'revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Build'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'buildnumber': [3059, 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker'], 'got_revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'GitNoBranch'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/6676', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 139687, 'buildsetid': 32355, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1762017952, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762017952, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32355, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762017952, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9682, 'branch': 'refs/pull/14062/head', 'revision': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762017952, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/3059'}, 'type': 'raw_bb_hook'}
2025-11-01T17:31:56.218957 {'source': 'webserver', 'raw': {'buildid': 139573, 'number': 3061, 'builderid': 44, 'buildrequestid': 139716, 'workerid': 14, 'masterid': 1, 'started_at': 1762018315, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'shortrev': ['1b9d05', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [44, 'Builder'], 'codebase': ['', 'Build'], 'headrev': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Change'], 'pr_id': [14061, 'Change'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'revision': ['1b9d0508c80347395af57dcb3a3b66b4798be21d', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr', 'Scheduler'], 'project': ['', 'Build'], 'buildnumber': [3061, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 139716, 'buildsetid': 32359, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1762018315, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018311, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32359, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018311, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9684, 'branch': 'refs/pull/14061/head', 'revision': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018311, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/3061'}, 'type': 'raw_bb_hook'}
2025-11-01T17:31:56.001499 {'source': 'webserver', 'raw': {'buildid': 139572, 'number': 3060, 'builderid': 44, 'buildrequestid': 139704, 'workerid': 14, 'masterid': 1, 'started_at': 1762018314, 'complete_at': 1762018315, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed update (failure)', 'results': 2, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'builderid': [44, 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [3060, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker']}, 'buildrequest': {'buildrequestid': 139704, 'buildsetid': 32358, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1762018314, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/3060'}, 'type': 'raw_bb_hook'}
2025-11-01T17:31:54.767258 {'source': 'webserver', 'raw': {'buildid': 139572, 'number': 3060, 'builderid': 44, 'buildrequestid': 139704, 'workerid': 14, 'masterid': 1, 'started_at': 1762018314, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'builderid': [44, 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [3060, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 139704, 'buildsetid': 32358, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1762018314, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/3060'}, 'type': 'raw_bb_hook'}
2025-11-01T17:31:53.600370 {'source': 'webserver', 'raw': {'buildid': 139566, 'number': 6844, 'builderid': 19, 'buildrequestid': 139688, 'workerid': 8, 'masterid': 1, 'started_at': 1762018121, 'complete_at': 1762018294, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14062', 'Trigger'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Trigger'], 'shortrev': ['700ccc', 'Trigger'], 'pr_id': [14062, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'builderid': [19, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [6844, 'Build'], 'branch': ['refs/pull/14062/head', 'Build'], 'revision': ['700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Simonx22)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mvk-osx-m1', 'Worker'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [17, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 139688, 'buildsetid': 32356, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1762018121, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018121, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32356, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1762018121, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 139562, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9682, 'branch': 'refs/pull/14062/head', 'revision': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762017952, 'patch': None}]}, 'parentbuild': {'buildid': 139562, 'number': 7978, 'builderid': 7, 'buildrequestid': 139678, 'workerid': 8, 'masterid': 1, 'started_at': 1762017952, 'complete_at': 1762018121, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/6844'}, 'type': 'raw_bb_hook'}
2025-11-01T17:31:34.689315 {'source': 'webserver', 'raw': {'buildid': 139571, 'number': 7979, 'builderid': 7, 'buildrequestid': 139695, 'workerid': 8, 'masterid': 1, 'started_at': 1762018294, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14061', 'Change'], 'baserev': ['249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'Change'], 'headrev': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Change'], 'shortrev': ['baa26a', 'Change'], 'pr_id': [14061, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-osx-universal', 'Builder'], 'builderid': [7, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [7979, 'Build'], 'branch': ['refs/pull/14061/head', 'Build'], 'revision': ['baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 139695, 'buildsetid': 32358, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1762018294, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1762018242, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 32358, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1762018242, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 9683, 'branch': 'refs/pull/14061/head', 'revision': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1762018242, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/7/builds/7979'}, 'type': 'raw_bb_hook'}
Recent 'raw_gh_hook' events
2025-11-01T17:34:28.506271 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14059, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'id': 2965602579, 'node_id': 'PR_kwDOALCn2M6ww4ET', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059', 'number': 14059, 'state': 'open', 'locked': False, 'title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'created_at': '2025-10-31T06:53:53Z', 'updated_at': '2025-11-01T17:34:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ffadbadd09caae32ad4e1e5aa8a4f89095f80983', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'head': {'label': 'jordan-woyak:state-nand-cleanup', 'ref': 'state-nand-cleanup', 'sha': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T17:34:25Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 2, 'maintainer_can_modify': True, 'commits': 1, 'additions': 17, 'deletions': 21, 'changed_files': 1}, 'before': '6efecce200ffe47da9feedce32aab878bf742a68', 'after': '57d7485ea6df23bcd07bf1ab7cd6c6ffb50f1114', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:33:22.258712 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14062, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062', 'id': 2969542242, 'node_id': 'PR_kwDOALCn2M6w_55i', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14062', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14062.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14062.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062', 'number': 14062, 'state': 'open', 'locked': False, 'title': 'macOS: UI fixes for dark mode', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Before:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/527ef075-7e01-4e0c-825a-27f165d71ecd\r\n\r\n\r\n\r\nAfter:\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/ba29c18d-e413-4372-bd59-05fa6a90218e\r\n\r\n\r\n', 'created_at': '2025-11-01T17:25:43Z', 'updated_at': '2025-11-01T17:33:19Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'a809d2429d025719dfada3d1a481f43bfecc1b9e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a912402967ed4fdd81a4de148ec2d35eedb74407', 'head': {'label': 'Simonx22:macos-design-fixes', 'ref': 'macos-design-fixes', 'sha': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T17:33:18Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14062'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a912402967ed4fdd81a4de148ec2d35eedb74407'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 104, 'deletions': 28, 'changed_files': 2}, 'before': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'after': 'a912402967ed4fdd81a4de148ec2d35eedb74407', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:31:45.765344 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14061, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:31:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'cfec5a50b09a8a56d3a061ccd63d76f3dd19797e', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/1b9d0508c80347395af57dcb3a3b66b4798be21d', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T17:31:43Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/1b9d0508c80347395af57dcb3a3b66b4798be21d'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 4, 'maintainer_can_modify': True, 'commits': 3, 'additions': 189, 'deletions': 42, 'changed_files': 8}, 'before': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'after': '1b9d0508c80347395af57dcb3a3b66b4798be21d', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:30:36.211916 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14061, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:30:34Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T17:30:33Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/baa26a97cae7c8c20abcba55e6eba112deb1d1b7'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 4, 'maintainer_can_modify': True, 'commits': 3, 'additions': 189, 'deletions': 42, 'changed_files': 8}, 'before': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'after': 'baa26a97cae7c8c20abcba55e6eba112deb1d1b7', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:26:08.008477 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'review_requested', 'number': 14047, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'id': 2960554926, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'number': 14047, 'state': 'open', 'locked': False, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\n\r\nhttps://github.com/user-attachments/assets/e7a9d70a-04ff-4cc1-ad37-243c8d2003c9\r\n\r\n\r\n', 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-11-01T17:26:06Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '7fba203e776b23dbb77841257a363a5a28f4a44c', 'assignee': None, 'assignees': [], 'requested_reviewers': [{'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec', 'head': {'label': 'Simonx22:reset-all-dolphin-settings-android', 'ref': 'reset-all-dolphin-settings-android', 'sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T17:13:37Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 2, 'review_comments': 2, 'maintainer_can_modify': True, 'commits': 1, 'additions': 102, 'deletions': 4, 'changed_files': 7}, 'requested_reviewer': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:25:46.096516 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14062, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062', 'id': 2969542242, 'node_id': 'PR_kwDOALCn2M6w_55i', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14062', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14062.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14062.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062', 'number': 14062, 'state': 'open', 'locked': False, 'title': 'macOS: UI fixes for dark mode', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Before:\r\n\r\n\r\nhttps://github.com/user-attachments/assets/527ef075-7e01-4e0c-825a-27f165d71ecd\r\n\r\n\r\n\r\nAfter:\r\n\r\n\r\n\r\nhttps://github.com/user-attachments/assets/ba29c18d-e413-4372-bd59-05fa6a90218e\r\n\r\n\r\n', 'created_at': '2025-11-01T17:25:43Z', 'updated_at': '2025-11-01T17:25:43Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'head': {'label': 'Simonx22:macos-design-fixes', 'ref': 'macos-design-fixes', 'sha': '700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T17:13:37Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14062'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14062/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14062/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/700ccc90d7fb05f08dd2bbb7c8fba82a35a6bd99'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 106, 'deletions': 28, 'changed_files': 2}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:17:52.418865 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241', 'pull_request_review_id': 3407605708, 'id': 2483804241, 'node_id': 'PRRC_kwDOALCn2M6UC9hR', 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;\n+\n+ bool worker_done = false;\n+\n+ static constexpr auto SLEEP_TIME = std::chrono::microseconds{1};\n+\n+ // lock() on main thread, unlock() on worker thread.\n+ std::thread thread{[&, lk = std::unique_lock{work_mtx}] {\n+ std::this_thread::sleep_for(SLEEP_TIME);\n+ worker_done = true;\n+ }};\n+\n+ // lock() waits for the thread to unlock().\n+ if (std::lock_guard lk{work_mtx}; true)\n+ EXPECT_TRUE(worker_done);', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "It's not something you could get used to? :( :P", 'created_at': '2025-11-01T17:17:50Z', 'updated_at': '2025-11-01T17:17:50Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483804241', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483804241'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483804241/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': 28, 'original_start_line': 28, 'start_side': 'RIGHT', 'line': 29, 'original_line': 29, 'side': 'RIGHT', 'in_reply_to_id': 2483773782, 'author_association': 'MEMBER', 'original_position': 29, 'position': 29, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:17:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:17:52.417696 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407605708, 'node_id': 'PRR_kwDOALCn2M7LG-_M', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'submitted_at': '2025-11-01T17:17:50Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407605708', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407605708'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'updated_at': '2025-11-01T17:17:50Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:17:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:07:18.182734 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778', 'pull_request_review_id': 3407602468, 'id': 2483800778, 'node_id': 'PRRC_kwDOALCn2M6UC8rK', 'diff_hunk': "@@ -35,80 +35,69 @@ template <typename T>\n class Info\n {\n public:\n- constexpr Info(const Location& location, const T& default_value)\n- : m_location{location}, m_default_value{default_value}, m_cached_value{default_value, 0}\n+ constexpr Info(Location location, T default_value)\n+ : m_location{std::move(location)}, m_default_value{default_value},\n+ m_cached_value{std::move(default_value), 0}\n {\n }\n \n- Info(const Info<T>& other) { *this = other; }\n-\n- // Not thread-safe\n- Info(Info<T>&& other) { *this = std::move(other); }\n-\n- // Make it easy to convert Info<Enum> into Info<UnderlyingType<Enum>>\n- // so that enum settings can still easily work with code that doesn't care about the enum values.\n- template <Common::TypedEnum<T> Enum>\n- Info(const Info<Enum>& other)\n+ Info(const Info<T>& other)\n+ : m_location{other.m_location}, m_default_value{other.m_default_value},\n+ m_cached_value(other.GetCachedValue())\n {\n- *this = other;\n }\n \n- Info<T>& operator=(const Info<T>& other)\n+ Info(Info&& other)\n+ : m_location{std::move(other.m_location)}, m_default_value{std::move(other.m_location)},\n+ m_cached_value(other.GetCachedValue())\n {\n- m_location = other.GetLocation();\n- m_default_value = other.GetDefaultValue();\n- m_cached_value = other.GetCachedValue();\n- return *this;\n- }\n-\n- // Not thread-safe\n- Info<T>& operator=(Info<T>&& other)\n- {\n- m_location = std::move(other.m_location);\n- m_default_value = std::move(other.m_default_value);\n- m_cached_value = std::move(other.m_cached_value);\n- return *this;\n }\n \n // Make it easy to convert Info<Enum> into Info<UnderlyingType<Enum>>\n // so that enum settings can still easily work with code that doesn't care about the enum values.\n template <Common::TypedEnum<T> Enum>\n- Info<T>& operator=(const Info<Enum>& other)\n+ Info(const Info<Enum>& other)\n+ : m_location{other.GetLocation()}, m_default_value{static_cast<T>(other.GetDefaultValue())},\n+ m_cached_value(other.template GetCachedValueCasted<T>())\n {\n- m_location = other.GetLocation();\n- m_default_value = static_cast<T>(other.GetDefaultValue());\n- m_cached_value = other.template GetCachedValueCasted<T>();\n- return *this;\n }\n \n+ ~Info() = default;\n+\n+ // Assignments after construction would require more locking to be thread safe.\n+ // It seems unnecessary to have this functionality anyways.\n+ Info& operator=(const Info&) = delete;\n+ Info& operator=(Info&&) = delete;\n+\n constexpr const Location& GetLocation() const { return m_location; }\n constexpr const T& GetDefaultValue() const { return m_default_value; }\n \n CachedValue<T> GetCachedValue() const\n {\n- std::shared_lock lock(m_cached_value_mutex);\n+ std::lock_guard lk{m_cached_value_mutex};\n return m_cached_value;\n }\n \n template <typename U>\n CachedValue<U> GetCachedValueCasted() const\n {\n- std::shared_lock lock(m_cached_value_mutex);\n- return CachedValue<U>{static_cast<U>(m_cached_value.value), m_cached_value.config_version};\n+ std::lock_guard lk{m_cached_value_mutex};\n+ return {static_cast<U>(m_cached_value.value), m_cached_value.config_version};\n }\n \n- void SetCachedValue(const CachedValue<T>& cached_value) const\n+ // Only updates if the provided config_version is newer.\n+ void TryToSetCachedValue(CachedValue<T> new_value) const\n {\n- std::unique_lock lock(m_cached_value_mutex);\n- if (m_cached_value.config_version < cached_value.config_version)\n- m_cached_value = cached_value;\n+ std::lock_guard lk{m_cached_value_mutex};\n+ if (new_value.config_version > m_cached_value.config_version)\n+ m_cached_value = new_value;\n }\n \n private:\n Location m_location;\n T m_default_value;\n \n mutable CachedValue<T> m_cached_value;\n- mutable std::shared_mutex m_cached_value_mutex;\n+ mutable Common::SpinMutex m_cached_value_mutex;", 'path': 'Source/Core/Common/Config/ConfigInfo.h', 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Please add a comment about why you're using a spin mutex here. (You've explained it in the PR description and commit message, but most people reading the code won't look at those.)", 'created_at': '2025-11-01T17:07:16Z', 'updated_at': '2025-11-01T17:07:16Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483800778', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483800778'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483800778/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': 101, 'original_line': 101, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 120, 'position': 120, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:07:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T17:07:18.181343 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407602468, 'node_id': 'PRR_kwDOALCn2M7LG-Mk', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'submitted_at': '2025-11-01T17:07:16Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407602468', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407602468'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'updated_at': '2025-11-01T17:07:16Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T17:07:16Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:57:29.041267 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455', 'pull_request_review_id': 3407599523, 'id': 2483797455, 'node_id': 'PRRC_kwDOALCn2M6UC73P', 'diff_hunk': '@@ -73,18 +81,41 @@ class UserDataActivity : AppCompatActivity() {\n \n mBinding.buttonExportUserData.setOnClickListener { exportUserData() }\n \n+ mBinding.buttonResetSettings?.setOnClickListener { confirmResetSettings() }\n+\n setSupportActionBar(mBinding.toolbarUserData)\n supportActionBar!!.setDisplayHomeAsUpEnabled(true)\n \n setInsets()\n enableScrollTint(this, mBinding.toolbarUserData, mBinding.appbarUserData)\n+\n+ if (intent.getBooleanExtra(EXTRA_PENDING_ANALYTICS, false)) {\n+ intent.putExtra(EXTRA_PENDING_ANALYTICS, false)', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/UserDataActivity.kt', 'commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'original_commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Makes sense, should be addressed now', 'created_at': '2025-11-01T16:57:27Z', 'updated_at': '2025-11-01T16:57:27Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483797455', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047#discussion_r2483797455'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483797455/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': None, 'original_line': 93, 'side': 'RIGHT', 'in_reply_to_id': 2483254718, 'author_association': 'MEMBER', 'original_position': 50, 'position': 1, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'id': 2960554926, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'number': 14047, 'state': 'open', 'locked': False, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\n\r\nhttps://github.com/user-attachments/assets/e7a9d70a-04ff-4cc1-ad37-243c8d2003c9\r\n\r\n\r\n', 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-11-01T16:57:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1ab7f46be1db4ec6031a22e67ea4d5cad32dfc63', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec', 'head': {'label': 'Simonx22:reset-all-dolphin-settings-android', 'ref': 'reset-all-dolphin-settings-android', 'sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T16:57:25Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:57:28.984228 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407599523, 'node_id': 'PRR_kwDOALCn2M7LG9ej', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'submitted_at': '2025-11-01T16:57:27Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047#pullrequestreview-3407599523', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047#pullrequestreview-3407599523'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}}, 'updated_at': '2025-11-01T16:57:27Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'id': 2960554926, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'number': 14047, 'state': 'open', 'locked': False, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\n\r\nhttps://github.com/user-attachments/assets/e7a9d70a-04ff-4cc1-ad37-243c8d2003c9\r\n\r\n\r\n', 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-11-01T16:57:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1ab7f46be1db4ec6031a22e67ea4d5cad32dfc63', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec', 'head': {'label': 'Simonx22:reset-all-dolphin-settings-android', 'ref': 'reset-all-dolphin-settings-android', 'sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T16:57:25Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:57:28.124024 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14047, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047', 'id': 2960554926, 'node_id': 'PR_kwDOALCn2M6wdnuu', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14047', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14047.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047', 'number': 14047, 'state': 'open', 'locked': False, 'title': 'Android: Add Reset Dolphin Settings functionality', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Ports the desktop “Reset Dolphin Settings” feature (https://github.com/dolphin-emu/dolphin/pull/13866) to Android. \r\n\r\n\r\nhttps://github.com/user-attachments/assets/e7a9d70a-04ff-4cc1-ad37-243c8d2003c9\r\n\r\n\r\n', 'created_at': '2025-10-29T20:19:36Z', 'updated_at': '2025-11-01T16:57:26Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '1ab7f46be1db4ec6031a22e67ea4d5cad32dfc63', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec', 'head': {'label': 'Simonx22:reset-all-dolphin-settings-android', 'ref': 'reset-all-dolphin-settings-android', 'sha': '60599f0f278db02dcb47022d178b9b0b056887ec', 'user': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 220410611, 'node_id': 'MDEwOlJlcG9zaXRvcnkyMjA0MTA2MTE=', 'name': 'dolphin', 'full_name': 'Simonx22/dolphin', 'private': False, 'owner': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Simonx22/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/Simonx22/dolphin', 'forks_url': 'https://api.github.com/repos/Simonx22/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Simonx22/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Simonx22/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Simonx22/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Simonx22/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Simonx22/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Simonx22/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Simonx22/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Simonx22/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Simonx22/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Simonx22/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Simonx22/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Simonx22/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Simonx22/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Simonx22/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Simonx22/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Simonx22/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Simonx22/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Simonx22/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Simonx22/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Simonx22/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Simonx22/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Simonx22/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Simonx22/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Simonx22/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Simonx22/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Simonx22/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Simonx22/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Simonx22/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Simonx22/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Simonx22/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Simonx22/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Simonx22/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Simonx22/dolphin/deployments', 'created_at': '2019-11-08T07:26:30Z', 'updated_at': '2025-11-01T12:08:30Z', 'pushed_at': '2025-11-01T16:57:25Z', 'git_url': 'git://github.com/Simonx22/dolphin.git', 'ssh_url': 'git@github.com:Simonx22/dolphin.git', 'clone_url': 'https://github.com/Simonx22/dolphin.git', 'svn_url': 'https://github.com/Simonx22/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 501490, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '249f999c6a11aef91c5541b5f1736cb1df7ea0b5', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14047'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14047/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14047/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/60599f0f278db02dcb47022d178b9b0b056887ec'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 2, 'review_comments': 2, 'maintainer_can_modify': True, 'commits': 1, 'additions': 102, 'deletions': 4, 'changed_files': 7}, 'before': 'ee20e727de86d5dfe7c48dd2be8f19796baedc08', 'after': '60599f0f278db02dcb47022d178b9b0b056887ec', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T16:52:51Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14223, 'watchers_count': 14223, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14223, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Simonx22', 'id': 26326692, 'node_id': 'MDQ6VXNlcjI2MzI2Njky', 'avatar_url': 'https://avatars.githubusercontent.com/u/26326692?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Simonx22', 'html_url': 'https://github.com/Simonx22', 'followers_url': 'https://api.github.com/users/Simonx22/followers', 'following_url': 'https://api.github.com/users/Simonx22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Simonx22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Simonx22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Simonx22/subscriptions', 'organizations_url': 'https://api.github.com/users/Simonx22/orgs', 'repos_url': 'https://api.github.com/users/Simonx22/repos', 'events_url': 'https://api.github.com/users/Simonx22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Simonx22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:43:15.631080 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'id': 3572862008, 'node_id': 'PR_kwDOALCn2M6wuhHO', 'number': 14056, 'title': 'Core/DiscIO: Add a setting to load games into memory.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [{'id': 221808232, 'node_id': 'MDU6TGFiZWwyMjE4MDgyMzI=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/WIP%20/%20do%20not%20merge', 'name': 'WIP / do not merge', 'color': '0052cc', 'default': False, 'description': 'Work in progress (do not merge)'}], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-10-30T23:50:55Z', 'updated_at': '2025-11-01T16:43:13Z', 'closed_at': None, 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14056', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14056.patch', 'merged_at': None}, 'body': 'Addresses https://bugs.dolphin-emu.org/issues/11876\r\n\r\n<img width="419" height="287" alt="image" src="https://github.com/user-attachments/assets/fc84d31a-0df6-44a1-9f9f-ebdc90d4f932" />\r\n\r\nThis is based on #14052 because it requires `BlobReader::CopyReader` results to be thread safe.\r\n\r\n`DiscScrubber` and `LazyMemoryRegion` are used to only cache non-scrubbed regions.\r\nUncached reads appropriately fall back to a normal read.\r\n\r\nNote that installed wiiware is not loaded into memory by this setting. It would probably make sense to just put the whole NAND into memory to accomplish that.\r\n\r\nI\'m certainly open to different naming and wording for the setting.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476548564', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14056#issuecomment-3476548564', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14056', 'id': 3476548564, 'node_id': 'IC_kwDOALCn2M7PN-vU', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T16:43:13Z', 'updated_at': '2025-11-01T16:43:13Z', 'body': "I was going to point the same thing @JosJuice mentioned. We don't run WADs directly from file since (at least) Dolphin 5.0 stable. WADs always get installed to the NAND and then run from the NAND if you boot one directly. In other words, WAD caching won't accomplish anything...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476548564/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:13:37.320128 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857', 'pull_request_review_id': 3407578556, 'id': 2483772857, 'node_id': 'PRRC_kwDOALCn2M6UC125', 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n MutexType work_mutex;\r\n```\r\n\r\nSame for `done_mtx`.', 'created_at': '2025-11-01T15:48:37Z', 'updated_at': '2025-11-01T16:13:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483772857', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483772857'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483772857/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': 15, 'original_line': 15, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 15, 'position': 15, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T16:13:34Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:13:36.134056 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782', 'pull_request_review_id': 3407578556, 'id': 2483773782, 'node_id': 'PRRC_kwDOALCn2M6UC2FW', 'diff_hunk': '@@ -0,0 +1,85 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <gtest/gtest.h>\n+\n+#include <algorithm>\n+#include <mutex>\n+#include <thread>\n+\n+#include "Common/Mutex.h"\n+\n+template <typename MutexType>\n+static void DoAtomicMutexTest()\n+{\n+ MutexType work_mtx;\n+\n+ bool worker_done = false;\n+\n+ static constexpr auto SLEEP_TIME = std::chrono::microseconds{1};\n+\n+ // lock() on main thread, unlock() on worker thread.\n+ std::thread thread{[&, lk = std::unique_lock{work_mtx}] {\n+ std::this_thread::sleep_for(SLEEP_TIME);\n+ worker_done = true;\n+ }};\n+\n+ // lock() waits for the thread to unlock().\n+ if (std::lock_guard lk{work_mtx}; true)\n+ EXPECT_TRUE(worker_done);', 'path': 'Source/UnitTests/Common/MutexTest.cpp', 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'original_commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This is a construction I'm not used to. Could it instead be expressed in this easier-to-understand way?\r\n\r\n```suggestion\r\n {\r\n std::lock_guard lk{work_mtx};\r\n EXPECT_TRUE(worker_done);\r\n }\r\n```", 'created_at': '2025-11-01T15:51:07Z', 'updated_at': '2025-11-01T16:13:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483773782', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#discussion_r2483773782'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483773782/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': 28, 'original_start_line': 28, 'start_side': 'RIGHT', 'line': 29, 'original_line': 29, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 29, 'position': 29, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T16:13:34Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T16:13:36.130626 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407578556, 'node_id': 'PRR_kwDOALCn2M7LG4W8', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'submitted_at': '2025-11-01T16:13:34Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407578556', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061#pullrequestreview-3407578556'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}}, 'updated_at': '2025-11-01T16:13:34Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061', 'id': 2968613599, 'node_id': 'PR_kwDOALCn2M6w8XLf', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14061', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14061.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061', 'number': 14061, 'state': 'open', 'locked': False, 'title': 'ConfigInfo: Cleanups and change mutex to a spin lock.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Added `Common::AtomicMutex` and `Common::SpinMutex`.\r\nThey share an implementation except `AtomicMutex` uses atomic wait/notify functionality, which makes `unlock` a bit slower.\r\n\r\n`ConfigInfo`\r\n - Removed the never-used thread-unsafe assignment operators.\r\n - Renamed `SetCachedValue` to `TryToSetCachedValue` since it only "sets" if the config version is newer.\r\n - Changed `std::shared_mutex` to a the new `Common::SpinMutex`.\r\n\r\nIn my testing, `ConfigInfo::GetCachedValue` literally never contests the mutex, even in DualCore mode while changing settings. I\'m guessing because it\'s very fast and because each setting is mostly relevant to just one particular thread.\r\n\r\nAnd here\'s some real rough measurements of uncontested lock/unlock times (on Linux):\r\n>std::shared_mutex lock_guard lock/unlock: 5.482 ns\r\nstd::shared_mutex shared_lock lock/unlock: 5.498 ns (was being used)\r\nstd::mutex lock/unlock: 5.447 ns\r\nCommon::AtomicMutex lock/unlock: 3.568 ns\r\nCommon::SpinMutex lock/unlock: 1.749 ns (now being used)\r\n\r\nAnd based on all that, this PR should make `Config::Get` ~3 times faster.', 'created_at': '2025-11-01T02:27:53Z', 'updated_at': '2025-11-01T16:13:34Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '40a47f684eba0740f238db1a9853f80481eb624a', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'head': {'label': 'jordan-woyak:config-info-spin-mutex', 'ref': 'config-info-spin-mutex', 'sha': 'f96c8513a4485fc3e5e2a82f3db28cf916eea560', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14061'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14061/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14061/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f96c8513a4485fc3e5e2a82f3db28cf916eea560'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T15:20:12.639403 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824', 'pull_request_review_id': 3407552453, 'id': 2483742824, 'node_id': 'PRRC_kwDOALCn2M6UCuho', 'diff_hunk': '@@ -3,113 +3,138 @@\n \n #pragma once\n \n-#include "Common/Logging/Log.h"\n-#include "Common/StringLiteral.h"\n-\n #include <functional>\n #include <memory>\n #include <mutex>\n-#include <string>\n #include <string_view>\n #include <vector>\n \n+#if defined(_DEBUG)\n+#include <string>\n+\n+#include "Common/Logging/Log.h"\n+#endif\n+\n namespace Common\n {\n struct HookBase\n {\n- virtual ~HookBase() = default;\n-\n-protected:\n- HookBase() = default;\n-\n- // This shouldn\'t be copied. And since we always wrap it in unique_ptr, no need to move it either\n- HookBase(const HookBase&) = delete;\n- HookBase(HookBase&&) = delete;\n- HookBase& operator=(const HookBase&) = delete;\n- HookBase& operator=(HookBase&&) = delete;\n+ // Prevent slicing/copying/moving.\n+ virtual ~HookBase() = 0;', 'path': 'Source/Core/Common/HookableEvent.h', 'commit_id': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'original_commit_id': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Unless something changed in a recent C++ standards update, declaring a destructor only automatically prevents moving, not copying.', 'created_at': '2025-11-01T14:19:37Z', 'updated_at': '2025-11-01T15:20:10Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626#discussion_r2483742824', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13626#discussion_r2483742824'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483742824/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': 23, 'original_line': 23, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 35, 'position': 35, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', 'id': 2496768721, 'node_id': 'PR_kwDOALCn2M6U0arR', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'number': 13626, 'state': 'open', 'locked': False, 'title': 'Common: Make HookableEvent use non-static data.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This makes `Common::HookableEvent` into a normal object rather than each event being a unique type with static storage.\r\n\r\nThe video events for now exist inside a struct accessible from `System::GetVideoEvents()`.\r\nI\'ve also, for now, added a global `GetVideoEvents()` function for places that don\'t have a system reference readily available.\r\nI\'m open to suggestions on doing it differently.\r\n\r\n`Register` and `Trigger` calls are unfortunately much more verbose, but that\'s how removing globals goes.\r\n\r\nIn future PRs I plan to rectify all of our duplicate "callback" implementations, replacing them with `HookableEvent`.\r\n`HookableEvent`\'s `EventHook` handle has automatic callback removal on destruction, which these others do not.\r\ne.g. `ControllerInterface::RegisterDevicesChangedCallback`, `Config::AddConfigChangedCallback`, `Core::AddOnStateChangedCallback`, are there more?\r\n\r\nI\'m also thinking there might be some future situations more cleanly implemented with additional `HookableEvent`s rather than having unrelated subsystems talk to each other.', 'created_at': '2025-05-03T09:01:37Z', 'updated_at': '2025-11-01T15:20:10Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '00298ad0f333b01c8f7ba87567c90a2aa70620c9', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ec9d7d671016b1e7aa30128854aff275139128a2', 'head': {'label': 'jordan-woyak:non-global-hookable-event', 'ref': 'non-global-hookable-event', 'sha': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'd065f1ae1228203b354c35ca853f36fa45a59c43', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13626'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ec9d7d671016b1e7aa30128854aff275139128a2'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T15:20:12.592223 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407552453, 'node_id': 'PRR_kwDOALCn2M7LGx_F', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'submitted_at': '2025-11-01T15:20:10Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626#pullrequestreview-3407552453', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13626#pullrequestreview-3407552453'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626'}}, 'updated_at': '2025-11-01T15:20:10Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626', 'id': 2496768721, 'node_id': 'PR_kwDOALCn2M6U0arR', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13626', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13626.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626', 'number': 13626, 'state': 'open', 'locked': False, 'title': 'Common: Make HookableEvent use non-static data.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This makes `Common::HookableEvent` into a normal object rather than each event being a unique type with static storage.\r\n\r\nThe video events for now exist inside a struct accessible from `System::GetVideoEvents()`.\r\nI\'ve also, for now, added a global `GetVideoEvents()` function for places that don\'t have a system reference readily available.\r\nI\'m open to suggestions on doing it differently.\r\n\r\n`Register` and `Trigger` calls are unfortunately much more verbose, but that\'s how removing globals goes.\r\n\r\nIn future PRs I plan to rectify all of our duplicate "callback" implementations, replacing them with `HookableEvent`.\r\n`HookableEvent`\'s `EventHook` handle has automatic callback removal on destruction, which these others do not.\r\ne.g. `ControllerInterface::RegisterDevicesChangedCallback`, `Config::AddConfigChangedCallback`, `Core::AddOnStateChangedCallback`, are there more?\r\n\r\nI\'m also thinking there might be some future situations more cleanly implemented with additional `HookableEvent`s rather than having unrelated subsystems talk to each other.', 'created_at': '2025-05-03T09:01:37Z', 'updated_at': '2025-11-01T15:20:10Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '00298ad0f333b01c8f7ba87567c90a2aa70620c9', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ec9d7d671016b1e7aa30128854aff275139128a2', 'head': {'label': 'jordan-woyak:non-global-hookable-event', 'ref': 'non-global-hookable-event', 'sha': 'ec9d7d671016b1e7aa30128854aff275139128a2', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'd065f1ae1228203b354c35ca853f36fa45a59c43', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13626'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13626/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13626/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/ec9d7d671016b1e7aa30128854aff275139128a2'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T14:56:35.596780 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'id': 1596790678, 'node_id': 'PR_kwDOALCn2M5Kmlja', 'number': 11600, 'title': 'Android: remove "Saved settings to INI files" toast message', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-02-23T12:40:09Z', 'updated_at': '2025-11-01T14:56:33Z', 'closed_at': '2025-11-01T14:56:32Z', 'author_association': 'MEMBER', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.patch', 'merged_at': None}, 'body': 'This toast message was added ages ago, back when the Android UI was very rudimentary and you actually had to interact with a little save icon in the toolbar to apply setting changes. The UI got rewritten almost from scratch since then (twice if I recall correctly), dropping the manual save button in the process. Despite that, the toast message associated to it remains in Dolphin to this day, for no good reason (IMO).\r\n\r\nFor a long while now, Dolphin automatically saves changed settings once you exit the settings activity, so the toast message is simply redundant, after all I would argue there\'s an implicit expectation for app settings to get saved when you change them, especially on mobile OSes like Android. The redundancy of the "saved settings" toast message also becomes more apparent when compared to the other toast messages in use by Dolphin, which tells the user of things that actually require attention (e.g. IPL not found, settings that can\'t be changed while emulation is running, paths that can\'t be changed due to Scoped Storage, emulation errors, and so on).\r\n\r\nSo, this PR drops the "Saved settings to INI files" and "Saved settings for \\<game ID>" toast messages that used to appear when exiting the settings activity. The settings are still applied, but without generating a toast message...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476437191', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600#issuecomment-3476437191', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600', 'id': 3476437191, 'node_id': 'IC_kwDOALCn2M7PNjjH', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-11-01T14:56:32Z', 'updated_at': '2025-11-01T14:56:32Z', 'body': "This PR was superceded by #14048 and it's no longer needed, closing...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/3476437191/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T14:56:34.878973 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 11600, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600', 'id': 1251629274, 'node_id': 'PR_kwDOALCn2M5Kmlja', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11600', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/11600.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600', 'number': 11600, 'state': 'closed', 'locked': False, 'title': 'Android: remove "Saved settings to INI files" toast message', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This toast message was added ages ago, back when the Android UI was very rudimentary and you actually had to interact with a little save icon in the toolbar to apply setting changes. The UI got rewritten almost from scratch since then (twice if I recall correctly), dropping the manual save button in the process. Despite that, the toast message associated to it remains in Dolphin to this day, for no good reason (IMO).\r\n\r\nFor a long while now, Dolphin automatically saves changed settings once you exit the settings activity, so the toast message is simply redundant, after all I would argue there\'s an implicit expectation for app settings to get saved when you change them, especially on mobile OSes like Android. The redundancy of the "saved settings" toast message also becomes more apparent when compared to the other toast messages in use by Dolphin, which tells the user of things that actually require attention (e.g. IPL not found, settings that can\'t be changed while emulation is running, paths that can\'t be changed due to Scoped Storage, emulation errors, and so on).\r\n\r\nSo, this PR drops the "Saved settings to INI files" and "Saved settings for \\<game ID>" toast messages that used to appear when exiting the settings activity. The settings are still applied, but without generating a toast message...', 'created_at': '2023-02-23T12:40:09Z', 'updated_at': '2025-11-01T14:56:33Z', 'closed_at': '2025-11-01T14:56:32Z', 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': True, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/17ad371a634b1c82a17e1a210e1bd1233e2d49af', 'head': {'label': 'mbc07:ToastMessage_begone', 'ref': 'ToastMessage_begone', 'sha': '17ad371a634b1c82a17e1a210e1bd1233e2d49af', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 38133254, 'node_id': 'MDEwOlJlcG9zaXRvcnkzODEzMzI1NA==', 'name': 'dolphin', 'full_name': 'mbc07/dolphin', 'private': False, 'owner': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/mbc07/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/mbc07/dolphin', 'forks_url': 'https://api.github.com/repos/mbc07/dolphin/forks', 'keys_url': 'https://api.github.com/repos/mbc07/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/mbc07/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/mbc07/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/mbc07/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/mbc07/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/mbc07/dolphin/events', 'assignees_url': 'https://api.github.com/repos/mbc07/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/mbc07/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/mbc07/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/mbc07/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/mbc07/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/mbc07/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/mbc07/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/mbc07/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/mbc07/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/mbc07/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/mbc07/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/mbc07/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/mbc07/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/mbc07/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/mbc07/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/mbc07/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/mbc07/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/mbc07/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/mbc07/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/mbc07/dolphin/merges', 'archive_url': 'https://api.github.com/repos/mbc07/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/mbc07/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/mbc07/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/mbc07/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/mbc07/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/mbc07/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/mbc07/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/mbc07/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/mbc07/dolphin/deployments', 'created_at': '2015-06-26T20:55:12Z', 'updated_at': '2025-10-28T19:17:07Z', 'pushed_at': '2025-10-28T21:39:31Z', 'git_url': 'git://github.com/mbc07/dolphin.git', 'ssh_url': 'git@github.com:mbc07/dolphin.git', 'clone_url': 'https://github.com/mbc07/dolphin.git', 'svn_url': 'https://github.com/mbc07/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 495889, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '5800b874d7cf3cace856a56d3c30e1cc1c3c2caa', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/11600'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11600/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/11600/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/17ad371a634b1c82a17e1a210e1bd1233e2d49af'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': False, 'rebaseable': False, 'mergeable_state': 'dirty', 'merged_by': None, 'comments': 4, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 14, 'changed_files': 2}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538950, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 359, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T11:41:20.609084 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163', 'pull_request_review_id': 3407487597, 'id': 2483678163, 'node_id': 'PRRC_kwDOALCn2M6UCevT', 'diff_hunk': '@@ -374,56 +374,52 @@ void HostFileSystem::DoState(PointerWrap& p)\n handle.host_file.reset();\n \n // The format for the next part of the save state is follows:\n- // 1. bool Movie::WasMovieActiveWhenStateSaved() &&\n- // WiiRoot::WasWiiRootTemporaryDirectoryWhenStateSaved()\n+ // 1. bool is_nand_in_state (movie active && temporary wii root)\n // 2. Contents of the "/tmp" directory recursively.\n- // 3. u32 size_of_nand_folder_saved_below (or 0, if the root\n- // of the NAND folder is not savestated below).\n+ // 3. u32 size_of_nand (or 0, if not is_nand_in_state).\n // 4. Contents of the "/" directory recursively (or nothing, if the\n // root of the NAND folder is not save stated).\n \n // The "/" directory is only saved when a savestate is made during a movie recording\n // and when the directory root is temporary (i.e. WiiSession).\n // If a save state is made during a movie recording and is loaded when no movie is active,\n // then a call to p.DoExternal() will be used to skip over reading the contents of the "/"\n- // directory (it skips over the number of bytes specified by size_of_nand_folder_saved)\n+ // directory (it skips over the number of bytes specified by size_of_nand)\n \n auto& movie = Core::System::GetInstance().GetMovie();\n- bool original_save_state_made_during_movie_recording =\n- movie.IsMovieActive() && Core::WiiRootIsTemporary();\n- p.Do(original_save_state_made_during_movie_recording);\n \n- u32 temp_val = 0;\n+ const bool is_nand_wanted = movie.IsMovieActive() && Core::WiiRootIsTemporary();\n+\n+ bool is_nand_in_state = is_nand_wanted;', 'path': 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'original_commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Same here.', 'created_at': '2025-11-01T11:33:07Z', 'updated_at': '2025-11-01T11:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678163', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678163'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678163/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': 393, 'original_line': 393, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 29, 'position': 29, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'id': 2965602579, 'node_id': 'PR_kwDOALCn2M6ww4ET', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059', 'number': 14059, 'state': 'open', 'locked': False, 'title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'created_at': '2025-10-31T06:53:53Z', 'updated_at': '2025-11-01T11:41:18Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ffadbadd09caae32ad4e1e5aa8a4f89095f80983', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68', 'head': {'label': 'jordan-woyak:state-nand-cleanup', 'ref': 'state-nand-cleanup', 'sha': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T11:41:20.594681 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139', 'pull_request_review_id': 3407487597, 'id': 2483678139, 'node_id': 'PRRC_kwDOALCn2M6UCeu7', 'diff_hunk': '@@ -374,56 +374,52 @@ void HostFileSystem::DoState(PointerWrap& p)\n handle.host_file.reset();\n \n // The format for the next part of the save state is follows:\n- // 1. bool Movie::WasMovieActiveWhenStateSaved() &&\n- // WiiRoot::WasWiiRootTemporaryDirectoryWhenStateSaved()\n+ // 1. bool is_nand_in_state (movie active && temporary wii root)\n // 2. Contents of the "/tmp" directory recursively.\n- // 3. u32 size_of_nand_folder_saved_below (or 0, if the root\n- // of the NAND folder is not savestated below).\n+ // 3. u32 size_of_nand (or 0, if not is_nand_in_state).\n // 4. Contents of the "/" directory recursively (or nothing, if the\n // root of the NAND folder is not save stated).\n \n // The "/" directory is only saved when a savestate is made during a movie recording\n // and when the directory root is temporary (i.e. WiiSession).\n // If a save state is made during a movie recording and is loaded when no movie is active,\n // then a call to p.DoExternal() will be used to skip over reading the contents of the "/"\n- // directory (it skips over the number of bytes specified by size_of_nand_folder_saved)\n+ // directory (it skips over the number of bytes specified by size_of_nand)\n \n auto& movie = Core::System::GetInstance().GetMovie();\n- bool original_save_state_made_during_movie_recording =\n- movie.IsMovieActive() && Core::WiiRootIsTemporary();\n- p.Do(original_save_state_made_during_movie_recording);\n \n- u32 temp_val = 0;\n+ const bool is_nand_wanted = movie.IsMovieActive() && Core::WiiRootIsTemporary();', 'path': 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'original_commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I would like to call this `is_full_nand_wanted`. `/tmp` is part of the NAND, after all.', 'created_at': '2025-11-01T11:33:01Z', 'updated_at': '2025-11-01T11:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678139', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#discussion_r2483678139'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2483678139/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'start_line': None, 'original_start_line': None, 'start_side': None, 'line': 391, 'original_line': 391, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 27, 'position': 27, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'id': 2965602579, 'node_id': 'PR_kwDOALCn2M6ww4ET', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059', 'number': 14059, 'state': 'open', 'locked': False, 'title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'created_at': '2025-10-31T06:53:53Z', 'updated_at': '2025-11-01T11:41:18Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ffadbadd09caae32ad4e1e5aa8a4f89095f80983', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68', 'head': {'label': 'jordan-woyak:state-nand-cleanup', 'ref': 'state-nand-cleanup', 'sha': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T11:41:20.591060 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 3407487597, 'node_id': 'PRR_kwDOALCn2M7LGiJt', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': '6efecce200ffe47da9feedce32aab878bf742a68', 'submitted_at': '2025-11-01T11:41:18Z', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059#pullrequestreview-3407487597', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059#pullrequestreview-3407487597'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}}, 'updated_at': '2025-11-01T11:41:18Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059', 'id': 2965602579, 'node_id': 'PR_kwDOALCn2M6ww4ET', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14059', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14059.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059', 'number': 14059, 'state': 'open', 'locked': False, 'title': 'Core/IOS/FS: Clean up some hard to read NAND state saving logic.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'created_at': '2025-10-31T06:53:53Z', 'updated_at': '2025-11-01T11:41:18Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'ffadbadd09caae32ad4e1e5aa8a4f89095f80983', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68', 'head': {'label': 'jordan-woyak:state-nand-cleanup', 'ref': 'state-nand-cleanup', 'sha': '6efecce200ffe47da9feedce32aab878bf742a68', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-10-02T21:29:27Z', 'pushed_at': '2025-11-01T09:10:56Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 505014, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'c12d3a6d222d9cf105462f442a8f0763f1d31f71', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14059'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14059/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14059/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6efecce200ffe47da9feedce32aab878bf742a68'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-11-01T11:29:29.691978 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 13236, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236', 'id': 2251126641, 'node_id': 'PR_kwDOALCn2M6GLXdx', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13236', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13236.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13236.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13236', 'number': 13236, 'state': 'open', 'locked': False, 'title': 'Call JitInterface::UpdateMembase from PowerPC::MSRUpdated', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "When the interpreter calls MSRUpdated, we should update the membase variable. Not because the interpreter itself needs it, but because the JIT needs it if it's falling back to the interpreter for an instruction that sets the MSR.\r\n\r\nAdditionally, the JIT's FallBackToInterpreter needs to read back the new membase value afterwards.\r\n\r\nThis fixes games crashing on JitArm64 if mtmsr is set to fall back to interpreter. I was unable to reproduce the issue on Jit64, presumably due to a fortunate series of coincidences (instructions that set MSR are always followed by an exception exit, and PowerPCManager::CheckExternalExceptions was always calling JitInterface::UpdateMembase, and Jit64::WriteExceptionExit was always calling Jit64::EmitUpdateMembase.)", 'created_at': '2024-12-24T16:08:27Z', 'updated_at': '2025-11-01T11:29:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'fdcf8f4cf6596a6607f88a749eb36c5ef0109c31', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236/comments', 'review_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13236/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2aa00e15db0d6f1ebe19af5cf59ad63965618507', 'head': {'label': 'JosJuice:jit-set-msr-on-fallback', 'ref': 'jit-set-msr-on-fallback', 'sha': '2aa00e15db0d6f1ebe19af5cf59ad63965618507', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 26057138, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNjA1NzEzOA==', 'name': 'dolphin', 'full_name': 'JosJuice/dolphin', 'private': False, 'owner': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/JosJuice/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/JosJuice/dolphin', 'forks_url': 'https://api.github.com/repos/JosJuice/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JosJuice/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JosJuice/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JosJuice/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JosJuice/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JosJuice/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JosJuice/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JosJuice/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JosJuice/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JosJuice/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JosJuice/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JosJuice/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JosJuice/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JosJuice/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JosJuice/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JosJuice/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JosJuice/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JosJuice/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JosJuice/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JosJuice/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JosJuice/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JosJuice/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JosJuice/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JosJuice/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JosJuice/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JosJuice/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JosJuice/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JosJuice/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JosJuice/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JosJuice/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JosJuice/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JosJuice/dolphin/deployments', 'created_at': '2014-11-01T17:12:40Z', 'updated_at': '2025-11-01T11:24:36Z', 'pushed_at': '2025-11-01T11:24:28Z', 'git_url': 'git://github.com/JosJuice/dolphin.git', 'ssh_url': 'git@github.com:JosJuice/dolphin.git', 'clone_url': 'https://github.com/JosJuice/dolphin.git', 'svn_url': 'https://github.com/JosJuice/dolphin', 'homepage': None, 'size': 504678, 'stargazers_count': 6, 'watchers_count': 6, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 6, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'f9ce2b9d764014ab59cf2c19e49c2c848604e6fc', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'allow_squash_merge': False, 'allow_merge_commit': True, 'allow_rebase_merge': False, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13236'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13236'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13236/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236/comments'}, 'review_comment': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments{/number}'}, 'commits': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13236/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2aa00e15db0d6f1ebe19af5cf59ad63965618507'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'clean', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 43, 'deletions': 32, 'changed_files': 15}, 'changes': {'body': {'from': "When the interpreter calls MSRUpdated, we should update the membase variable. Not because the interpreter itself needs it, but because the JIT needs it if it's falling back to the interpreter for an instruction that sets the MSR.\r\n\r\nAdditionally, the JIT's FallBackToInterpreter needs to read back the new membase value afterwards.\r\n\r\nThis fixes games crashing on JitArm64 if mtmsr is set to fall back to interpreter. I was unable to reproduce the issue on Jit64, presumably due to a fortunate series of coincidences (instructions that set MSR are always followed by an exception exit, and\r\nPowerPCManager::CheckExternalExceptions was always calling JitInterface::UpdateMembase, and Jit64::WriteExceptionExit was always calling Jit64::EmitUpdateMembase.)"}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-11-01T11:22:49Z', 'pushed_at': '2025-11-01T11:22:45Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 538919, 'stargazers_count': 14222, 'watchers_count': 14222, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2887, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2887, 'open_issues': 360, 'watchers': 14222, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}