Status for Dolphin Central

Recent events

2026-10-04T21:17:27.724797	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-win-dbg-x64]: \x1f\x0302https://dolphin.ci/#/builders/31/builds/10672\x03\x1f', 'type': 'notification'}
2026-10-04T21:17:02.731611	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/5812', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2026-10-04T21:17:01.888700	{'source': 'webserver', 'raw': {'buildid': 191198, 'number': 5812, 'builderid': 43, 'buildrequestid': 191679, 'workerid': 13, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148614, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'workername': ['altair-flatpak', 'Worker'], 'buildnumber': [5812, 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'builderid': [43, 'Builder'], 'project': ['', 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/12883', 'SetPropertyFromCommand Step'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 191679, 'buildsetid': 43091, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5812'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:57.724389	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-dbg-x64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/10672', 'description': 'Build failed on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-10-04T21:16:56.968270	{'source': 'webserver', 'raw': {'buildid': 191206, 'number': 10672, 'builderid': 31, 'buildrequestid': 191678, 'workerid': 4, 'masterid': 1, 'started_at': 1791148549, 'complete_at': 1791148604, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10672, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'warnings-count': [1, 'WarningCountingShellCommand'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191678, 'buildsetid': 43091, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1791148549, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/10672'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:35.216467	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-win-arm64]: \x1f\x0302https://dolphin.ci/#/builders/13/builds/10663\x03\x1f', 'type': 'notification'}
2026-10-04T21:16:24.347177	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-dbg-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/10664', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-10-04T21:16:23.451183	{'source': 'webserver', 'raw': {'buildid': 191205, 'number': 10664, 'builderid': 1, 'buildrequestid': 191669, 'workerid': 9, 'masterid': 1, 'started_at': 1791148439, 'complete_at': 1791148569, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'basedir': ['/buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [1, 'Builder'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'buildnumber': [10664, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14913/head', 'Build'], 'codebase': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191669, 'buildsetid': 43091, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1791148439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10664'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:20.707292	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-arm64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/5753', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-10-04T21:16:19.849316	{'source': 'webserver', 'raw': {'buildid': 191197, 'number': 5753, 'builderid': 44, 'buildrequestid': 191680, 'workerid': 14, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148572, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'builderid': [44, 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [5753, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/12882', 'SetPropertyFromCommand Step'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 191680, 'buildsetid': 43091, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5753'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:17.923556	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T21:16:16.435932	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T21:16:05.216080	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-arm64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/10663', 'description': 'Build failed on builder pr-win-arm64', 'type': 'build_status'}
2026-10-04T21:16:04.458384	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-dbg-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/10672', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-10-04T21:16:04.431226	{'source': 'webserver', 'raw': {'buildid': 191204, 'number': 10663, 'builderid': 13, 'buildrequestid': 191674, 'workerid': 4, 'masterid': 1, 'started_at': 1791148404, 'complete_at': 1791148549, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-14913', 'Change'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10663, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 191674, 'buildsetid': 43091, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1791148404, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:03.790671	{'source': 'webserver', 'raw': {'buildid': 191206, 'number': 10672, 'builderid': 31, 'buildrequestid': 191678, 'workerid': 4, 'masterid': 1, 'started_at': 1791148549, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10672, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191678, 'buildsetid': 43091, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1791148549, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/10672'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:57.612965	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-android, pr-freebsd-x64, pr-osx-universal, pr-win-x64]: \x1f\x0302https://dolphin.ci/#/builders/7/builds/10683\x03\x1f', 'type': 'notification'}
2026-10-04T21:14:43.532105	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-ubu-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/27/builds/10665', 'description': 'Build succeeded on builder pr-ubu-x64', 'type': 'build_status'}
2026-10-04T21:14:42.544107	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-dbg-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/10664', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-10-04T21:14:41.913775	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/10663', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2026-10-04T21:14:41.312003	{'source': 'webserver', 'raw': {'buildid': 191203, 'number': 10665, 'builderid': 27, 'buildrequestid': 191677, 'workerid': 10, 'masterid': 1, 'started_at': 1791148291, 'complete_at': 1791148440, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-ubu-x64', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'branchname': ['pr-14913', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-ubu-x64', 'Builder'], 'builderid': [27, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [10665, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191677, 'buildsetid': 43091, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1791148291, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1791148284, 'complete_at': 1791148440, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/10665'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:41.183126	{'source': 'webserver', 'raw': {'buildid': 191205, 'number': 10664, 'builderid': 1, 'buildrequestid': 191669, 'workerid': 9, 'masterid': 1, 'started_at': 1791148439, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [1, 'Builder'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'buildnumber': [10664, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14913/head', 'Build'], 'codebase': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191669, 'buildsetid': 43091, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1791148439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10664'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:41.104108	{'source': 'webserver', 'raw': {'buildid': 191199, 'number': 10663, 'builderid': 26, 'buildrequestid': 191676, 'workerid': 9, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148439, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'builderid': [26, 'Builder'], 'workername': ['debian', 'Worker'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'shortrev': ['61ee18', 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'project': ['', 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'buildnumber': [10663, 'Build'], 'codebase': ['', 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 191676, 'buildsetid': 43091, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:27.612223	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-x64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/10666', 'description': 'Build failed on builder pr-win-x64', 'type': 'build_status'}
2026-10-04T21:14:26.761578	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-arm64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/10663', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}

Recent 'build_status' events

2026-10-04T21:17:02.731611	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/5812', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2026-10-04T21:16:57.724389	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-dbg-x64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/10672', 'description': 'Build failed on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-10-04T21:16:24.347177	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-dbg-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/10664', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-10-04T21:16:20.707292	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-arm64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/5753', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-10-04T21:16:05.216080	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-arm64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/10663', 'description': 'Build failed on builder pr-win-arm64', 'type': 'build_status'}
2026-10-04T21:16:04.458384	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-dbg-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/10672', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-10-04T21:14:43.532105	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-ubu-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/27/builds/10665', 'description': 'Build succeeded on builder pr-ubu-x64', 'type': 'build_status'}
2026-10-04T21:14:42.544107	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-dbg-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/10664', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-10-04T21:14:41.913775	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-x64', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/10663', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2026-10-04T21:14:27.612223	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-x64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/10666', 'description': 'Build failed on builder pr-win-x64', 'type': 'build_status'}
2026-10-04T21:14:26.761578	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-arm64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/10663', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}
2026-10-04T21:14:00.574132	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-freebsd-x64', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/10670', 'description': 'Build failed on builder pr-freebsd-x64', 'type': 'build_status'}
2026-10-04T21:13:57.175662	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-android', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/10669', 'description': 'Build failed on builder pr-android', 'type': 'build_status'}
2026-10-04T21:13:56.459107	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'lint', 'pr': 14913, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/9/builds/10668', 'description': 'Build succeeded on builder lint', 'type': 'build_status'}
2026-10-04T21:13:55.399279	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-osx-universal', 'pr': 14913, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/10683', 'description': 'Build failed on builder pr-osx-universal', 'type': 'build_status'}
2026-10-04T21:12:59.254577	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-ubu-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/27/builds/10665', 'description': 'Auto build in progress on builder pr-ubu-x64', 'type': 'build_status'}
2026-10-04T21:12:56.646489	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-freebsd-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/10670', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2026-10-04T21:12:55.561423	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-win-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/10666', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2026-10-04T21:12:54.513841	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-android', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/22/builds/10669', 'description': 'Auto build in progress on builder pr-android', 'type': 'build_status'}
2026-10-04T21:12:53.295944	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-deb-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/26/builds/10663', 'description': 'Auto build in progress on builder pr-deb-x64', 'type': 'build_status'}
2026-10-04T21:12:52.658452	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'lint', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/9/builds/10668', 'description': 'Auto build in progress on builder lint', 'type': 'build_status'}
2026-10-04T21:12:52.029735	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-osx-universal', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/10683', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2026-10-04T21:12:17.358618	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-x64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/43/builds/5812', 'description': 'Auto build in progress on builder pr-flatpak-x64', 'type': 'build_status'}
2026-10-04T21:12:16.527861	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'pr-flatpak-arm64', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/44/builds/5753', 'description': 'Auto build in progress on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-10-04T21:11:24.219709	{'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'shortrev': '61ee18', 'service': 'lint', 'pr': 14913, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}

Recent 'command_message' events

2026-10-04T19:44:18.766301	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14878', 'type': 'command_message'}
2026-10-04T04:27:33.141475	{'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984>  - please rebuild 14899', 'type': 'command_message'}
2026-10-04T01:04:50.476355	{'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984>  - please rebuild 14899', 'type': 'command_message'}
2026-10-03T11:07:44.563688	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14374', 'type': 'command_message'}
2026-10-03T07:49:30.388401	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14906', 'type': 'command_message'}
2026-10-03T01:28:00.147520	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild 14796', 'type': 'command_message'}
2026-10-02T23:20:45.523218	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> pwease rebuild 14876', 'type': 'command_message'}
2026-10-02T19:11:22.120974	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14878', 'type': 'command_message'}
2026-10-02T18:18:02.238602	{'source': 'ircclient', 'who': 'AdmiralCurtiss', 'what': 'irrawaddy rebuild 14797', 'type': 'command_message'}
2026-10-02T18:05:54.323528	{'source': 'ircclient', 'who': 'AdmiralCurtiss', 'what': 'irrawaddy rebuild 14797', 'type': 'command_message'}
2026-10-02T17:56:53.885559	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14906', 'type': 'command_message'}
2026-10-02T17:53:58.434317	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14904', 'type': 'command_message'}
2026-10-01T17:57:38.815149	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14899', 'type': 'command_message'}
2026-10-01T17:50:29.391485	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14904', 'type': 'command_message'}
2026-10-01T17:48:09.620229	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14903', 'type': 'command_message'}
2026-10-01T14:07:16.229815	{'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 14899', 'type': 'command_message'}
2026-10-01T03:29:03.029268	{'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984>  - please rebuild 14899', 'type': 'command_message'}
2026-09-30T22:40:05.046449	{'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 14899', 'type': 'command_message'}
2026-09-30T17:09:12.344890	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14898', 'type': 'command_message'}
2026-09-30T16:52:58.193606	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14864', 'type': 'command_message'}
2026-09-30T16:51:19.002863	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14713', 'type': 'command_message'}
2026-09-30T15:33:48.071876	{'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984>  - please rebuild 14899', 'type': 'command_message'}
2026-09-30T01:01:52.967697	{'source': 'discord', 'who': 'iwubcode', 'what': '<@1320924779556900984>  - please rebuild 14899', 'type': 'command_message'}
2026-09-27T14:45:00.347078	{'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 14890', 'type': 'command_message'}
2026-09-25T01:44:18.617752	{'source': 'ircclient', 'who': 'MayImilae', 'what': 'irrawaddy please rebuild pr14880', 'type': 'command_message'}

Recent 'dev_wark' events

2026-10-04T04:27:33.141517	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-10-04T01:04:50.476380	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-10-03T01:28:00.147570	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-10-02T23:20:45.523243	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-10-02T18:18:02.238642	{'source': 'ircclient', 'accepted': True, 'type': 'dev_wark'}
2026-10-02T18:05:54.323557	{'source': 'ircclient', 'accepted': True, 'type': 'dev_wark'}
2026-10-01T03:29:03.029294	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-30T15:33:48.071899	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-30T01:01:52.967741	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-25T01:44:18.617778	{'source': 'ircclient', 'accepted': True, 'type': 'dev_wark'}
2026-09-24T15:28:06.973342	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-20T05:04:56.896502	{'source': 'ircclient', 'accepted': True, 'type': 'dev_wark'}
2026-09-20T01:21:25.660482	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-19T21:02:36.938954	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-09-19T20:49:50.877293	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}

Recent 'gh_commit_comment' events

2026-10-01T07:30:54.788283	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'minogalal66-cell', 'commit': 'cafb83736e1d3123a34d27b92f98a7c9a507eae5', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cafb83736e1d3123a34d27b92f98a7c9a507eae5#commitcomment-202897744', 'type': 'gh_commit_comment'}

Recent 'gh_issue_comment' events

2026-10-04T21:09:45.254994	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'created', 'id': 14912, 'title': 'VideoCommon: validate restored FIFO pointers', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14912#issuecomment-5984410233', 'safe_author': False, 'body': 'cc @comex', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'id': 5703322375, 'node_id': 'PR_kwDOALCn2M8AAAABGmKNGA', 'number': 14912, 'title': 'VideoCommon: validate restored FIFO pointers', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T21:07:44Z', 'updated_at': '2026-10-04T21:09:43Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.patch', 'merged_at': None}, 'body': 'Save states restore `FifoManager`\'s video buffer pointers through `PointerWrap::DoPointer`. The serialized offsets were not checked against `m_video_buffer`, so a crafted state could restore an out-of-range write pointer. `FifoManager::ReadDataFromFifo` would then copy gather-pipe data through that native pointer, causing an out-of-bounds write. Individually valid but reversed read and write pointers could also underflow FIFO length calculations.\n\nMake `PointerWrap::DoPointer` require the backing element count and reject offsets outside the array. `FifoManager::DoState` supplies `FIFO_SIZE` for both pointers and rejects a read pointer after the write pointer. The serialized state layout remains unchanged, and the valid one-past pointer is preserved.\n\nFixes: 0ae9e398c8e0 ("Rejigger some FIFO buffer variables to be more rational.")\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/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/14912/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984410233', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912#issuecomment-5984410233', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912', 'id': 5984410233, 'node_id': 'IC_kwDOALCn2M8AAAABZLLaeQ', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T21:09:43Z', 'updated_at': '2026-10-04T21:09:43Z', 'body': 'cc @comex', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984410233/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 478, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 478, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T21:06:31.013536	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'created', 'id': 14911, 'title': 'NetPlay: reject oversized Wii save banners', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14911#issuecomment-5984383370', 'safe_author': False, 'body': 'cc @MrSynAckSter @JosJuice for input', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'id': 5703291637, 'node_id': 'PR_kwDOALCn2M8AAAABGmIrcw', 'number': 14911, 'title': 'NetPlay: reject oversized Wii save banners', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T21:03:32Z', 'updated_at': '2026-10-04T21:06:28Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.patch', 'merged_at': None}, 'body': 'NetPlay Wii save synchronization reads `header.banner_size` from the host in `NetPlayClient::OnSyncSaveDataWii`. The existing bounded copy leaves an oversized value in the header, and `WiiSave::NandStorage::WriteHeader` later passes that value to `file->Write(header.banner, header.banner_size)`. A malicious host can therefore make a client read past the stack `Header` while writing the temporary NetPlay NAND.\n\nReject invalid packet extraction and banner sizes larger than `header.banner` before consuming the banner data. Valid save synchronization keeps the same wire format and behavior.\n\nFixes: 747e1e0d92ac ("NetPlay: Fix Wii save banner buffer overflow")\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/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/14911/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984383370', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911#issuecomment-5984383370', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911', 'id': 5984383370, 'node_id': 'IC_kwDOALCn2M8AAAABZLJxig', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T21:06:28Z', 'updated_at': '2026-10-04T21:06:28Z', 'body': 'cc @MrSynAckSter @JosJuice for input', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984383370/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 477, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 477, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T20:42:23.269672	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'created', 'id': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909#issuecomment-5984189121', 'safe_author': False, 'body': '@jordan-woyak Thanks for the review. I have pushed a rework following your suggested direction (3f3de25c70, with manual-test documentation in fe83d1acea).\n\n- The separate Mouse Motion group, state, and emulation path are removed. Relative movement now runs through the existing ControllerEmu::Force / Swing bindings, EmulateSwing, and MotionState.\n- WiimoteEmu no longer inspects backend names or applies backend-specific scaling. DInput and XInput2 expose relative mouse values on the same scale.\n- All six direction bindings, Motion Hold, and Recenter are ordinary configurable expressions, so the mode is not restricted to mouse inputs. Mouse-specific binding names are confined to a Qt convenience preset, following the existing mouse-pointing preset pattern; the backends provide a consistent side-button alias.\n\nThe distinction from existing Swing is input semantics: absolute Swing uses input as a target position and generates movement at configured speeds. The optional Relative Input mode instead treats input as displacement per update, preserving the travel and speed of a natural backswing/stroke. The original absolute mode remains the default.\n\nThe Windows x64 Release build succeeds, and all 1382 unit tests pass, including 29 Swing regression/integration tests. I manually tested the reworked mouse controls in **Wii Sports Resort Swordplay**, and they play very well. Golf passed with the previous prototype; I have not yet confirmed the Golf regression on this reworked build. Linux/X11 has not been built or tested locally.\n\nDoes this direction address your architectural concerns? I have left the review conversations open. Upstream CI is still blocked by the contributor trust gate, so a maintainer would need to authorize the build.\n', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'id': 5701136651, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'number': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:42:21Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'merged_at': None}, 'body': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- **Additional manual test:** The PR author tested **Wii Sports Resort Swordplay** with the reworked mouse controls and reports that it plays very well. This is a separate successful manual test; it does not substitute for the pending Golf regression.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/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/14909/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984189121', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#issuecomment-5984189121', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'id': 5984189121, 'node_id': 'IC_kwDOALCn2M8AAAABZK96wQ', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T20:42:21Z', 'updated_at': '2026-10-04T20:42:21Z', 'body': '@jordan-woyak Thanks for the review. I have pushed a rework following your suggested direction (3f3de25c70, with manual-test documentation in fe83d1acea).\n\n- The separate Mouse Motion group, state, and emulation path are removed. Relative movement now runs through the existing ControllerEmu::Force / Swing bindings, EmulateSwing, and MotionState.\n- WiimoteEmu no longer inspects backend names or applies backend-specific scaling. DInput and XInput2 expose relative mouse values on the same scale.\n- All six direction bindings, Motion Hold, and Recenter are ordinary configurable expressions, so the mode is not restricted to mouse inputs. Mouse-specific binding names are confined to a Qt convenience preset, following the existing mouse-pointing preset pattern; the backends provide a consistent side-button alias.\n\nThe distinction from existing Swing is input semantics: absolute Swing uses input as a target position and generates movement at configured speeds. The optional Relative Input mode instead treats input as displacement per update, preserving the travel and speed of a natural backswing/stroke. The original absolute mode remains the default.\n\nThe Windows x64 Release build succeeds, and all 1382 unit tests pass, including 29 Swing regression/integration tests. I manually tested the reworked mouse controls in **Wii Sports Resort Swordplay**, and they play very well. Golf passed with the previous prototype; I have not yet confirmed the Golf regression on this reworked build. Linux/X11 has not been built or tested locally.\n\nDoes this direction address your architectural concerns? I have left the review conversations open. Upstream CI is still blocked by the contributor trust gate, so a maintainer would need to authorize the build.\n', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984189121/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T19:06:49.140355	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5983378818', 'safe_author': True, 'body': "If needed, I have a branch which tries to deal with mbedtls' symbol conflicts with newer version here: https://github.com/JoshuaVandaele/dolphin/commits/dependency-galore/. It's an abandoned attempt at updating curl to a newer version against mbedtls 4, but the first commit (`Externals: Rename MbedTLS to MbedTLS2 to avoid symbol conflicts with newer versions`) may be of use", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'id': 5658953473, 'node_id': 'PR_kwDOALCn2M8AAAABGDMPMA', 'number': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', '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)', 'archived_at': None, 'archived_by': None}, {'id': 221809816, 'node_id': 'MDU6TGFiZWwyMjE4MDk4MTY=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC', 'name': 'RFC', 'color': 'FF6D00', 'default': False, 'description': 'Request for comments', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-10-01T07:59:38Z', 'updated_at': '2026-10-04T19:06:47Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14902', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.patch', 'merged_at': None}, 'body': 'This PR adds a web server to Dolphin for control of integrated GBAs.\r\n\r\n<img width="2560" height="1440" alt="image" src="https://github.com/user-attachments/assets/868f6f67-917f-40d7-a150-9e570bc77954" />\r\n\r\nThere are many future possibilities, changing settings, launching games, streaming the main window, etc. \r\nHowever, the current only feature is streaming the integrated GBAs.\r\n\r\nThere\'s no sort of authentication implemented right now.\r\nMultiple clients can connect to the same GBA (they fight over the latest button state).\r\n\r\nConnecting causes the relevant GBA window on the host-side to hide itself and audio to no longer play locally.\r\n\r\nThe main use case is playing Four Swords or Crystal Chronicles, with the GBA screens streamed to mobile devices over the local network.\r\nThis already works well.\r\n\r\nlibavcodec is used to encode to H264/Opus and stream to web browsers using some additional dependencies:\r\n- [cpp-httplib](https://github.com/yhirose/cpp-httplib) for a HTTP and WebSocket server.\r\n- [libdatachannel](https://github.com/paullouisageneau/libdatachannel) for WebRTC\r\n\r\nBoth of these dependencies require C++ exceptions.\r\nI\'ve enabled exceptions for only the required Dolphin source files.\r\n\r\nThe web server hosts files from `Sys/WebUI`\r\nI\'ve also included some 3rd party libraries there in `Sys/WebUI/deps`\r\n- [Notyf](https://github.com/caroso1222/notyf) for "toast" messages.\r\n- [OmniPad](https://github.com/WizardOfXerox/OmniPad) for touch controls.\r\n\r\nThe web client code I\'ve written  is bad and I\'m hoping someone more interested in that side of things wants to re-write all that html/js/css stuff at some point.\r\nThat probably could be done in a future PR, things are working fine as-is, but it\'s ugly (visually and code-wise).\r\n\r\nlibdatachannel has a [bug](https://github.com/paullouisageneau/libdatachannel/issues/1647) with a pending fix that requires `std::locale::global(std::locale::classic());`.\r\nIt\'s only used when a client connects.\r\nSo.. streaming with the web interface will currently mess with locales.\r\nHopefully that bug will be fixed soon, otherwise we could use a clone that has the fix.\r\n\r\nI\'ve only tested building on Linux.\r\nI have almost no clue what I am doing with CMake.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 5, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5983378818', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5983378818', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'id': 5983378818, 'node_id': 'IC_kwDOALCn2M8AAAABZKMdgg', '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': '2026-10-04T19:06:47Z', 'updated_at': '2026-10-04T19:06:47Z', 'body': "If needed, I have a branch which tries to deal with mbedtls' symbol conflicts with newer version here: https://github.com/JoshuaVandaele/dolphin/commits/dependency-galore/. It's an abandoned attempt at updating curl to a newer version against mbedtls 4, but the first commit (`Externals: Rename MbedTLS to MbedTLS2 to avoid symbol conflicts with newer versions`) may be of use", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5983378818/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, 'minimized': 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': '2026-10-04T18:59:26Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15613, 'watchers_count': 15613, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15613, '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'}
2026-10-04T18:15:37.777740	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14410, 'title': 'AMMediaboard: Fix setsockopt timeout parameters', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14410#issuecomment-5982957970', 'safe_author': True, 'body': "I can't test this in windows, but I don't think this made things worse.  Sometimes the games don't want to connect, but that also happens in master.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410', 'id': 3973085501, 'node_id': 'PR_kwDOALCn2M7FZA6t', 'number': 14410, 'title': 'AMMediaboard: Fix setsockopt timeout parameters', '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, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-02-21T23:48:02Z', 'updated_at': '2026-10-04T18:15:35Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14410', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14410.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14410.patch', 'merged_at': None}, 'body': 'This PR fixes `setsockopt` returning 22 (EINVAL) when setting timeout values.\r\n\r\nReady to be reviewed and tested.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/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/14410/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982957970', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410#issuecomment-5982957970', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410', 'id': 5982957970, 'node_id': 'IC_kwDOALCn2M8AAAABZJyxkg', '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': '2026-10-04T18:15:35Z', 'updated_at': '2026-10-04T18:15:35Z', 'body': "I can't test this in windows, but I don't think this made things worse.  Sometimes the games don't want to connect, but that also happens in master.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982957970/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:11:39.314208	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14404, 'title': 'AMMediaboard: Update closesocket error code approriately', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14404#issuecomment-5982925106', 'safe_author': True, 'body': 'As far as I can tell, this does not break either Mario Kart GP game from connecting over a network.  I do not see the log messages referenced across a single race session.  Mario Kart GP2 also saw the other cabinet, but I did not test a full race.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404', 'id': 3970281047, 'node_id': 'PR_kwDOALCn2M7FQVnJ', 'number': 14404, 'title': 'AMMediaboard: Update closesocket error code approriately', '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, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-02-20T20:36:13Z', 'updated_at': '2026-10-04T18:11:37Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14404', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14404.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14404.patch', 'merged_at': None}, 'body': "~This change is part of https://github.com/dolphin-emu/dolphin/pull/14399.~ _Trying https://github.com/dolphin-emu/dolphin/pull/14404#discussion_r2835513014 instead._\r\n\r\nBased on these log messages, Mario Kart seems to keep trying to close the fd if the operation failed:\r\n```\r\n48:26:096 Core/HW/DVD/AMMediaboard.cpp:735 I[AMMB_NET]: NetDIMMConnect: connect( 125(4), (2,127.0.0.1:5038) ):-1 (10035)\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 123(2) ):0\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 124(3) ):0\r\n48:26:114 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 125(4) ):0\r\n48:26:130 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:146 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:163 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:180 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n```\r\n\r\nThe socket fd=1 is probably related to the [race mentioned here](https://github.com/dolphin-emu/dolphin/pull/14400). The game tried to call `accept` on the socket fd=1 but failed because the socket wasn't created. Then, it tried to close the socket.\r\n\r\nReady to be reviewed & tested.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/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/14404/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982925106', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404#issuecomment-5982925106', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404', 'id': 5982925106, 'node_id': 'IC_kwDOALCn2M8AAAABZJwxMg', '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': '2026-10-04T18:11:36Z', 'updated_at': '2026-10-04T18:11:36Z', 'body': 'As far as I can tell, this does not break either Mario Kart GP game from connecting over a network.  I do not see the log messages referenced across a single race session.  Mario Kart GP2 also saw the other cabinet, but I did not test a full race.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982925106/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:05:51.312370	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14397, 'title': 'AMMediaboard: Change accept non-blocking logic', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14397#issuecomment-5982877550', 'safe_author': True, 'body': 'As far as I can tell, Both Mario Kart GP and Avalon have no changed behavior from this and still connect over the network.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397', 'id': 3962584811, 'node_id': 'PR_kwDOALCn2M7E2-3z', 'number': 14397, 'title': 'AMMediaboard: Change accept non-blocking logic', '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, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-02-19T11:58:22Z', 'updated_at': '2026-10-04T18:05:49Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14397', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14397.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14397.patch', 'merged_at': None}, 'body': "This PR changes the non-blocking logic to something similar to what was done with the `connect` command.\r\n\r\nThe main issue with `poll` is that it doesn't catch many edge cases such as invalid parameters and sometimes we reported them as being timeout errors instead of proper errors.\r\n\r\nLike https://github.com/dolphin-emu/dolphin/pull/14395, because the logic was changed, this will need to be properly tested before being merged.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/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/14397/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982877550', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397#issuecomment-5982877550', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397', 'id': 5982877550, 'node_id': 'IC_kwDOALCn2M8AAAABZJt3bg', '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': '2026-10-04T18:05:49Z', 'updated_at': '2026-10-04T18:05:49Z', 'body': 'As far as I can tell, Both Mario Kart GP and Avalon have no changed behavior from this and still connect over the network.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982877550/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T11:37:42.953890	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'created', 'id': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5979528612', 'safe_author': True, 'body': 'IIRC we use mbedtls2 specifically because 3 drops support for some algorithms used by IOS. So that might be a problem. Might make sense to make a custom fork of mbedtls2 with different symbol names, maybe stripped down to just the specific things needed?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'id': 5658953473, 'node_id': 'PR_kwDOALCn2M8AAAABGDMPMA', 'number': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', '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)', 'archived_at': None, 'archived_by': None}, {'id': 221809816, 'node_id': 'MDU6TGFiZWwyMjE4MDk4MTY=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC', 'name': 'RFC', 'color': 'FF6D00', 'default': False, 'description': 'Request for comments', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-10-01T07:59:38Z', 'updated_at': '2026-10-04T11:37:41Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14902', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.patch', 'merged_at': None}, 'body': 'This PR adds a web server to Dolphin for control of integrated GBAs.\r\n\r\n<img width="2560" height="1440" alt="image" src="https://github.com/user-attachments/assets/868f6f67-917f-40d7-a150-9e570bc77954" />\r\n\r\nThere are many future possibilities, changing settings, launching games, streaming the main window, etc. \r\nHowever, the current only feature is streaming the integrated GBAs.\r\n\r\nThere\'s no sort of authentication implemented right now.\r\nMultiple clients can connect to the same GBA (they fight over the latest button state).\r\n\r\nConnecting causes the relevant GBA window on the host-side to hide itself and audio to no longer play locally.\r\n\r\nThe main use case is playing Four Swords or Crystal Chronicles, with the GBA screens streamed to mobile devices over the local network.\r\nThis already works well.\r\n\r\nlibavcodec is used to encode to H264/Opus and stream to web browsers using some additional dependencies:\r\n- [cpp-httplib](https://github.com/yhirose/cpp-httplib) for a HTTP and WebSocket server.\r\n- [libdatachannel](https://github.com/paullouisageneau/libdatachannel) for WebRTC\r\n\r\nBoth of these dependencies require C++ exceptions.\r\nI\'ve enabled exceptions for only the required Dolphin source files.\r\n\r\nThe web server hosts files from `Sys/WebUI`\r\nI\'ve also included some 3rd party libraries there in `Sys/WebUI/deps`\r\n- [Notyf](https://github.com/caroso1222/notyf) for "toast" messages.\r\n- [OmniPad](https://github.com/WizardOfXerox/OmniPad) for touch controls.\r\n\r\nThe web client code I\'ve written  is bad and I\'m hoping someone more interested in that side of things wants to re-write all that html/js/css stuff at some point.\r\nThat probably could be done in a future PR, things are working fine as-is, but it\'s ugly (visually and code-wise).\r\n\r\nlibdatachannel has a [bug](https://github.com/paullouisageneau/libdatachannel/issues/1647) with a pending fix that requires `std::locale::global(std::locale::classic());`.\r\nIt\'s only used when a client connects.\r\nSo.. streaming with the web interface will currently mess with locales.\r\nHopefully that bug will be fixed soon, otherwise we could use a clone that has the fix.\r\n\r\nI\'ve only tested building on Linux.\r\nI have almost no clue what I am doing with CMake.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 5, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979528612', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5979528612', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'id': 5979528612, 'node_id': 'IC_kwDOALCn2M8AAAABZGhdpA', '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': '2026-10-04T11:37:41Z', 'updated_at': '2026-10-04T11:37:41Z', 'body': 'IIRC we use mbedtls2 specifically because 3 drops support for some algorithms used by IOS. So that might be a problem. Might make sense to make a custom fork of mbedtls2 with different symbol names, maybe stripped down to just the specific things needed?', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979528612/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, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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'}
2026-10-04T11:34:19.642460	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'dolphin-ci[bot]', 'action': 'deleted', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979137472', 'safe_author': False, 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|vk-lin-mesa|\n|-|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|[🔍 diff](https://fifo.ci/compare/16543919-16373027/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|[🔍 diff](https://fifo.ci/compare/16543940-16373048/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|[🔍 diff](https://fifo.ci/compare/16543957-16373065/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|[🔍 diff](https://fifo.ci/compare/16543945-16373053/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|[🔍 diff](https://fifo.ci/compare/16543925-16373033/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|[🔍 diff](https://fifo.ci/compare/16543967-16373075/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|[🔍 diff](https://fifo.ci/compare/16543962-16373070/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|[🔍 diff](https://fifo.ci/compare/16543901-16373009/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|[🔍 diff](https://fifo.ci/compare/16543867-16372975/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|[🔍 diff](https://fifo.ci/compare/16543927-16373035/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|[🔍 diff](https://fifo.ci/compare/16543899-16373007/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|[🔍 diff](https://fifo.ci/compare/16543994-16373102/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|[🔍 diff](https://fifo.ci/compare/16543903-16373011/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|[🔍 diff](https://fifo.ci/compare/16543966-16373074/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|[🔍 diff](https://fifo.ci/compare/16543979-16373087/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|[🔍 diff](https://fifo.ci/compare/16543885-16372993/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|[🔍 diff](https://fifo.ci/compare/16543935-16373043/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|[🔍 diff](https://fifo.ci/compare/16543950-16373058/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|[🔍 diff](https://fifo.ci/compare/16543933-16373041/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|[🔍 diff](https://fifo.ci/compare/16543896-16373004/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|[🔍 diff](https://fifo.ci/compare/16543907-16373015/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|[🔍 diff](https://fifo.ci/compare/16543955-16373063/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|[🔍 diff](https://fifo.ci/compare/16543874-16372982/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|[🔍 diff](https://fifo.ci/compare/16543886-16372994/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|[🔍 diff](https://fifo.ci/compare/16543866-16372974/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|[🔍 diff](https://fifo.ci/compare/16543888-16372996/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|[🔍 diff](https://fifo.ci/compare/16543911-16373019/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|[🔍 diff](https://fifo.ci/compare/16543930-16373038/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|[🔍 diff](https://fifo.ci/compare/16544003-16373111/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|[🔍 diff](https://fifo.ci/compare/16544002-16373110/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|[🔍 diff](https://fifo.ci/compare/16543952-16373060/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|[🔍 diff](https://fifo.ci/compare/16544001-16373109/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|[🔍 diff](https://fifo.ci/compare/16543996-16373104/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|[🔍 diff](https://fifo.ci/compare/16543982-16373090/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|[🔍 diff](https://fifo.ci/compare/16543970-16373078/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|[🔍 diff](https://fifo.ci/compare/16543961-16373069/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|[🔍 diff](https://fifo.ci/compare/16543988-16373096/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|[🔍 diff](https://fifo.ci/compare/16543875-16372983/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|[🔍 diff](https://fifo.ci/compare/16543959-16373067/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|[🔍 diff](https://fifo.ci/compare/16543942-16373050/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|[🔍 diff](https://fifo.ci/compare/16543949-16373057/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|[🔍 diff](https://fifo.ci/compare/16543871-16372979/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|[🔍 diff](https://fifo.ci/compare/16543998-16373106/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|[🔍 diff](https://fifo.ci/compare/16543971-16373079/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|[🔍 diff](https://fifo.ci/compare/16543876-16372984/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|[🔍 diff](https://fifo.ci/compare/16543976-16373084/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|[🔍 diff](https://fifo.ci/compare/16543954-16373062/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|[🔍 diff](https://fifo.ci/compare/16543985-16373093/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|[🔍 diff](https://fifo.ci/compare/16544000-16373108/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|[🔍 diff](https://fifo.ci/compare/16543891-16372999/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|[🔍 diff](https://fifo.ci/compare/16543890-16372998/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|[🔍 diff](https://fifo.ci/compare/16543895-16373003/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|[🔍 diff](https://fifo.ci/compare/16543931-16373039/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|[🔍 diff](https://fifo.ci/compare/16543865-16372973/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|[🔍 diff](https://fifo.ci/compare/16543941-16373049/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|[🔍 diff](https://fifo.ci/compare/16543906-16373014/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|[🔍 diff](https://fifo.ci/compare/16543910-16373018/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|[🔍 diff](https://fifo.ci/compare/16543877-16372985/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|[🔍 diff](https://fifo.ci/compare/16543958-16373066/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|[🔍 diff](https://fifo.ci/compare/16543878-16372986/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|[🔍 diff](https://fifo.ci/compare/16543969-16373077/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|[🔍 diff](https://fifo.ci/compare/16543987-16373095/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|[🔍 diff](https://fifo.ci/compare/16543879-16372987/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|[🔍 diff](https://fifo.ci/compare/16543963-16373071/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|[🔍 diff](https://fifo.ci/compare/16543894-16373002/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|[🔍 diff](https://fifo.ci/compare/16543964-16373072/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|[🔍 diff](https://fifo.ci/compare/16543956-16373064/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|[🔍 diff](https://fifo.ci/compare/16543986-16373094/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|[🔍 diff](https://fifo.ci/compare/16543908-16373016/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|[🔍 diff](https://fifo.ci/compare/16543984-16373092/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|[🔍 diff](https://fifo.ci/compare/16543893-16373001/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|[🔍 diff](https://fifo.ci/compare/16543905-16373013/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|[🔍 diff](https://fifo.ci/compare/16543916-16373024/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|[🔍 diff](https://fifo.ci/compare/16543937-16373045/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|[🔍 diff](https://fifo.ci/compare/16543934-16373042/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|[🔍 diff](https://fifo.ci/compare/16543880-16372988/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|[🔍 diff](https://fifo.ci/compare/16543870-16372978/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|[🔍 diff](https://fifo.ci/compare/16543965-16373073/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|[🔍 diff](https://fifo.ci/compare/16543974-16373082/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|[🔍 diff](https://fifo.ci/compare/16543923-16373031/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|[🔍 diff](https://fifo.ci/compare/16543872-16372980/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|[🔍 diff](https://fifo.ci/compare/16543983-16373091/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|[🔍 diff](https://fifo.ci/compare/16543918-16373026/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|[🔍 diff](https://fifo.ci/compare/16543909-16373017/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|[🔍 diff](https://fifo.ci/compare/16543989-16373097/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|[🔍 diff](https://fifo.ci/compare/16543947-16373055/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|[🔍 diff](https://fifo.ci/compare/16543898-16373006/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|[🔍 diff](https://fifo.ci/compare/16543915-16373023/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|[🔍 diff](https://fifo.ci/compare/16543881-16372989/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|[🔍 diff](https://fifo.ci/compare/16543948-16373056/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|[🔍 diff](https://fifo.ci/compare/16543960-16373068/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|[🔍 diff](https://fifo.ci/compare/16543900-16373008/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|[🔍 diff](https://fifo.ci/compare/16543869-16372977/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|[🔍 diff](https://fifo.ci/compare/16543944-16373052/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|[🔍 diff](https://fifo.ci/compare/16543975-16373083/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|[🔍 diff](https://fifo.ci/compare/16543946-16373054/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|[🔍 diff](https://fifo.ci/compare/16543968-16373076/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|[🔍 diff](https://fifo.ci/compare/16543882-16372990/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|[🔍 diff](https://fifo.ci/compare/16543978-16373086/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|[🔍 diff](https://fifo.ci/compare/16543981-16373089/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|[🔍 diff](https://fifo.ci/compare/16543889-16372997/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|[🔍 diff](https://fifo.ci/compare/16543868-16372976/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|[🔍 diff](https://fifo.ci/compare/16543992-16373100/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|[🔍 diff](https://fifo.ci/compare/16543920-16373028/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|[🔍 diff](https://fifo.ci/compare/16543951-16373059/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|[🔍 diff](https://fifo.ci/compare/16543897-16373005/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|[🔍 diff](https://fifo.ci/compare/16543953-16373061/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|[🔍 diff](https://fifo.ci/compare/16543980-16373088/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|[🔍 diff](https://fifo.ci/compare/16543922-16373030/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|[🔍 diff](https://fifo.ci/compare/16543921-16373029/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|[🔍 diff](https://fifo.ci/compare/16543995-16373103/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|[🔍 diff](https://fifo.ci/compare/16543917-16373025/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|[🔍 diff](https://fifo.ci/compare/16543938-16373046/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|[🔍 diff](https://fifo.ci/compare/16543924-16373032/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|[🔍 diff](https://fifo.ci/compare/16543939-16373047/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|[🔍 diff](https://fifo.ci/compare/16543887-16372995/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|[🔍 diff](https://fifo.ci/compare/16543914-16373022/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|[🔍 diff](https://fifo.ci/compare/16543943-16373051/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|[🔍 diff](https://fifo.ci/compare/16543936-16373044/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|[🔍 diff](https://fifo.ci/compare/16543929-16373037/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|[🔍 diff](https://fifo.ci/compare/16543902-16373010/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|[🔍 diff](https://fifo.ci/compare/16543932-16373040/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|[🔍 diff](https://fifo.ci/compare/16543873-16372981/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|[🔍 diff](https://fifo.ci/compare/16543973-16373081/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|[🔍 diff](https://fifo.ci/compare/16543883-16372991/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|[🔍 diff](https://fifo.ci/compare/16543928-16373036/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|[🔍 diff](https://fifo.ci/compare/16543972-16373080/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|[🔍 diff](https://fifo.ci/compare/16543991-16373099/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|[🔍 diff](https://fifo.ci/compare/16543990-16373098/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|[🔍 diff](https://fifo.ci/compare/16543863-16372971/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|[🔍 diff](https://fifo.ci/compare/16543999-16373107/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|[🔍 diff](https://fifo.ci/compare/16543912-16373020/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|[🔍 diff](https://fifo.ci/compare/16543884-16372992/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|[🔍 diff](https://fifo.ci/compare/16543864-16372972/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|[🔍 diff](https://fifo.ci/compare/16543892-16373000/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|[🔍 diff](https://fifo.ci/compare/16543904-16373012/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'id': 3071950520, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'number': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T11:25:06Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'merged_at': None}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979137472', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979137472', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'id': 5979137472, 'node_id': 'IC_kwDOALCn2M8AAAABZGJlwA', 'user': {'login': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T10:44:45Z', 'updated_at': '2026-10-04T10:44:45Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|vk-lin-mesa|\n|-|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|[🔍 diff](https://fifo.ci/compare/16543919-16373027/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|[🔍 diff](https://fifo.ci/compare/16543940-16373048/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|[🔍 diff](https://fifo.ci/compare/16543957-16373065/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|[🔍 diff](https://fifo.ci/compare/16543945-16373053/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|[🔍 diff](https://fifo.ci/compare/16543925-16373033/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|[🔍 diff](https://fifo.ci/compare/16543967-16373075/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|[🔍 diff](https://fifo.ci/compare/16543962-16373070/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|[🔍 diff](https://fifo.ci/compare/16543901-16373009/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|[🔍 diff](https://fifo.ci/compare/16543867-16372975/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|[🔍 diff](https://fifo.ci/compare/16543927-16373035/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|[🔍 diff](https://fifo.ci/compare/16543899-16373007/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|[🔍 diff](https://fifo.ci/compare/16543994-16373102/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|[🔍 diff](https://fifo.ci/compare/16543903-16373011/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|[🔍 diff](https://fifo.ci/compare/16543966-16373074/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|[🔍 diff](https://fifo.ci/compare/16543979-16373087/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|[🔍 diff](https://fifo.ci/compare/16543885-16372993/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|[🔍 diff](https://fifo.ci/compare/16543935-16373043/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|[🔍 diff](https://fifo.ci/compare/16543950-16373058/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|[🔍 diff](https://fifo.ci/compare/16543933-16373041/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|[🔍 diff](https://fifo.ci/compare/16543896-16373004/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|[🔍 diff](https://fifo.ci/compare/16543907-16373015/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|[🔍 diff](https://fifo.ci/compare/16543955-16373063/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|[🔍 diff](https://fifo.ci/compare/16543874-16372982/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|[🔍 diff](https://fifo.ci/compare/16543886-16372994/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|[🔍 diff](https://fifo.ci/compare/16543866-16372974/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|[🔍 diff](https://fifo.ci/compare/16543888-16372996/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|[🔍 diff](https://fifo.ci/compare/16543911-16373019/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|[🔍 diff](https://fifo.ci/compare/16543930-16373038/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|[🔍 diff](https://fifo.ci/compare/16544003-16373111/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|[🔍 diff](https://fifo.ci/compare/16544002-16373110/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|[🔍 diff](https://fifo.ci/compare/16543952-16373060/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|[🔍 diff](https://fifo.ci/compare/16544001-16373109/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|[🔍 diff](https://fifo.ci/compare/16543996-16373104/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|[🔍 diff](https://fifo.ci/compare/16543982-16373090/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|[🔍 diff](https://fifo.ci/compare/16543970-16373078/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|[🔍 diff](https://fifo.ci/compare/16543961-16373069/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|[🔍 diff](https://fifo.ci/compare/16543988-16373096/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|[🔍 diff](https://fifo.ci/compare/16543875-16372983/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|[🔍 diff](https://fifo.ci/compare/16543959-16373067/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|[🔍 diff](https://fifo.ci/compare/16543942-16373050/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|[🔍 diff](https://fifo.ci/compare/16543949-16373057/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|[🔍 diff](https://fifo.ci/compare/16543871-16372979/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|[🔍 diff](https://fifo.ci/compare/16543998-16373106/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|[🔍 diff](https://fifo.ci/compare/16543971-16373079/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|[🔍 diff](https://fifo.ci/compare/16543876-16372984/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|[🔍 diff](https://fifo.ci/compare/16543976-16373084/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|[🔍 diff](https://fifo.ci/compare/16543954-16373062/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|[🔍 diff](https://fifo.ci/compare/16543985-16373093/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|[🔍 diff](https://fifo.ci/compare/16544000-16373108/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|[🔍 diff](https://fifo.ci/compare/16543891-16372999/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|[🔍 diff](https://fifo.ci/compare/16543890-16372998/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|[🔍 diff](https://fifo.ci/compare/16543895-16373003/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|[🔍 diff](https://fifo.ci/compare/16543931-16373039/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|[🔍 diff](https://fifo.ci/compare/16543865-16372973/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|[🔍 diff](https://fifo.ci/compare/16543941-16373049/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|[🔍 diff](https://fifo.ci/compare/16543906-16373014/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|[🔍 diff](https://fifo.ci/compare/16543910-16373018/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|[🔍 diff](https://fifo.ci/compare/16543877-16372985/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|[🔍 diff](https://fifo.ci/compare/16543958-16373066/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|[🔍 diff](https://fifo.ci/compare/16543878-16372986/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|[🔍 diff](https://fifo.ci/compare/16543969-16373077/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|[🔍 diff](https://fifo.ci/compare/16543987-16373095/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|[🔍 diff](https://fifo.ci/compare/16543879-16372987/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|[🔍 diff](https://fifo.ci/compare/16543963-16373071/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|[🔍 diff](https://fifo.ci/compare/16543894-16373002/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|[🔍 diff](https://fifo.ci/compare/16543964-16373072/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|[🔍 diff](https://fifo.ci/compare/16543956-16373064/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|[🔍 diff](https://fifo.ci/compare/16543986-16373094/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|[🔍 diff](https://fifo.ci/compare/16543908-16373016/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|[🔍 diff](https://fifo.ci/compare/16543984-16373092/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|[🔍 diff](https://fifo.ci/compare/16543893-16373001/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|[🔍 diff](https://fifo.ci/compare/16543905-16373013/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|[🔍 diff](https://fifo.ci/compare/16543916-16373024/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|[🔍 diff](https://fifo.ci/compare/16543937-16373045/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|[🔍 diff](https://fifo.ci/compare/16543934-16373042/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|[🔍 diff](https://fifo.ci/compare/16543880-16372988/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|[🔍 diff](https://fifo.ci/compare/16543870-16372978/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|[🔍 diff](https://fifo.ci/compare/16543965-16373073/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|[🔍 diff](https://fifo.ci/compare/16543974-16373082/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|[🔍 diff](https://fifo.ci/compare/16543923-16373031/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|[🔍 diff](https://fifo.ci/compare/16543872-16372980/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|[🔍 diff](https://fifo.ci/compare/16543983-16373091/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|[🔍 diff](https://fifo.ci/compare/16543918-16373026/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|[🔍 diff](https://fifo.ci/compare/16543909-16373017/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|[🔍 diff](https://fifo.ci/compare/16543989-16373097/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|[🔍 diff](https://fifo.ci/compare/16543947-16373055/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|[🔍 diff](https://fifo.ci/compare/16543898-16373006/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|[🔍 diff](https://fifo.ci/compare/16543915-16373023/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|[🔍 diff](https://fifo.ci/compare/16543881-16372989/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|[🔍 diff](https://fifo.ci/compare/16543948-16373056/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|[🔍 diff](https://fifo.ci/compare/16543960-16373068/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|[🔍 diff](https://fifo.ci/compare/16543900-16373008/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|[🔍 diff](https://fifo.ci/compare/16543869-16372977/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|[🔍 diff](https://fifo.ci/compare/16543944-16373052/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|[🔍 diff](https://fifo.ci/compare/16543975-16373083/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|[🔍 diff](https://fifo.ci/compare/16543946-16373054/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|[🔍 diff](https://fifo.ci/compare/16543968-16373076/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|[🔍 diff](https://fifo.ci/compare/16543882-16372990/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|[🔍 diff](https://fifo.ci/compare/16543978-16373086/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|[🔍 diff](https://fifo.ci/compare/16543981-16373089/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|[🔍 diff](https://fifo.ci/compare/16543889-16372997/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|[🔍 diff](https://fifo.ci/compare/16543868-16372976/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|[🔍 diff](https://fifo.ci/compare/16543992-16373100/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|[🔍 diff](https://fifo.ci/compare/16543920-16373028/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|[🔍 diff](https://fifo.ci/compare/16543951-16373059/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|[🔍 diff](https://fifo.ci/compare/16543897-16373005/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|[🔍 diff](https://fifo.ci/compare/16543953-16373061/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|[🔍 diff](https://fifo.ci/compare/16543980-16373088/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|[🔍 diff](https://fifo.ci/compare/16543922-16373030/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|[🔍 diff](https://fifo.ci/compare/16543921-16373029/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|[🔍 diff](https://fifo.ci/compare/16543995-16373103/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|[🔍 diff](https://fifo.ci/compare/16543917-16373025/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|[🔍 diff](https://fifo.ci/compare/16543938-16373046/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|[🔍 diff](https://fifo.ci/compare/16543924-16373032/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|[🔍 diff](https://fifo.ci/compare/16543939-16373047/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|[🔍 diff](https://fifo.ci/compare/16543887-16372995/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|[🔍 diff](https://fifo.ci/compare/16543914-16373022/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|[🔍 diff](https://fifo.ci/compare/16543943-16373051/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|[🔍 diff](https://fifo.ci/compare/16543936-16373044/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|[🔍 diff](https://fifo.ci/compare/16543929-16373037/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|[🔍 diff](https://fifo.ci/compare/16543902-16373010/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|[🔍 diff](https://fifo.ci/compare/16543932-16373040/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|[🔍 diff](https://fifo.ci/compare/16543873-16372981/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|[🔍 diff](https://fifo.ci/compare/16543973-16373081/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|[🔍 diff](https://fifo.ci/compare/16543883-16372991/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|[🔍 diff](https://fifo.ci/compare/16543928-16373036/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|[🔍 diff](https://fifo.ci/compare/16543972-16373080/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|[🔍 diff](https://fifo.ci/compare/16543991-16373099/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|[🔍 diff](https://fifo.ci/compare/16543990-16373098/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|[🔍 diff](https://fifo.ci/compare/16543863-16372971/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|[🔍 diff](https://fifo.ci/compare/16543999-16373107/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|[🔍 diff](https://fifo.ci/compare/16543912-16373020/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|[🔍 diff](https://fifo.ci/compare/16543884-16372992/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|[🔍 diff](https://fifo.ci/compare/16543864-16372972/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|[🔍 diff](https://fifo.ci/compare/16543892-16373000/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|[🔍 diff](https://fifo.ci/compare/16543904-16373012/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979137472/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', '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}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T10:47:49.752513	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5979158166', 'safe_author': True, 'body': "Whelp. The main dependency, libdatachannel, can use GnuTLS, MbedTLS, or OpenSSL.\r\n\r\nOpenSSL and GnuTLS seem to be massive dependencies to pull in so I think we'll have to use MbedTLS, though I've yet to get CMake to find MbedTLS properly.\r\nIt needs MbedTLS3 (we already depend on v2) so I don't know if that's going to be a major issue.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'id': 5658953473, 'node_id': 'PR_kwDOALCn2M8AAAABGDMPMA', 'number': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', '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)', 'archived_at': None, 'archived_by': None}, {'id': 221809816, 'node_id': 'MDU6TGFiZWwyMjE4MDk4MTY=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC', 'name': 'RFC', 'color': 'FF6D00', 'default': False, 'description': 'Request for comments', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-10-01T07:59:38Z', 'updated_at': '2026-10-04T10:47:47Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14902', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.patch', 'merged_at': None}, 'body': 'This PR adds a web server to Dolphin for control of integrated GBAs.\r\n\r\n<img width="2560" height="1440" alt="image" src="https://github.com/user-attachments/assets/868f6f67-917f-40d7-a150-9e570bc77954" />\r\n\r\nThere are many future possibilities, changing settings, launching games, streaming the main window, etc. \r\nHowever, the current only feature is streaming the integrated GBAs.\r\n\r\nThere\'s no sort of authentication implemented right now.\r\nMultiple clients can connect to the same GBA (they fight over the latest button state).\r\n\r\nConnecting causes the relevant GBA window on the host-side to hide itself and audio to no longer play locally.\r\n\r\nThe main use case is playing Four Swords or Crystal Chronicles, with the GBA screens streamed to mobile devices over the local network.\r\nThis already works well.\r\n\r\nlibavcodec is used to encode to H264/Opus and stream to web browsers using some additional dependencies:\r\n- [cpp-httplib](https://github.com/yhirose/cpp-httplib) for a HTTP and WebSocket server.\r\n- [libdatachannel](https://github.com/paullouisageneau/libdatachannel) for WebRTC\r\n\r\nBoth of these dependencies require C++ exceptions.\r\nI\'ve enabled exceptions for only the required Dolphin source files.\r\n\r\nThe web server hosts files from `Sys/WebUI`\r\nI\'ve also included some 3rd party libraries there in `Sys/WebUI/deps`\r\n- [Notyf](https://github.com/caroso1222/notyf) for "toast" messages.\r\n- [OmniPad](https://github.com/WizardOfXerox/OmniPad) for touch controls.\r\n\r\nThe web client code I\'ve written  is bad and I\'m hoping someone more interested in that side of things wants to re-write all that html/js/css stuff at some point.\r\nThat probably could be done in a future PR, things are working fine as-is, but it\'s ugly (visually and code-wise).\r\n\r\nlibdatachannel has a [bug](https://github.com/paullouisageneau/libdatachannel/issues/1647) with a pending fix that requires `std::locale::global(std::locale::classic());`.\r\nIt\'s only used when a client connects.\r\nSo.. streaming with the web interface will currently mess with locales.\r\nHopefully that bug will be fixed soon, otherwise we could use a clone that has the fix.\r\n\r\nI\'ve only tested building on Linux.\r\nI have almost no clue what I am doing with CMake.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 5, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979158166', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5979158166', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'id': 5979158166, 'node_id': 'IC_kwDOALCn2M8AAAABZGK2lg', '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': '2026-10-04T10:47:47Z', 'updated_at': '2026-10-04T10:47:47Z', 'body': "Whelp. The main dependency, libdatachannel, can use GnuTLS, MbedTLS, or OpenSSL.\r\n\r\nOpenSSL and GnuTLS seem to be massive dependencies to pull in so I think we'll have to use MbedTLS, though I've yet to get CMake to find MbedTLS properly.\r\nIt needs MbedTLS3 (we already depend on v2) so I don't know if that's going to be a major issue.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979158166/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, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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'}
2026-10-04T10:44:47.486288	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'dolphin-ci[bot]', 'action': 'created', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979137472', 'safe_author': False, 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|vk-lin-mesa|\n|-|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|[🔍 diff](https://fifo.ci/compare/16543919-16373027/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|[🔍 diff](https://fifo.ci/compare/16543940-16373048/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|[🔍 diff](https://fifo.ci/compare/16543957-16373065/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|[🔍 diff](https://fifo.ci/compare/16543945-16373053/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|[🔍 diff](https://fifo.ci/compare/16543925-16373033/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|[🔍 diff](https://fifo.ci/compare/16543967-16373075/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|[🔍 diff](https://fifo.ci/compare/16543962-16373070/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|[🔍 diff](https://fifo.ci/compare/16543901-16373009/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|[🔍 diff](https://fifo.ci/compare/16543867-16372975/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|[🔍 diff](https://fifo.ci/compare/16543927-16373035/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|[🔍 diff](https://fifo.ci/compare/16543899-16373007/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|[🔍 diff](https://fifo.ci/compare/16543994-16373102/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|[🔍 diff](https://fifo.ci/compare/16543903-16373011/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|[🔍 diff](https://fifo.ci/compare/16543966-16373074/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|[🔍 diff](https://fifo.ci/compare/16543979-16373087/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|[🔍 diff](https://fifo.ci/compare/16543885-16372993/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|[🔍 diff](https://fifo.ci/compare/16543935-16373043/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|[🔍 diff](https://fifo.ci/compare/16543950-16373058/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|[🔍 diff](https://fifo.ci/compare/16543933-16373041/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|[🔍 diff](https://fifo.ci/compare/16543896-16373004/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|[🔍 diff](https://fifo.ci/compare/16543907-16373015/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|[🔍 diff](https://fifo.ci/compare/16543955-16373063/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|[🔍 diff](https://fifo.ci/compare/16543874-16372982/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|[🔍 diff](https://fifo.ci/compare/16543886-16372994/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|[🔍 diff](https://fifo.ci/compare/16543866-16372974/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|[🔍 diff](https://fifo.ci/compare/16543888-16372996/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|[🔍 diff](https://fifo.ci/compare/16543911-16373019/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|[🔍 diff](https://fifo.ci/compare/16543930-16373038/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|[🔍 diff](https://fifo.ci/compare/16544003-16373111/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|[🔍 diff](https://fifo.ci/compare/16544002-16373110/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|[🔍 diff](https://fifo.ci/compare/16543952-16373060/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|[🔍 diff](https://fifo.ci/compare/16544001-16373109/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|[🔍 diff](https://fifo.ci/compare/16543996-16373104/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|[🔍 diff](https://fifo.ci/compare/16543982-16373090/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|[🔍 diff](https://fifo.ci/compare/16543970-16373078/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|[🔍 diff](https://fifo.ci/compare/16543961-16373069/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|[🔍 diff](https://fifo.ci/compare/16543988-16373096/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|[🔍 diff](https://fifo.ci/compare/16543875-16372983/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|[🔍 diff](https://fifo.ci/compare/16543959-16373067/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|[🔍 diff](https://fifo.ci/compare/16543942-16373050/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|[🔍 diff](https://fifo.ci/compare/16543949-16373057/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|[🔍 diff](https://fifo.ci/compare/16543871-16372979/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|[🔍 diff](https://fifo.ci/compare/16543998-16373106/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|[🔍 diff](https://fifo.ci/compare/16543971-16373079/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|[🔍 diff](https://fifo.ci/compare/16543876-16372984/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|[🔍 diff](https://fifo.ci/compare/16543976-16373084/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|[🔍 diff](https://fifo.ci/compare/16543954-16373062/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|[🔍 diff](https://fifo.ci/compare/16543985-16373093/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|[🔍 diff](https://fifo.ci/compare/16544000-16373108/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|[🔍 diff](https://fifo.ci/compare/16543891-16372999/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|[🔍 diff](https://fifo.ci/compare/16543890-16372998/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|[🔍 diff](https://fifo.ci/compare/16543895-16373003/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|[🔍 diff](https://fifo.ci/compare/16543931-16373039/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|[🔍 diff](https://fifo.ci/compare/16543865-16372973/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|[🔍 diff](https://fifo.ci/compare/16543941-16373049/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|[🔍 diff](https://fifo.ci/compare/16543906-16373014/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|[🔍 diff](https://fifo.ci/compare/16543910-16373018/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|[🔍 diff](https://fifo.ci/compare/16543877-16372985/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|[🔍 diff](https://fifo.ci/compare/16543958-16373066/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|[🔍 diff](https://fifo.ci/compare/16543878-16372986/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|[🔍 diff](https://fifo.ci/compare/16543969-16373077/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|[🔍 diff](https://fifo.ci/compare/16543987-16373095/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|[🔍 diff](https://fifo.ci/compare/16543879-16372987/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|[🔍 diff](https://fifo.ci/compare/16543963-16373071/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|[🔍 diff](https://fifo.ci/compare/16543894-16373002/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|[🔍 diff](https://fifo.ci/compare/16543964-16373072/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|[🔍 diff](https://fifo.ci/compare/16543956-16373064/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|[🔍 diff](https://fifo.ci/compare/16543986-16373094/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|[🔍 diff](https://fifo.ci/compare/16543908-16373016/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|[🔍 diff](https://fifo.ci/compare/16543984-16373092/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|[🔍 diff](https://fifo.ci/compare/16543893-16373001/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|[🔍 diff](https://fifo.ci/compare/16543905-16373013/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|[🔍 diff](https://fifo.ci/compare/16543916-16373024/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|[🔍 diff](https://fifo.ci/compare/16543937-16373045/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|[🔍 diff](https://fifo.ci/compare/16543934-16373042/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|[🔍 diff](https://fifo.ci/compare/16543880-16372988/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|[🔍 diff](https://fifo.ci/compare/16543870-16372978/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|[🔍 diff](https://fifo.ci/compare/16543965-16373073/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|[🔍 diff](https://fifo.ci/compare/16543974-16373082/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|[🔍 diff](https://fifo.ci/compare/16543923-16373031/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|[🔍 diff](https://fifo.ci/compare/16543872-16372980/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|[🔍 diff](https://fifo.ci/compare/16543983-16373091/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|[🔍 diff](https://fifo.ci/compare/16543918-16373026/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|[🔍 diff](https://fifo.ci/compare/16543909-16373017/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|[🔍 diff](https://fifo.ci/compare/16543989-16373097/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|[🔍 diff](https://fifo.ci/compare/16543947-16373055/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|[🔍 diff](https://fifo.ci/compare/16543898-16373006/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|[🔍 diff](https://fifo.ci/compare/16543915-16373023/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|[🔍 diff](https://fifo.ci/compare/16543881-16372989/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|[🔍 diff](https://fifo.ci/compare/16543948-16373056/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|[🔍 diff](https://fifo.ci/compare/16543960-16373068/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|[🔍 diff](https://fifo.ci/compare/16543900-16373008/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|[🔍 diff](https://fifo.ci/compare/16543869-16372977/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|[🔍 diff](https://fifo.ci/compare/16543944-16373052/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|[🔍 diff](https://fifo.ci/compare/16543975-16373083/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|[🔍 diff](https://fifo.ci/compare/16543946-16373054/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|[🔍 diff](https://fifo.ci/compare/16543968-16373076/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|[🔍 diff](https://fifo.ci/compare/16543882-16372990/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|[🔍 diff](https://fifo.ci/compare/16543978-16373086/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|[🔍 diff](https://fifo.ci/compare/16543981-16373089/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|[🔍 diff](https://fifo.ci/compare/16543889-16372997/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|[🔍 diff](https://fifo.ci/compare/16543868-16372976/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|[🔍 diff](https://fifo.ci/compare/16543992-16373100/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|[🔍 diff](https://fifo.ci/compare/16543920-16373028/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|[🔍 diff](https://fifo.ci/compare/16543951-16373059/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|[🔍 diff](https://fifo.ci/compare/16543897-16373005/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|[🔍 diff](https://fifo.ci/compare/16543953-16373061/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|[🔍 diff](https://fifo.ci/compare/16543980-16373088/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|[🔍 diff](https://fifo.ci/compare/16543922-16373030/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|[🔍 diff](https://fifo.ci/compare/16543921-16373029/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|[🔍 diff](https://fifo.ci/compare/16543995-16373103/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|[🔍 diff](https://fifo.ci/compare/16543917-16373025/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|[🔍 diff](https://fifo.ci/compare/16543938-16373046/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|[🔍 diff](https://fifo.ci/compare/16543924-16373032/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|[🔍 diff](https://fifo.ci/compare/16543939-16373047/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|[🔍 diff](https://fifo.ci/compare/16543887-16372995/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|[🔍 diff](https://fifo.ci/compare/16543914-16373022/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|[🔍 diff](https://fifo.ci/compare/16543943-16373051/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|[🔍 diff](https://fifo.ci/compare/16543936-16373044/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|[🔍 diff](https://fifo.ci/compare/16543929-16373037/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|[🔍 diff](https://fifo.ci/compare/16543902-16373010/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|[🔍 diff](https://fifo.ci/compare/16543932-16373040/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|[🔍 diff](https://fifo.ci/compare/16543873-16372981/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|[🔍 diff](https://fifo.ci/compare/16543973-16373081/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|[🔍 diff](https://fifo.ci/compare/16543883-16372991/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|[🔍 diff](https://fifo.ci/compare/16543928-16373036/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|[🔍 diff](https://fifo.ci/compare/16543972-16373080/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|[🔍 diff](https://fifo.ci/compare/16543991-16373099/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|[🔍 diff](https://fifo.ci/compare/16543990-16373098/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|[🔍 diff](https://fifo.ci/compare/16543863-16372971/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|[🔍 diff](https://fifo.ci/compare/16543999-16373107/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|[🔍 diff](https://fifo.ci/compare/16543912-16373020/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|[🔍 diff](https://fifo.ci/compare/16543884-16372992/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|[🔍 diff](https://fifo.ci/compare/16543864-16372972/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|[🔍 diff](https://fifo.ci/compare/16543892-16373000/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|[🔍 diff](https://fifo.ci/compare/16543904-16373012/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'id': 3071950520, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'number': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T10:44:45Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'merged_at': None}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979137472', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979137472', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'id': 5979137472, 'node_id': 'IC_kwDOALCn2M8AAAABZGJlwA', 'user': {'login': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T10:44:45Z', 'updated_at': '2026-10-04T10:44:45Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|vk-lin-mesa|\n|-|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|[🔍 diff](https://fifo.ci/compare/16543919-16373027/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|[🔍 diff](https://fifo.ci/compare/16543940-16373048/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|[🔍 diff](https://fifo.ci/compare/16543957-16373065/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|[🔍 diff](https://fifo.ci/compare/16543945-16373053/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|[🔍 diff](https://fifo.ci/compare/16543925-16373033/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|[🔍 diff](https://fifo.ci/compare/16543967-16373075/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|[🔍 diff](https://fifo.ci/compare/16543962-16373070/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|[🔍 diff](https://fifo.ci/compare/16543901-16373009/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|[🔍 diff](https://fifo.ci/compare/16543867-16372975/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|[🔍 diff](https://fifo.ci/compare/16543927-16373035/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|[🔍 diff](https://fifo.ci/compare/16543899-16373007/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|[🔍 diff](https://fifo.ci/compare/16543994-16373102/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|[🔍 diff](https://fifo.ci/compare/16543903-16373011/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|[🔍 diff](https://fifo.ci/compare/16543966-16373074/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|[🔍 diff](https://fifo.ci/compare/16543979-16373087/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|[🔍 diff](https://fifo.ci/compare/16543885-16372993/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|[🔍 diff](https://fifo.ci/compare/16543935-16373043/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|[🔍 diff](https://fifo.ci/compare/16543950-16373058/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|[🔍 diff](https://fifo.ci/compare/16543933-16373041/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|[🔍 diff](https://fifo.ci/compare/16543896-16373004/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|[🔍 diff](https://fifo.ci/compare/16543907-16373015/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|[🔍 diff](https://fifo.ci/compare/16543955-16373063/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|[🔍 diff](https://fifo.ci/compare/16543874-16372982/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|[🔍 diff](https://fifo.ci/compare/16543886-16372994/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|[🔍 diff](https://fifo.ci/compare/16543866-16372974/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|[🔍 diff](https://fifo.ci/compare/16543888-16372996/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|[🔍 diff](https://fifo.ci/compare/16543911-16373019/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|[🔍 diff](https://fifo.ci/compare/16543930-16373038/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|[🔍 diff](https://fifo.ci/compare/16544003-16373111/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|[🔍 diff](https://fifo.ci/compare/16544002-16373110/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|[🔍 diff](https://fifo.ci/compare/16543952-16373060/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|[🔍 diff](https://fifo.ci/compare/16544001-16373109/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|[🔍 diff](https://fifo.ci/compare/16543996-16373104/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|[🔍 diff](https://fifo.ci/compare/16543982-16373090/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|[🔍 diff](https://fifo.ci/compare/16543970-16373078/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|[🔍 diff](https://fifo.ci/compare/16543961-16373069/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|[🔍 diff](https://fifo.ci/compare/16543988-16373096/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|[🔍 diff](https://fifo.ci/compare/16543875-16372983/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|[🔍 diff](https://fifo.ci/compare/16543959-16373067/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|[🔍 diff](https://fifo.ci/compare/16543942-16373050/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|[🔍 diff](https://fifo.ci/compare/16543949-16373057/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|[🔍 diff](https://fifo.ci/compare/16543871-16372979/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|[🔍 diff](https://fifo.ci/compare/16543998-16373106/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|[🔍 diff](https://fifo.ci/compare/16543971-16373079/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|[🔍 diff](https://fifo.ci/compare/16543876-16372984/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|[🔍 diff](https://fifo.ci/compare/16543976-16373084/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|[🔍 diff](https://fifo.ci/compare/16543954-16373062/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|[🔍 diff](https://fifo.ci/compare/16543985-16373093/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|[🔍 diff](https://fifo.ci/compare/16544000-16373108/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|[🔍 diff](https://fifo.ci/compare/16543891-16372999/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|[🔍 diff](https://fifo.ci/compare/16543890-16372998/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|[🔍 diff](https://fifo.ci/compare/16543895-16373003/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|[🔍 diff](https://fifo.ci/compare/16543931-16373039/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|[🔍 diff](https://fifo.ci/compare/16543865-16372973/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|[🔍 diff](https://fifo.ci/compare/16543941-16373049/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|[🔍 diff](https://fifo.ci/compare/16543906-16373014/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|[🔍 diff](https://fifo.ci/compare/16543910-16373018/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|[🔍 diff](https://fifo.ci/compare/16543877-16372985/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|[🔍 diff](https://fifo.ci/compare/16543958-16373066/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|[🔍 diff](https://fifo.ci/compare/16543878-16372986/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|[🔍 diff](https://fifo.ci/compare/16543969-16373077/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|[🔍 diff](https://fifo.ci/compare/16543987-16373095/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|[🔍 diff](https://fifo.ci/compare/16543879-16372987/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|[🔍 diff](https://fifo.ci/compare/16543963-16373071/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|[🔍 diff](https://fifo.ci/compare/16543894-16373002/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|[🔍 diff](https://fifo.ci/compare/16543964-16373072/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|[🔍 diff](https://fifo.ci/compare/16543956-16373064/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|[🔍 diff](https://fifo.ci/compare/16543986-16373094/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|[🔍 diff](https://fifo.ci/compare/16543908-16373016/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|[🔍 diff](https://fifo.ci/compare/16543984-16373092/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|[🔍 diff](https://fifo.ci/compare/16543893-16373001/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|[🔍 diff](https://fifo.ci/compare/16543905-16373013/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|[🔍 diff](https://fifo.ci/compare/16543916-16373024/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|[🔍 diff](https://fifo.ci/compare/16543937-16373045/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|[🔍 diff](https://fifo.ci/compare/16543934-16373042/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|[🔍 diff](https://fifo.ci/compare/16543880-16372988/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|[🔍 diff](https://fifo.ci/compare/16543870-16372978/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|[🔍 diff](https://fifo.ci/compare/16543965-16373073/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|[🔍 diff](https://fifo.ci/compare/16543974-16373082/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|[🔍 diff](https://fifo.ci/compare/16543923-16373031/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|[🔍 diff](https://fifo.ci/compare/16543872-16372980/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|[🔍 diff](https://fifo.ci/compare/16543983-16373091/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|[🔍 diff](https://fifo.ci/compare/16543918-16373026/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|[🔍 diff](https://fifo.ci/compare/16543909-16373017/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|[🔍 diff](https://fifo.ci/compare/16543989-16373097/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|[🔍 diff](https://fifo.ci/compare/16543947-16373055/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|[🔍 diff](https://fifo.ci/compare/16543898-16373006/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|[🔍 diff](https://fifo.ci/compare/16543915-16373023/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|[🔍 diff](https://fifo.ci/compare/16543881-16372989/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|[🔍 diff](https://fifo.ci/compare/16543948-16373056/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|[🔍 diff](https://fifo.ci/compare/16543960-16373068/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|[🔍 diff](https://fifo.ci/compare/16543900-16373008/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|[🔍 diff](https://fifo.ci/compare/16543869-16372977/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|[🔍 diff](https://fifo.ci/compare/16543944-16373052/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|[🔍 diff](https://fifo.ci/compare/16543975-16373083/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|[🔍 diff](https://fifo.ci/compare/16543946-16373054/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|[🔍 diff](https://fifo.ci/compare/16543968-16373076/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|[🔍 diff](https://fifo.ci/compare/16543882-16372990/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|[🔍 diff](https://fifo.ci/compare/16543978-16373086/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|[🔍 diff](https://fifo.ci/compare/16543981-16373089/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|[🔍 diff](https://fifo.ci/compare/16543889-16372997/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|[🔍 diff](https://fifo.ci/compare/16543868-16372976/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|[🔍 diff](https://fifo.ci/compare/16543992-16373100/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|[🔍 diff](https://fifo.ci/compare/16543920-16373028/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|[🔍 diff](https://fifo.ci/compare/16543951-16373059/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|[🔍 diff](https://fifo.ci/compare/16543897-16373005/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|[🔍 diff](https://fifo.ci/compare/16543953-16373061/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|[🔍 diff](https://fifo.ci/compare/16543980-16373088/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|[🔍 diff](https://fifo.ci/compare/16543922-16373030/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|[🔍 diff](https://fifo.ci/compare/16543921-16373029/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|[🔍 diff](https://fifo.ci/compare/16543995-16373103/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|[🔍 diff](https://fifo.ci/compare/16543917-16373025/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|[🔍 diff](https://fifo.ci/compare/16543938-16373046/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|[🔍 diff](https://fifo.ci/compare/16543924-16373032/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|[🔍 diff](https://fifo.ci/compare/16543939-16373047/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|[🔍 diff](https://fifo.ci/compare/16543887-16372995/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|[🔍 diff](https://fifo.ci/compare/16543914-16373022/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|[🔍 diff](https://fifo.ci/compare/16543943-16373051/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|[🔍 diff](https://fifo.ci/compare/16543936-16373044/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|[🔍 diff](https://fifo.ci/compare/16543929-16373037/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|[🔍 diff](https://fifo.ci/compare/16543902-16373010/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|[🔍 diff](https://fifo.ci/compare/16543932-16373040/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|[🔍 diff](https://fifo.ci/compare/16543873-16372981/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|[🔍 diff](https://fifo.ci/compare/16543973-16373081/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|[🔍 diff](https://fifo.ci/compare/16543883-16372991/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|[🔍 diff](https://fifo.ci/compare/16543928-16373036/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|[🔍 diff](https://fifo.ci/compare/16543972-16373080/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|[🔍 diff](https://fifo.ci/compare/16543991-16373099/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|[🔍 diff](https://fifo.ci/compare/16543990-16373098/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|[🔍 diff](https://fifo.ci/compare/16543863-16372971/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|[🔍 diff](https://fifo.ci/compare/16543999-16373107/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|[🔍 diff](https://fifo.ci/compare/16543912-16373020/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|[🔍 diff](https://fifo.ci/compare/16543884-16372992/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|[🔍 diff](https://fifo.ci/compare/16543864-16372972/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|[🔍 diff](https://fifo.ci/compare/16543892-16373000/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|[🔍 diff](https://fifo.ci/compare/16543904-16373012/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979137472/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', '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}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T10:44:45.378188	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'dolphin-ci[bot]', 'action': 'deleted', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979052529', 'safe_author': False, 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|\n|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'id': 3071950520, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'number': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T10:38:02Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'merged_at': None}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979052529', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979052529', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'id': 5979052529, 'node_id': 'IC_kwDOALCn2M8AAAABZGEZ8Q', 'user': {'login': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T10:32:04Z', 'updated_at': '2026-10-04T10:32:04Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|\n|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979052529/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', '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}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T10:32:06.777430	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'dolphin-ci[bot]', 'action': 'created', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979052529', 'safe_author': False, 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|\n|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'id': 3071950520, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'number': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T10:32:04Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'merged_at': None}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979052529', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#issuecomment-5979052529', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'id': 5979052529, 'node_id': 'IC_kwDOALCn2M8AAAABZGEZ8Q', 'user': {'login': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T10:32:04Z', 'updated_at': '2026-10-04T10:32:04Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/aac2e830a93fea36dc4049ca1b8933bc23db6809/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||ogl-lin-mesa|\n|-|-|\n|DKCR-Char|[🔍 diff](https://fifo.ci/compare/16543637-16372745/)|\n|DKCR-fast-depth|[🔍 diff](https://fifo.ci/compare/16543658-16372766/)|\n|MaS-LOG-wiimote|[🔍 diff](https://fifo.ci/compare/16543675-16372783/)|\n|ab11-homebrew|[🔍 diff](https://fifo.ci/compare/16543663-16372771/)|\n|aeon-charge-attack|[🔍 diff](https://fifo.ci/compare/16543643-16372751/)|\n|bk-tev|[🔍 diff](https://fifo.ci/compare/16543685-16372793/)|\n|burnout2-vehicletextures|[🔍 diff](https://fifo.ci/compare/16543680-16372788/)|\n|chibi-robo-fastdepth|[🔍 diff](https://fifo.ci/compare/16543619-16372727/)|\n|chibi-robo-zfighting|[🔍 diff](https://fifo.ci/compare/16543585-16372693/)|\n|custom-brawl-char|[🔍 diff](https://fifo.ci/compare/16543645-16372753/)|\n|dbz-depth|[🔍 diff](https://fifo.ci/compare/16543617-16372725/)|\n|default-depth-range|[🔍 diff](https://fifo.ci/compare/16543712-16372820/)|\n|djfny-menu|[🔍 diff](https://fifo.ci/compare/16543621-16372729/)|\n|djhero2-blend|[🔍 diff](https://fifo.ci/compare/16543684-16372792/)|\n|ea-pink|[🔍 diff](https://fifo.ci/compare/16543697-16372805/)|\n|ea-vp6|[🔍 diff](https://fifo.ci/compare/16543603-16372711/)|\n|ed-updated|[🔍 diff](https://fifo.ci/compare/16543653-16372761/)|\n|et-vid|[🔍 diff](https://fifo.ci/compare/16543668-16372776/)|\n|f-zero-rain|[🔍 diff](https://fifo.ci/compare/16543651-16372759/)|\n|fifa-street|[🔍 diff](https://fifo.ci/compare/16543614-16372722/)|\n|find-mii|[🔍 diff](https://fifo.ci/compare/16543625-16372733/)|\n|fishing-resort-map|[🔍 diff](https://fifo.ci/compare/16543673-16372781/)|\n|fog-adj|[🔍 diff](https://fifo.ci/compare/16543592-16372700/)|\n|fortune-street|[🔍 diff](https://fifo.ci/compare/16543604-16372712/)|\n|fortune-street-fog|[🔍 diff](https://fifo.ci/compare/16543584-16372692/)|\n|fortune-street-white-box|[🔍 diff](https://fifo.ci/compare/16543606-16372714/)|\n|fsa-layers|[🔍 diff](https://fifo.ci/compare/16543629-16372737/)|\n|goldeneye-depth|[🔍 diff](https://fifo.ci/compare/16543648-16372756/)|\n|gx-points|[🔍 diff](https://fifo.ci/compare/16543721-16372829/)|\n|harvest-moon-mm-shadows|[🔍 diff](https://fifo.ci/compare/16543720-16372828/)|\n|hb-discgolf|[🔍 diff](https://fifo.ci/compare/16543670-16372778/)|\n|hotwheels-shadows|[🔍 diff](https://fifo.ci/compare/16543719-16372827/)|\n|inverted-depth-range|[🔍 diff](https://fifo.ci/compare/16543714-16372822/)|\n|jb-shadow|[🔍 diff](https://fifo.ci/compare/16543700-16372808/)|\n|jd2-fmv|[🔍 diff](https://fifo.ci/compare/16543688-16372796/)|\n|jj-awae-mirrored|[🔍 diff](https://fifo.ci/compare/16543679-16372787/)|\n|kirby-logicop|[🔍 diff](https://fifo.ci/compare/16543706-16372814/)|\n|kirby-shadows|[🔍 diff](https://fifo.ci/compare/16543593-16372701/)|\n|last-story-shadows|[🔍 diff](https://fifo.ci/compare/16543677-16372785/)|\n|lego-star-wars-crane-shadow|[🔍 diff](https://fifo.ci/compare/16543660-16372768/)|\n|lesson08|[🔍 diff](https://fifo.ci/compare/16543667-16372775/)|\n|line-width-test|[🔍 diff](https://fifo.ci/compare/16543589-16372697/)|\n|lit-cached-normal|[🔍 diff](https://fifo.ci/compare/16543716-16372824/)|\n|lm-mario-portrait|[🔍 diff](https://fifo.ci/compare/16543689-16372797/)|\n|luigi-shadows|[🔍 diff](https://fifo.ci/compare/16543594-16372702/)|\n|major-minor|[🔍 diff](https://fifo.ci/compare/16543694-16372802/)|\n|mario-baseball-shadows|[🔍 diff](https://fifo.ci/compare/16543672-16372780/)|\n|mario-golf-oob|[🔍 diff](https://fifo.ci/compare/16543703-16372811/)|\n|mario-golf-vertex-expansion|[🔍 diff](https://fifo.ci/compare/16543718-16372826/)|\n|mario-sluggers-bar|[🔍 diff](https://fifo.ci/compare/16543609-16372717/)|\n|mario-tennis-menu|[🔍 diff](https://fifo.ci/compare/16543608-16372716/)|\n|megaman-heat|[🔍 diff](https://fifo.ci/compare/16543613-16372721/)|\n|melee-depth|[🔍 diff](https://fifo.ci/compare/16543649-16372757/)|\n|melee-lighting|[🔍 diff](https://fifo.ci/compare/16543583-16372691/)|\n|metroid-visor|[🔍 diff](https://fifo.ci/compare/16543659-16372767/)|\n|mii-channel|[🔍 diff](https://fifo.ci/compare/16543624-16372732/)|\n|milotic-texture|[🔍 diff](https://fifo.ci/compare/16543628-16372736/)|\n|mini-ninjas|[🔍 diff](https://fifo.ci/compare/16543595-16372703/)|\n|mkdd-babypark|[🔍 diff](https://fifo.ci/compare/16543676-16372784/)|\n|mkdd-efb|[🔍 diff](https://fifo.ci/compare/16543596-16372704/)|\n|mkw-bridge|[🔍 diff](https://fifo.ci/compare/16543687-16372795/)|\n|mkw-flags|[🔍 diff](https://fifo.ci/compare/16543705-16372813/)|\n|mkwii-bluebox|[🔍 diff](https://fifo.ci/compare/16543597-16372705/)|\n|mmx-light|[🔍 diff](https://fifo.ci/compare/16543681-16372789/)|\n|monkeyball-fuse|[🔍 diff](https://fifo.ci/compare/16543612-16372720/)|\n|mp2-scanner|[🔍 diff](https://fifo.ci/compare/16543682-16372790/)|\n|mp3-bloom|[🔍 diff](https://fifo.ci/compare/16543674-16372782/)|\n|mp4-vertexcache|[🔍 diff](https://fifo.ci/compare/16543704-16372812/)|\n|mp7-text|[🔍 diff](https://fifo.ci/compare/16543626-16372734/)|\n|mp8-widescreen|[🔍 diff](https://fifo.ci/compare/16543702-16372810/)|\n|mtennis-zfreeze|[🔍 diff](https://fifo.ci/compare/16543611-16372719/)|\n|my-word-coach|[🔍 diff](https://fifo.ci/compare/16543623-16372731/)|\n|nddemo-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543634-16372742/)|\n|nddemo-lighting|[🔍 diff](https://fifo.ci/compare/16543655-16372763/)|\n|nes-vc|[🔍 diff](https://fifo.ci/compare/16543652-16372760/)|\n|nfsu-purplerect|[🔍 diff](https://fifo.ci/compare/16543598-16372706/)|\n|nfsu-reflections|[🔍 diff](https://fifo.ci/compare/16543588-16372696/)|\n|nhl-slap|[🔍 diff](https://fifo.ci/compare/16543683-16372791/)|\n|nintendo-channel|[🔍 diff](https://fifo.ci/compare/16543692-16372800/)|\n|nsmbw-coins|[🔍 diff](https://fifo.ci/compare/16543641-16372749/)|\n|nsmbw-intro|[🔍 diff](https://fifo.ci/compare/16543590-16372698/)|\n|pbr-sfx|[🔍 diff](https://fifo.ci/compare/16543701-16372809/)|\n|pm-hc-jp|[🔍 diff](https://fifo.ci/compare/16543636-16372744/)|\n|pw-black-bars|[🔍 diff](https://fifo.ci/compare/16543627-16372735/)|\n|quake-gx|[🔍 diff](https://fifo.ci/compare/16543707-16372815/)|\n|rs2-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543665-16372773/)|\n|rs2-glass|[🔍 diff](https://fifo.ci/compare/16543616-16372724/)|\n|rs2-skybox|[🔍 diff](https://fifo.ci/compare/16543633-16372741/)|\n|rs2-zfreeze|[🔍 diff](https://fifo.ci/compare/16543599-16372707/)|\n|rs3-bumpmapping|[🔍 diff](https://fifo.ci/compare/16543666-16372774/)|\n|rs3-skybox2|[🔍 diff](https://fifo.ci/compare/16543678-16372786/)|\n|sadx-ui|[🔍 diff](https://fifo.ci/compare/16543618-16372726/)|\n|sf-assault-flashing|[🔍 diff](https://fifo.ci/compare/16543587-16372695/)|\n|sfa-shadows|[🔍 diff](https://fifo.ci/compare/16543662-16372770/)|\n|shadow-eyes|[🔍 diff](https://fifo.ci/compare/16543693-16372801/)|\n|simpsons-game|[🔍 diff](https://fifo.ci/compare/16543664-16372772/)|\n|smb-mirror|[🔍 diff](https://fifo.ci/compare/16543686-16372794/)|\n|smg-marioeyes|[🔍 diff](https://fifo.ci/compare/16543600-16372708/)|\n|smg-mmg|[🔍 diff](https://fifo.ci/compare/16543696-16372804/)|\n|smg-roar|[🔍 diff](https://fifo.ci/compare/16543699-16372807/)|\n|smg2-fog|[🔍 diff](https://fifo.ci/compare/16543607-16372715/)|\n|sms-bubbles|[🔍 diff](https://fifo.ci/compare/16543586-16372694/)|\n|sms-coconut-drinks|[🔍 diff](https://fifo.ci/compare/16543710-16372818/)|\n|sms-gc|[🔍 diff](https://fifo.ci/compare/16543638-16372746/)|\n|sms-water|[🔍 diff](https://fifo.ci/compare/16543669-16372777/)|\n|soa-black|[🔍 diff](https://fifo.ci/compare/16543615-16372723/)|\n|sonic-riders-blur|[🔍 diff](https://fifo.ci/compare/16543671-16372779/)|\n|sonic-riders-zg-4p|[🔍 diff](https://fifo.ci/compare/16543698-16372806/)|\n|soniccolors-mm|[🔍 diff](https://fifo.ci/compare/16543640-16372748/)|\n|sonicriderszg-gb|[🔍 diff](https://fifo.ci/compare/16543639-16372747/)|\n|spider-man-inverted-depth|[🔍 diff](https://fifo.ci/compare/16543713-16372821/)|\n|spyro-bloom|[🔍 diff](https://fifo.ci/compare/16543635-16372743/)|\n|spyro-depth|[🔍 diff](https://fifo.ci/compare/16543656-16372764/)|\n|ss-map|[🔍 diff](https://fifo.ci/compare/16543642-16372750/)|\n|ssbb-mod-lloyd|[🔍 diff](https://fifo.ci/compare/16543657-16372765/)|\n|ssbm-pointsize|[🔍 diff](https://fifo.ci/compare/16543605-16372713/)|\n|super-sluggers-white-out|[🔍 diff](https://fifo.ci/compare/16543632-16372740/)|\n|sw3-dt|[🔍 diff](https://fifo.ci/compare/16543661-16372769/)|\n|taiko-depth|[🔍 diff](https://fifo.ci/compare/16543654-16372762/)|\n|thps3-earlyz|[🔍 diff](https://fifo.ci/compare/16543647-16372755/)|\n|thps4-shadow|[🔍 diff](https://fifo.ci/compare/16543620-16372728/)|\n|tla-menu|[🔍 diff](https://fifo.ci/compare/16543650-16372758/)|\n|tos-invis-char|[🔍 diff](https://fifo.ci/compare/16543591-16372699/)|\n|tp-skin|[🔍 diff](https://fifo.ci/compare/16543691-16372799/)|\n|tsp3-pinkgrass|[🔍 diff](https://fifo.ci/compare/16543601-16372709/)|\n|vegas-party-depth|[🔍 diff](https://fifo.ci/compare/16543646-16372754/)|\n|viewitful-joe-distortion|[🔍 diff](https://fifo.ci/compare/16543690-16372798/)|\n|ww-song-of-passing|[🔍 diff](https://fifo.ci/compare/16543709-16372817/)|\n|xblade-bloom|[🔍 diff](https://fifo.ci/compare/16543708-16372816/)|\n|xenoblade-menu|[🔍 diff](https://fifo.ci/compare/16543581-16372689/)|\n|zbuff-test|[🔍 diff](https://fifo.ci/compare/16543717-16372825/)|\n|zelda1-vc|[🔍 diff](https://fifo.ci/compare/16543630-16372738/)|\n|ztp-grass|[🔍 diff](https://fifo.ci/compare/16543602-16372710/)|\n|zww-armos|[🔍 diff](https://fifo.ci/compare/16543582-16372690/)|\n|zww-water|[🔍 diff](https://fifo.ci/compare/16543610-16372718/)|\n|zww-waves|[🔍 diff](https://fifo.ci/compare/16543622-16372730/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5979052529/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': {'id': 49947, 'client_id': 'Iv1.1fcaea7644d8b727', 'slug': 'dolphin-ci', 'node_id': 'MDM6QXBwNDk5NDc=', '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}, 'name': 'Dolphin CI', 'description': 'Continuous Integration setup for [dolphin-emu.org](https://dolphin-emu.org/).', 'external_url': 'https://github.com/dolphin-emu', 'html_url': 'https://github.com/apps/dolphin-ci', 'created_at': '2019-12-26T22:26:07Z', 'updated_at': '2019-12-26T22:33:19Z', 'permissions': {'checks': 'write', 'contents': 'read', 'issues': 'write', 'members': 'read', 'metadata': 'read', 'pull_requests': 'write', 'statuses': 'write'}, 'events': ['check_run', 'commit_comment', 'issue_comment', 'pull_request', 'pull_request_review', 'pull_request_review_comment', 'push']}, 'minimized': 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': '2026-10-04T07:50:22Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15610, 'watchers_count': 15610, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15610, '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': 'dolphin-ci[bot]', 'id': 59266906, 'node_id': 'MDM6Qm90NTkyNjY5MDY=', 'avatar_url': 'https://avatars.githubusercontent.com/in/49947?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D', 'html_url': 'https://github.com/apps/dolphin-ci', 'followers_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/followers', 'following_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/orgs', 'repos_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/repos', 'events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-ci%5Bbot%5D/received_events', 'type': 'Bot', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T04:29:18.548390	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976576471', 'safe_author': False, 'body': '> @Starlightbotanist - thanks for tweaking the comment. Can you please merge commit 2 and 3? No need to give me credit, this is all your hard work!\r\n\r\nSquash is done. Thank you all for all your help. This fix is in a lot better shape now than when first submitted. ', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 21, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T04:29:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976576471', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976576471', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5976576471, 'node_id': 'IC_kwDOALCn2M8AAAABZDtR1w', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T04:29:16Z', 'updated_at': '2026-10-04T04:29:16Z', 'body': '> @Starlightbotanist - thanks for tweaking the comment. Can you please merge commit 2 and 3? No need to give me credit, this is all your hard work!\r\n\r\nSquash is done. Thank you all for all your help. This fix is in a lot better shape now than when first submitted. ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976576471/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, 'minimized': 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': '2026-10-04T04:27:42Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561280, 'stargazers_count': 15609, 'watchers_count': 15609, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15609, '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': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T04:19:18.275985	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976513335', 'safe_author': True, 'body': '@Starlightbotanist  - thanks for tweaking the comment.  Can you please merge commit 2 and 3?  No need to give me credit, this is all your hard work!', 'raw': {'action': 'edited', 'changes': {'body': {'from': '@Starlightbotanist  - thanks for tweaking the comment.  Can you please squash commit 2 and 3?  No need to give me credit, this is all your hard work!'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 20, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T04:18:48Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976513335', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976513335', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5976513335, 'node_id': 'IC_kwDOALCn2M8AAAABZDpbNw', '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': '2026-10-04T04:18:48Z', 'updated_at': '2026-10-04T04:19:16Z', 'body': '@Starlightbotanist  - thanks for tweaking the comment.  Can you please merge commit 2 and 3?  No need to give me credit, this is all your hard work!', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976513335/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, 'minimized': 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': '2026-10-04T02:31:37Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561280, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15608, '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'}
2026-10-04T04:18:50.040832	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976513335', 'safe_author': True, 'body': '@Starlightbotanist  - thanks for tweaking the comment.  Can you please squash commit 2 and 3?  No need to give me credit, this is all your hard work!', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 20, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T04:18:48Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976513335', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976513335', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5976513335, 'node_id': 'IC_kwDOALCn2M8AAAABZDpbNw', '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': '2026-10-04T04:18:48Z', 'updated_at': '2026-10-04T04:18:48Z', 'body': '@Starlightbotanist  - thanks for tweaking the comment.  Can you please squash commit 2 and 3?  No need to give me credit, this is all your hard work!', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976513335/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, 'minimized': 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': '2026-10-04T02:31:37Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561280, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15608, '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'}
2026-10-04T04:06:48.496865	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976409759', 'safe_author': False, 'body': 'Change the source of runtime zero to `konstLookup[8]` at the suggestion of TellowKrinkle. ', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 19, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T04:06:46Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976409759', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5976409759', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5976409759, 'node_id': 'IC_kwDOALCn2M8AAAABZDjGnw', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T04:06:46Z', 'updated_at': '2026-10-04T04:06:46Z', 'body': 'Change the source of runtime zero to `konstLookup[8]` at the suggestion of TellowKrinkle. ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5976409759/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, 'minimized': 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': '2026-10-04T02:31:37Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561280, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 474, 'watchers': 15608, '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': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T01:52:40.673846	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'safe_author': True, 'body': '> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they\'re both equally arbitrary.  They\'re both being used because we know what value they contain, not because they\'re relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn\'t require you picking it out with the stage index since it\'s always the same, rather than only the current stage\'s version matching.\r\n\r\n(And also I don\'t really like the fact that the current one kind of looks like it\'s more than a random constant, when it really isn\'t.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that\'s always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)\r\n\r\nThe entire reason I looked at that comment in the first place is because I was incredibly confused as to why they were adding an `^ {}u` with one of the enum constants casted to an int ("you do realize TevColorArg::Zero isn\'t zero right?"), which seemed really weird.  And while it does make sense with a long enough comment, it would be nice to just not need that.', 'raw': {'action': 'edited', 'changes': {'body': {'from': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)\r\n\r\nThe entire reason I looked at that comment in the first place is because I was incredibly confused as to why they were adding an `^ {}u` with one of the enum constants casted to an int, which seemed really weird.  And while it does make sense with a long enough comment, it would be nice to just not need that."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T01:51:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975426577, 'node_id': 'IC_kwDOALCn2M8AAAABZCnGEQ', '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}, 'created_at': '2026-10-04T01:33:22Z', 'updated_at': '2026-10-04T01:52:39Z', 'body': '> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they\'re both equally arbitrary.  They\'re both being used because we know what value they contain, not because they\'re relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn\'t require you picking it out with the stage index since it\'s always the same, rather than only the current stage\'s version matching.\r\n\r\n(And also I don\'t really like the fact that the current one kind of looks like it\'s more than a random constant, when it really isn\'t.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that\'s always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)\r\n\r\nThe entire reason I looked at that comment in the first place is because I was incredibly confused as to why they were adding an `^ {}u` with one of the enum constants casted to an int ("you do realize TevColorArg::Zero isn\'t zero right?"), which seemed really weird.  And while it does make sense with a long enough comment, it would be nice to just not need that.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577/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, 'minimized': 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': '2026-10-04T01:38:50Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561269, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 473, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 473, 'watchers': 15608, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T01:51:17.939866	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'safe_author': True, 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)\r\n\r\nThe entire reason I looked at that comment in the first place is because I was incredibly confused as to why they were adding an `^ {}u` with one of the enum constants casted to an int, which seemed really weird.  And while it does make sense with a long enough comment, it would be nice to just not need that.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T01:47:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975426577, 'node_id': 'IC_kwDOALCn2M8AAAABZCnGEQ', '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}, 'created_at': '2026-10-04T01:33:22Z', 'updated_at': '2026-10-04T01:51:16Z', 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)\r\n\r\nThe entire reason I looked at that comment in the first place is because I was incredibly confused as to why they were adding an `^ {}u` with one of the enum constants casted to an int, which seemed really weird.  And while it does make sense with a long enough comment, it would be nice to just not need that.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577/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, 'minimized': 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': '2026-10-04T01:38:50Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561269, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 473, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 473, 'watchers': 15608, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T01:47:18.064440	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'safe_author': True, 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)", 'raw': {'action': 'edited', 'changes': {'body': {'from': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T01:33:22Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975426577, 'node_id': 'IC_kwDOALCn2M8AAAABZCnGEQ', '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}, 'created_at': '2026-10-04T01:33:22Z', 'updated_at': '2026-10-04T01:47:16Z', 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.\r\n\r\n(And also I don't really like the fact that the current one kind of looks like it's more than a random constant, when it really isn't.  Makes the comment shorter too, `// To work around this, use an otherwise-unused value from the constant buffer that's always zero.`  Maybe to make it really obvious, we could replace `fogcolor` with an `int3`, then add an `int zero` after it.)", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577/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, 'minimized': 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': '2026-10-04T01:38:50Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561269, 'stargazers_count': 15608, 'watchers_count': 15608, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 473, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 473, 'watchers': 15608, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T01:33:24.810956	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'safe_author': True, 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 18, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T01:33:22Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975426577', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975426577, 'node_id': 'IC_kwDOALCn2M8AAAABZCnGEQ', '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}, 'created_at': '2026-10-04T01:33:22Z', 'updated_at': '2026-10-04T01:33:22Z', 'body': "> Personally, leaning toward not using a random constant value as a shader compiler fake out.\r\n\r\nI guess to me they're both equally arbitrary.  They're both being used because we know what value they contain, not because they're relevant for the calculation.  I just prefer fogcolor.a because the known value is already zero, and also because it doesn't require you picking it out with the stage index since it's always the same, rather than only the current stage's version matching.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975426577/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, 'minimized': 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': '2026-10-04T01:14:45Z', 'pushed_at': '2026-10-04T01:14:39Z', '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': 561269, 'stargazers_count': 15607, 'watchers_count': 15607, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 473, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 473, 'watchers': 15607, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T01:04:03.743475	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975229542', 'safe_author': True, 'body': "> I just tried I_FOGCOLOR.a and that actually does work! I would have never thought to try that.\r\n\r\nPersonally, leaning toward not using a random constant value as a shader compiler fake out.  But maybe I'm not understanding the flow.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T01:04:02Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975229542', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975229542', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975229542, 'node_id': 'IC_kwDOALCn2M8AAAABZCbEZg', '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': '2026-10-04T01:04:02Z', 'updated_at': '2026-10-04T01:04:02Z', 'body': "> I just tried I_FOGCOLOR.a and that actually does work! I would have never thought to try that.\r\n\r\nPersonally, leaning toward not using a random constant value as a shader compiler fake out.  But maybe I'm not understanding the flow.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975229542/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, 'minimized': 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': '2026-10-04T00:25:06Z', 'pushed_at': '2026-10-03T10:25:06Z', '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': 561269, 'stargazers_count': 15607, 'watchers_count': 15607, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 474, 'watchers': 15607, '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'}
2026-10-04T01:00:26.294195	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'safe_author': False, 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable and an identity function. The compiler still performed the broken optimization in both cases. \r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable and an identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T00:58:32Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975188336, 'node_id': 'IC_kwDOALCn2M8AAAABZCYjcA', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T00:57:54Z', 'updated_at': '2026-10-04T01:00:25Z', 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable and an identity function. The compiler still performed the broken optimization in both cases. \r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336/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, 'minimized': 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': '2026-10-04T00:25:06Z', 'pushed_at': '2026-10-03T10:25:06Z', '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': 561269, 'stargazers_count': 15607, 'watchers_count': 15607, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 474, 'watchers': 15607, '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': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T00:58:33.226935	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'edited', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'safe_author': False, 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable and an identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable a driver identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T00:57:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975188336, 'node_id': 'IC_kwDOALCn2M8AAAABZCYjcA', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T00:57:54Z', 'updated_at': '2026-10-04T00:58:32Z', 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable and an identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336/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, 'minimized': 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': '2026-10-04T00:25:06Z', 'pushed_at': '2026-10-03T10:25:06Z', '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': 561269, 'stargazers_count': 15607, 'watchers_count': 15607, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 474, 'watchers': 15607, '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': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-10-04T00:57:56.442753	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'safe_author': False, 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable a driver identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'id': 5638871264, 'node_id': 'PR_kwDOALCn2M8AAAABFzHTrw', 'number': 14899, 'title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2026-09-30T00:18:33Z', 'updated_at': '2026-10-04T00:57:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14899.patch', 'merged_at': None}, 'body': 'In compliance with [Dolphin\'s Generative AI policy](https://github.com/dolphin-emu/dolphin/blob/5102a0339c2177575378107b76541e47cc52122d/Contributing.md#genai), be aware that debugging this issue, and drafting possible fixes was done with assistance from Codex. The final code is my own and understood by me, but determining the cause of this wouldn\'t have been possible for me without an LLM.  This doesn\'t change any emulated behavior. It provides a workaround for an incorrect behavior caused by a GPU driver. This reuses existing combiner data that ubershaders already use.\r\n\r\nI am sure everyone has noticed bug reports for color issues from Android users with devices that have Qualcomm\'s Adreno GPU drivers, versions in the v0.7xx.xx+ range. Some common games I have seen with this issue New Super Mario Bros Wii, Animal Crossing City Folk, and Luigi\'s Mansion. Screenshots taken on a Samsung Galaxy S26.\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191017_Dolphin Emulator" src="https://github.com/user-attachments/assets/cbad3160-e16d-4fbc-9381-7b6701efd326" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191147_Dolphin Emulator" src="https://github.com/user-attachments/assets/4904c9f0-d32c-413f-8526-d5d87edddc7c" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191333_Dolphin Emulator" src="https://github.com/user-attachments/assets/571da096-38d0-4139-861e-3915e32fa4af" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191213_Dolphin Emulator" src="https://github.com/user-attachments/assets/08928aa2-d727-447e-b70f-0d7620029b28" />\r\n\r\nThis happens with Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, regardless of video backend. Using Specialized compilation, the colors will always be wrong in an effected game. Using Hybrid, it happens only when in Specialized mode (and it can cause a flickering effect when it switches between specialized and ubershaders). Using Exclusive Ubershaders never presents this issue.\r\n\r\nBefore this change, when the color input A or B of a TEV stage was set to Zero, the specialized shader generator looked that input up in the table and wrote the returned constant into the line that builds the stage\'s first input. On drivers version 0.7xx.xx+, it now writes an expression instead. That expression reads the stage\'s color A and B selector from the combiner data the shader already has access to (bpmem_pack1, which is used by Ubershaders) and XORs it with Zero. \r\n\r\nDespite digging into the qualcomm driver considerably, I can\'t understand why using the table causes this issue. Using a newer mesa turnip driver fixes the issue (obviously only on Vulkan). But I think it\'s worth having a workaround in place that doesn\'t require using Ubershaders or a custom driver.\r\n\r\nPerformance testing shows that this does have a small cost, but it\'s faster than simply using Ubershaders.\r\n\r\nAnimal Crossing City Folk\r\n -Specialized: 267fps\r\n -Exclusive Ubershaders: 251fps\r\n -Specialized with these changes: 266fps\r\n \r\n NSMBW\r\n -Specialized: 396fps\r\n -Exclusive Ubershaders: 311fps\r\n -Specialized with these changes: 371fps.\r\n \r\n The change is gated to Qualcomm\'s Adreno GPU drivers version 0.7xx.xx+, so you would only see this performance regression on those devices. \r\n \r\n Here are some screenshots of how specialized looks with these changes on the Samsung Galaxy S26.\r\n \r\n<img width="3120" height="1440" alt="Screenshot_20260929_191642_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/06446ab7-8f5a-49c8-b27a-7f6ac546ed93" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191033_Dolphin Emulator" src="https://github.com/user-attachments/assets/bdccd741-8bb6-450e-9d9b-01820d765dbe" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191736_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/60219c08-e21d-4a22-922b-fde6f1c04149" />\r\n\r\n<img width="3120" height="1440" alt="Screenshot_20260929_191803_Dolphin TEV Perf" src="https://github.com/user-attachments/assets/9590392b-883f-4564-a674-f672ac09ef81" />\r\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 1, 'confused': 0, 'heart': 0, 'rocket': 1, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#issuecomment-5975188336', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14899', 'id': 5975188336, 'node_id': 'IC_kwDOALCn2M8AAAABZCYjcA', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T00:57:54Z', 'updated_at': '2026-10-04T00:57:54Z', 'body': "> Did you try simpler fixes like e.g. sticking zero in a variable or maybe sending it through an identity function before going for the full value-from-constant-buffer approach?\r\n> \r\n> If those don't work, there are a few simpler places to get zeroes from in the constant buffer. It seems `I_FOGCOLOR.a` is never written, so you could just use that.\r\n\r\nI did try a variable a driver identity function. The compiler still saw it as 0, and performed the broken optimization.\r\n\r\nI just tried `I_FOGCOLOR.a` and that actually does work! I would have never thought to try that.\r\n\r\nIf everyone likes that method better, I can update the PR.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5975188336/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, 'minimized': 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': '2026-10-04T00:25:06Z', 'pushed_at': '2026-10-03T10:25:06Z', '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': 561269, 'stargazers_count': 15607, 'watchers_count': 15607, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 474, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 474, 'watchers': 15607, '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': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/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

2026-10-04T21:11:12.962542	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 14913, 'title': 'Common: Introduce MD5Context class and ComputeMD5 function to minimize mbedtls dependence.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14913', 'head_ref_name': 'md5', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T21:07:46.872832	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'opened', 'id': 14912, 'title': 'VideoCommon: validate restored FIFO pointers', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'head_ref_name': 'savestate-fifo-pointer-validation', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'f5438ce0c37fd16235af6a054775cf9d3af15e5d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T21:03:34.768641	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'opened', 'id': 14911, 'title': 'NetPlay: reject oversized Wii save banners', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'head_ref_name': 'netplay-save-banner-validation', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'c987640440cd9fda480af384aac7c554869a0cfb', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:39:04.987088	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'edited', 'id': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'fe83d1acea9893e5411503d6886241b90dc6b66b', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:39:03.359208	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'synchronize', 'id': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'fe83d1acea9893e5411503d6886241b90dc6b66b', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:27:16.048280	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'edited', 'id': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '3f3de25c702314e4b68eed7a0b6729743b343dcd', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:27:13.979127	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'synchronize', 'id': 14909, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '3f3de25c702314e4b68eed7a0b6729743b343dcd', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:09:32.453699	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14910, 'title': 'WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14910', 'head_ref_name': 'motionplus-no-mbedtls', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T20:07:14.868518	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 14910, 'title': 'WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14910', 'head_ref_name': 'motionplus-no-mbedtls', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T16:35:28.175843	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'edited', 'id': 14909, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T16:35:26.423065	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'synchronize', 'id': 14909, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T16:25:47.065490	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'endercodezz', 'action': 'opened', 'id': 14909, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'head_ref_name': 'codex/mouse-wiimote-motion', 'safe_author': False, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'b745f6838673454d91ce6242c53df146a2d33443', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T15:29:29.805594	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T15:15:58.050282	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '53f572f7d1ccb3982dec175fe7ee8c5bc905cfb5', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T15:13:57.767286	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '83022220e4ce74068b8f48676706e87b491120c1', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T15:09:44.002906	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '39863d00af2761f6ff9e98182c2198f84247f16d', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T15:05:31.641400	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '42a3fee8a49fb2bdcaa593c298e8f585cd0415b8', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T14:48:12.976536	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '56b074f3ae09e72a6b0f3a0238d3fc90b70be1fc', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T14:34:05.617795	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': 'd0790690cbcdd7f948aa7c84365090251ccb4f2e', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T14:28:13.568854	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '4b529182a37ad36a6342e6eda06d1a6bcece1ce1', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T14:20:00.121614	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '7c9e52aad08f4a8bbe49c7ca84b1d613fc5144e3', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T13:54:20.049287	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '37e9b5d93b6c475e4b0055e3d752140f3a39b4a3', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T13:52:24.950681	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'vhoxha08', 'action': 'synchronize', 'id': 14878, 'title': 'Android: Add global hotkeys', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878', 'head_ref_name': 'add-global-hotkeys-android', 'safe_author': False, 'base_sha': 'ee018d00e60b9eb727489908a8daec5c537f44a8', 'head_sha': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-10-04T13:37:45.214961	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '5a595a7c4e0268136a311db1dee8fd20f1cfc30d', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-10-04T13:31:18.854034	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13686, 'title': 'AudioCommon: Integrate FreeSurround partially', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'head_ref_name': 'AudioCommon/Integrate-FreeSurround-partially', 'safe_author': True, 'base_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'head_sha': '2f41ace0a52ef724a80e115f5fb18de16a616ac7', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}

Recent 'gh_pull_request_comment' events

2026-10-04T18:50:50.609535	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4178867996', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T18:36:13.728790	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14878, 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4178821873', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T18:30:21.186888	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14909, 'hash': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178803326', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T18:30:21.151681	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14909, 'hash': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178790921', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T18:30:21.151059	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14909, 'hash': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178798792', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T13:53:19.213451	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'vhoxha08', 'action': 'created', 'id': 14878, 'hash': '7816565b8a3913665e24816b0768b59087da3e1a', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177946424', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T12:27:46.468471	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'vhoxha08', 'action': 'created', 'id': 14878, 'hash': '7816565b8a3913665e24816b0768b59087da3e1a', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177569045', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.327374	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177132051', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.285553	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177140289', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.274504	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177131536', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.123077	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177133611', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.109349	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177093859', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T10:38:04.102208	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13686, 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177094841', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T05:00:42.505900	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14836, 'hash': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176215908', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T04:50:14.869729	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14836, 'hash': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176192065', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T04:49:09.095796	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14836, 'hash': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176189518', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T04:44:45.170899	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14836, 'hash': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176170747', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T04:44:45.170235	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14836, 'hash': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176178054', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T04:14:46.313661	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14899, 'hash': '2fd5446397820c334c1d2c924b942bde76fdadc4', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4176114563', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T01:42:16.575877	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14840, 'hash': 'b21878da9c8f1c91b8a534a81a553a80d04d718a', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14840#discussion_r4175718116', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T01:36:02.845313	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14836, 'hash': '6d620ebd902b7e915d462a2fc09d1148bf9faf68', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4175703537', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T00:54:58.830122	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'hash': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598918', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-10-04T00:54:49.002661	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'hash': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598548', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-04T00:54:23.304554	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'created', 'id': 14899, 'hash': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175597178', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-10-03T23:39:20.696392	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'created', 'id': 14899, 'hash': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175417564', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}

Recent 'gh_pull_request_review' events

2026-10-04T18:50:50.608609	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13686, 'pr_title': 'AudioCommon: Integrate FreeSurround partially', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#pullrequestreview-5407663140', 'comments': [{'id': 4178867996, 'node_id': 'PRRC_kwDOALCn2M75FHcc', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996', 'pull_request_review_id': 5407663140, 'diff_hunk': '@@ -1,9 +1,9 @@\n // Copyright 2017 Dolphin Emulator Project\n // SPDX-License-Identifier: GPL-2.0-or-later\n \n-#include "AudioCommon/SurroundDecoder.h"\n+#include "SurroundDecoder.h"', 'path': 'Source/Core/AudioCommon/SurroundDecoder/SurroundDecoder.cpp', 'position': 5, 'original_position': 5, 'commit_id': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', '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': 'Please keep the `AudioCommon/` part in all these include paths that changed.', 'created_at': '2026-10-04T18:50:47Z', 'updated_at': '2026-10-04T18:50:47Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4178867996', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4178867996'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996/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'}
2026-10-04T18:36:13.726949	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14878, 'pr_title': 'Android: Add global hotkeys', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#pullrequestreview-5407591549', 'comments': [{'id': 4178821873, 'node_id': 'PRRC_kwDOALCn2M75E8Lx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873', 'pull_request_review_id': 5407591549, 'diff_hunk': '@@ -191,6 +195,36 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro\n   return EmulatedControllerToJava(env, Wiimote::GetConfig()->GetController(controller_index));\n }\n \n+JNIEXPORT jobject JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getHotkeys(\n+    JNIEnv* env, jclass)\n+{\n+  return EmulatedControllerToJava(env, HotkeyManagerEmu::GetConfig()->GetController(0));\n+}\n+\n+JNIEXPORT jintArray JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getSupportedHotkeyIndices(\n+    JNIEnv* env, jclass)\n+{\n+  auto* const hotkeys =\n+      static_cast<HotkeyManager*>(HotkeyManagerEmu::GetConfig()->GetController(0));\n+  const std::vector<int>& supported = HotkeyScheduler::GetSupportedHotkeys();\n+\n+  std::vector<jint> indices;\n+  indices.reserve(supported.size() * 2);\n+  for (const int hotkey : supported)\n+  {\n+    const int group = hotkeys->FindGroupByID(hotkey);\n+    indices.push_back(group);\n+    indices.push_back(hotkeys->GetIndexForGroup(group, hotkey));\n+  }\n+\n+  const jsize size = static_cast<jsize>(indices.size());\n+  jintArray result = env->NewIntArray(size);\n+  env->SetIntArrayRegion(result, 0, size, indices.data());', 'path': 'Source/Android/jni/Input/EmulatedController.cpp', 'position': 53, 'original_position': 53, 'commit_id': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', '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': "Sorry, I must have gotten it mixed up.\r\n\r\nSince int is a primitive type, the `SpanToJObjectArray` function that `SpanToJStringArray` is build on isn't relevant, so feel free to keep this as it is.", 'created_at': '2026-10-04T18:36:11Z', 'updated_at': '2026-10-04T18:36:12Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4178821873', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4178821873'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878'}}, 'original_commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4169009408}], 'type': 'gh_pull_request_review'}
2026-10-04T18:30:21.149245	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14909, 'pr_title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14909#pullrequestreview-5407532661', 'comments': [{'id': 4178790921, 'node_id': 'PRRC_kwDOALCn2M75E0oJ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921', 'pull_request_review_id': 5407532661, 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "\n+                       "Move toward yourself to swing down, away to swing up. "\n+                       "Hold a side mouse button for motion; otherwise move the pointer. "\n+                       "Hold the middle mouse button or R to recenter. "\n+                       "Higher sensitivity needs less mouse movement for a swing. "\n+                       "This does not affect the pointer."),\n+                _trans("Motion Sensitivity")},\n+               100, 1, 400);\n+    AddSetting(&m_horizontal_sensitivity,\n+               {_trans("Horizontal Sensitivity"), _trans("%"),\n+                _trans("Multiplier for left/right mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+    AddSetting(&m_vertical_sensitivity,\n+               {_trans("Vertical Sensitivity"), _trans("%"),\n+                _trans("Multiplier for upward/downward mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+  }\n+\n+  void UpdateReferences(ciface::ExpressionParser::ControlEnvironment& env) override\n+  {\n+    m_last_update = {};\n+    std::string device_name;\n+    m_scale = 1;\n+    int side_button = 3;\n+    for (const auto& device : g_controller_interface.GetAllDevices())\n+    {\n+      if ((device->GetSource() == "DInput" || device->GetSource() == "XInput2") &&\n+          device->FindInput("RelativeMouse X+") && device->FindInput("RelativeMouse Y+"))\n+      {\n+        device_name = device->GetQualifiedName();\n+        // XInput2 exposes relative movement in units of eight counts, unlike DInput.\n+        const bool is_x11 = device->GetSource() == "XInput2";', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'position': 66, 'original_position': 66, 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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': "These changes are demonstrating a poor separation of concerns.\ne.g. `WiimoteEmu` shouldn't be checking and scaling things based on the backend name.\nThe backends should just return consistent values.", 'created_at': '2026-10-04T18:26:06Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178790921', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178790921'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4178798792, 'node_id': 'PRRC_kwDOALCn2M75E2jI', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792', 'pull_request_review_id': 5407532661, 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "\n+                       "Move toward yourself to swing down, away to swing up. "\n+                       "Hold a side mouse button for motion; otherwise move the pointer. "\n+                       "Hold the middle mouse button or R to recenter. "\n+                       "Higher sensitivity needs less mouse movement for a swing. "\n+                       "This does not affect the pointer."),\n+                _trans("Motion Sensitivity")},\n+               100, 1, 400);\n+    AddSetting(&m_horizontal_sensitivity,\n+               {_trans("Horizontal Sensitivity"), _trans("%"),\n+                _trans("Multiplier for left/right mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+    AddSetting(&m_vertical_sensitivity,\n+               {_trans("Vertical Sensitivity"), _trans("%"),\n+                _trans("Multiplier for upward/downward mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+  }\n+\n+  void UpdateReferences(ciface::ExpressionParser::ControlEnvironment& env) override\n+  {\n+    m_last_update = {};\n+    std::string device_name;\n+    m_scale = 1;\n+    int side_button = 3;\n+    for (const auto& device : g_controller_interface.GetAllDevices())\n+    {\n+      if ((device->GetSource() == "DInput" || device->GetSource() == "XInput2") &&\n+          device->FindInput("RelativeMouse X+") && device->FindInput("RelativeMouse Y+"))\n+      {\n+        device_name = device->GetQualifiedName();\n+        // XInput2 exposes relative movement in units of eight counts, unlike DInput.\n+        const bool is_x11 = device->GetSource() == "XInput2";\n+        m_scale = is_x11 ? 8.f : 1.f;\n+        side_button = is_x11 ? 8 : 3;\n+        break;\n+      }\n+    }\n+\n+    constexpr std::array names{"RelativeMouse X+", "RelativeMouse X-", "RelativeMouse Y+",', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'position': 73, 'original_position': 73, 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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 is using hardcoded button input names. Locking a new feature to mouse inputs and not gamepad inputs seems like an unnecessary limitation.\n', 'created_at': '2026-10-04T18:28:42Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178798792', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178798792'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4178803326, 'node_id': 'PRRC_kwDOALCn2M75E3p-', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326', 'pull_request_review_id': 5407532661, 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'position': 33, 'original_position': 33, 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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 existing `Swing` mappings are already supposed to simulate a Wii Remote movement in an outstretched arm, though admittedly the behavior could be improved.\n\nWhat exactly is this new feature supposed to do differently than the `Swing` mappings?\n\nI really think we should just improve the `Swing` mappings which are designed to work with mouse or gamepad or whatever else.', 'created_at': '2026-10-04T18:30:16Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178803326', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178803326'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326/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'}
2026-10-04T13:53:19.212562	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'vhoxha08', 'action': 'submitted', 'pr_id': 14878, 'pr_title': 'Android: Add global hotkeys', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#pullrequestreview-5406538462', 'comments': [{'id': 4177946424, 'node_id': 'PRRC_kwDOALCn2M75Bmc4', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177946424', 'pull_request_review_id': 5406538462, 'diff_hunk': '@@ -0,0 +1,369 @@\n+// Copyright 2026 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "jni/HotkeyScheduler.h"\n+\n+#include <chrono>\n+#include <cmath>\n+#include <jni.h>\n+#include <thread>\n+#include <vector>\n+\n+#include <fmt/format.h>\n+\n+#include "AudioCommon/AudioCommon.h"\n+#include "Common/CommonTypes.h"\n+#include "Common/Config/Config.h"\n+#include "Common/Event.h"\n+#include "Common/Flag.h"\n+#include "Common/Thread.h"\n+#include "Core/Config/GraphicsSettings.h"\n+#include "Core/Config/MainSettings.h"\n+#include "Core/Core.h"\n+#include "Core/HotkeyManager.h"\n+#include "Core/State.h"\n+#include "Core/System.h"\n+#include "InputCommon/ControlReference/ControlReference.h"\n+#include "InputCommon/ControllerEmu/Control/Control.h"\n+#include "InputCommon/ControllerEmu/ControlGroup/ControlGroup.h"\n+#include "InputCommon/ControllerEmu/ControllerEmu.h"\n+#include "InputCommon/ControllerInterface/ControllerInterface.h"\n+#include "VideoCommon/OnScreenDisplay.h"\n+#include "VideoCommon/VideoConfig.h"\n+\n+namespace HotkeyScheduler\n+{\n+namespace\n+{\n+constexpr int POLL_INTERVAL_MS = 5;\n+\n+std::thread s_thread;\n+Common::Flag s_stop_requested;\n+Common::Flag s_foreground{true};\n+Common::Flag s_any_hotkey_set;\n+Common::Event s_wakeup;\n+\n+bool IsHotkey(int id, bool held = false)\n+{\n+  return HotkeyManagerEmu::IsPressed(id, held);\n+}\n+\n+bool IsAnyHotkeySet()\n+{\n+  InputConfig* const config = HotkeyManagerEmu::GetConfig();\n+  if (config == nullptr || config->ControllersNeedToBeCreated())\n+    return false;\n+\n+  auto* const hotkeys = static_cast<HotkeyManager*>(config->GetController(0));\n+\n+  const auto lock = ControllerEmu::EmulatedController::GetStateLock();', 'path': 'Source/Android/jni/HotkeyScheduler.cpp', 'position': 1, 'original_position': 59, 'commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This was a leftover from an implementation I discarded, had forgotten to drop it.', 'created_at': '2026-10-04T13:53:17Z', 'updated_at': '2026-10-04T13:53:17Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177946424', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177946424'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177946424'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878'}}, 'original_commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177946424/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4169363859}], 'type': 'gh_pull_request_review'}
2026-10-04T12:27:46.411860	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'vhoxha08', 'action': 'submitted', 'pr_id': 14878, 'pr_title': 'Android: Add global hotkeys', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14878#pullrequestreview-5406109044', 'comments': [{'id': 4177569045, 'node_id': 'PRRC_kwDOALCn2M75AKUV', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177569045', 'pull_request_review_id': 5406109044, 'diff_hunk': '@@ -191,6 +195,36 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro\n   return EmulatedControllerToJava(env, Wiimote::GetConfig()->GetController(controller_index));\n }\n \n+JNIEXPORT jobject JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getHotkeys(\n+    JNIEnv* env, jclass)\n+{\n+  return EmulatedControllerToJava(env, HotkeyManagerEmu::GetConfig()->GetController(0));\n+}\n+\n+JNIEXPORT jintArray JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getSupportedHotkeyIndices(\n+    JNIEnv* env, jclass)\n+{\n+  auto* const hotkeys =\n+      static_cast<HotkeyManager*>(HotkeyManagerEmu::GetConfig()->GetController(0));\n+  const std::vector<int>& supported = HotkeyScheduler::GetSupportedHotkeys();\n+\n+  std::vector<jint> indices;\n+  indices.reserve(supported.size() * 2);\n+  for (const int hotkey : supported)\n+  {\n+    const int group = hotkeys->FindGroupByID(hotkey);\n+    indices.push_back(group);\n+    indices.push_back(hotkeys->GetIndexForGroup(group, hotkey));\n+  }\n+\n+  const jsize size = static_cast<jsize>(indices.size());\n+  jintArray result = env->NewIntArray(size);\n+  env->SetIntArrayRegion(result, 0, size, indices.data());', 'path': 'Source/Android/jni/Input/EmulatedController.cpp', 'position': 53, 'original_position': 53, 'commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'That returns `String[]` this is returning `int[]`.\r\nOr did you mean add another helper in AndroidCommon `SpanToJIntArray` and use that?', 'created_at': '2026-10-04T12:27:44Z', 'updated_at': '2026-10-04T12:27:44Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177569045', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177569045'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4177569045'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878'}}, 'original_commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177569045/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4169009408}], 'type': 'gh_pull_request_review'}
2026-10-04T10:38:03.792287	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13686, 'pr_title': 'AudioCommon: Integrate FreeSurround partially', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13686#pullrequestreview-5405497676', 'comments': [{'id': 4177093859, 'node_id': 'PRRC_kwDOALCn2M74-WTj', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177093859', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -1,55 +1,20 @@\n-/*\n-Copyright (c) 2003-2010, Mark Borgerding\n-\n-All rights reserved.\n-\n-Redistribution and use in source and binary forms, with or without modification,\n-are permitted\n-provided that the following conditions are met:\n-\n-    * Redistributions of source code must retain the above copyright notice,\n-this list of conditions\n-and the following disclaimer.\n-    * Redistributions in binary form must reproduce the above copyright notice,\n-this list of\n-conditions and the following disclaimer in the documentation and/or other\n-materials provided with\n-the distribution.\n-    * Neither the author nor the names of any contributors may be used to\n-endorse or promote\n-products derived from this software without specific prior written permission.\n-\n-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND\n-ANY EXPRESS OR\n-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n-MERCHANTABILITY AND\n-FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n-OWNER OR\n-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,\n-OR CONSEQUENTIAL\n-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\n-SERVICES; LOSS OF USE,\n-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n-LIABILITY, WHETHER\n-IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\n-ARISING IN ANY WAY OUT OF\n-THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n-*/\n-\n-/* kiss_fft.h\n-   defines kiss_fft_scalar as either short or a float type\n-   and defines\n-   typedef struct { kiss_fft_scalar r; kiss_fft_scalar i; }kiss_fft_cpx; */\n+// Copyright 2026 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+// Copyright (c) 2003-2010, Mark Borgerding', 'path': 'Source/Core/AudioCommon/_KissFFTGuts.h', 'position': 46, 'original_position': 46, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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': '```suggestion\n// Based on FreeSurround\n// Copyright (c) 2003-2010, Mark Borgerding\n```\n\nMaybe something like that, and same for the other files.', 'created_at': '2026-10-04T10:22:59Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177093859', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177093859'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177093859'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177093859/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4177094841, 'node_id': 'PRRC_kwDOALCn2M74-Wi5', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177094841', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -0,0 +1,53 @@\n+// Copyright 2026 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <type_traits>\n+\n+// NormalizedFloat: a floating point value constrained to the range [0, 1]\n+template <typename T = double>\n+class NormalizedFloat', 'path': 'Source/Core/Core/BoundedFloat.h', 'position': 11, 'original_position': 11, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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': 'Please remove this unrelated commit.', 'created_at': '2026-10-04T10:23:20Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177094841', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177094841'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177094841'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177094841/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4177131536, 'node_id': 'PRRC_kwDOALCn2M74-fgQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177131536', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -0,0 +1,911 @@\n+// Copyright 2026 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+// Copyright (C) 2010 Christian Kothe\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "AudioCommon/FreeSurroundDecoder.h"\n+\n+static float map_5point1_ang[] = {-27, 0, 27, -105, 105};\n+static float map_5point1_xsf[] = {-1, 0, 1, -1, 1};\n+static float map_5point1_ysf[] = {1, 1, 1, -1, -1};\n+static channel_id map_5point1_id[] = {ci_front_left, ci_front_center, ci_front_right,\n+                                      ci_back_left,  ci_back_right,   ci_lfe};\n+\n+static float map_5point1_lf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.054079f, 0.13605f,  0.11031f,   0.083738f, 0.058746f, 0.03616f,  0.022585f,\n+     0.018356f, 0.012179f, 0.0043961f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.11103f,  0.16562f,  0.18635f,  0.15778f,  0.12791f,  0.12403f,   0.10709f,\n+     0.090176f, 0.070512f, 0.049741f, 0.027549f, 0.011727f, 0.0013628f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.17535f,  0.20208f,  0.21809f,  0.22862f,  0.21842f,  0.20197f,  0.18341f,\n+     0.15706f,  0.13031f,  0.10103f,  0.068601f, 0.041975f, 0.018696f, 0.0039144f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.24362f,   0.24543f,  0.25563f,  0.27972f,  0.28786f,  0.26979f,  0.24789f,\n+     0.21805f,   0.18569f,  0.14921f,  0.10871f,  0.073541f, 0.041097f, 0.017152f,\n+     0.0038597f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.3173f,   0.29703f,   0.31848f,  0.33006f,  0.33185f,  0.32571f,  0.30203f,\n+     0.27305f,  0.23691f,   0.19431f,  0.14844f,  0.10174f,  0.061737f, 0.03134f,\n+     0.010908f, 0.0013625f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.39394f,  0.36121f,    0.3753f,   0.38051f,  0.37306f,  0.35451f,  0.33178f,\n+     0.30958f,  0.28023f,    0.23726f,  0.18262f,  0.12638f,  0.07899f,  0.043546f,\n+     0.017841f, 0.00044495f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.47562f,  0.43164f,  0.43211f,  0.42477f,  0.4019f,   0.37291f,  0.34131f,\n+     0.31385f,  0.29675f,  0.2674f,   0.21259f,  0.14347f,  0.086077f, 0.046322f,\n+     0.012467f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.55484f,   0.49969f,  0.48539f,  0.45665f,  0.41889f,  0.37886f,  0.33895f,\n+     0.30764f,   0.28138f,  0.2723f,   0.23279f,  0.14674f,  0.083778f, 0.032293f,\n+     0.0048976f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.63203f,  0.56664f,   0.52742f,  0.47709f,  0.42408f,  0.37424f,  0.33419f,\n+     0.30176f,  0.27482f,   0.25011f,  0.23665f,  0.1471f,   0.082204f, 0.040759f,\n+     0.015195f, 0.0028496f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.70711f,  0.63601f,  0.56403f,   0.49301f,  0.42572f,  0.37154f,  0.33227f,\n+     0.30051f,  0.27246f,  0.24769f,   0.22385f,  0.17996f,  0.13303f,  0.089089f,\n+     0.051572f, 0.021112f, 0.0019269f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.77384f,  0.69829f,  0.59208f, 0.49896f,  0.42627f,  0.37547f,  0.33559f,\n+     0.30342f,  0.27695f,  0.2532f,  0.24555f,  0.24096f,  0.202f,    0.15312f,\n+     0.099312f, 0.049149f, 0.01419f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.83292f, 0.75424f,  0.62497f,  0.51188f,   0.43577f,  0.38288f,  0.34157f,\n+     0.31064f, 0.28485f,  0.27588f,  0.27011f,   0.26791f,  0.24233f,  0.19874f,\n+     0.14444f, 0.081488f, 0.031102f, 0.0022352f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.88048f, 0.80823f, 0.66178f,  0.53219f,   0.45043f,  0.39421f,  0.35046f,\n+     0.32046f, 0.30985f, 0.30176f,  0.29791f,   0.28855f,  0.26277f,  0.22895f,\n+     0.1783f,  0.11122f, 0.048526f, 0.0073556f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.91982f, 0.8564f,  0.6966f,   0.55364f,  0.46596f,  0.41011f,  0.36623f,\n+     0.3499f,  0.34025f, 0.33348f,  0.32389f,  0.30536f,  0.27602f,  0.24046f,\n+     0.19967f, 0.13416f, 0.066173f, 0.014462f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.94888f, 0.8756f,  0.72118f,  0.58509f,  0.49378f,  0.42727f,  0.40951f,\n+     0.39303f, 0.37927f, 0.36377f,  0.34295f,  0.31626f,  0.28156f,  0.24129f,\n+     0.19667f, 0.15218f, 0.075526f, 0.017441f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.9703f,  0.87092f, 0.76228f,  0.60765f,  0.51716f,  0.48514f,  0.45531f,\n+     0.43328f, 0.40894f, 0.38299f,  0.35389f,  0.31939f,  0.27862f,  0.23237f,\n+     0.18465f, 0.12881f, 0.081296f, 0.019071f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.98481f, 0.85688f, 0.73952f, 0.62982f,  0.5767f,   0.53382f,  0.4939f,\n+     0.46098f, 0.42667f, 0.39124f, 0.35254f,  0.31034f,  0.26195f,  0.20782f,\n+     0.15167f, 0.09417f, 0.04946f, 0.016531f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.99396f,  0.83616f,  0.71307f,   0.68155f,   0.64457f,  0.57478f,  0.52315f,\n+     0.47464f,  0.42859f,  0.38222f,   0.33181f,   0.27965f,  0.21975f,  0.15464f,\n+     0.094607f, 0.047925f, 0.0098814f, 0.0024671f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.99855f,  0.81216f,   0.78057f,  0.73849f,  0.68375f,  0.61653f,  0.5369f,\n+     0.46213f,  0.39741f,   0.33339f,  0.26339f,  0.19725f,  0.13069f,  0.067274f,\n+     0.019339f, 0.0021311f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {1.000000f, 0.94446f,  0.8823f,   0.80914f,  0.72626f,  0.63102f,  0.52519f,\n+     0.40402f,  0.27711f,  0.14046f,  0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_5point1_cf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.00062925f,\n+     0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,\n+     0.00059225f, 0.001914f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f,  0.000000f,    0.000000f, 0.0055425f, 0.0155f,    0.025167f,\n+     0.017695f, 0.0063155f, 1.0116e-005f, 0.000000f, 0.000000f,  0.0062031f, 0.017508f,\n+     0.025125f, 0.015305f,  0.0054168f,   0.000000f, 0.000000f,  0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0056317f,   0.024256f, 0.044322f, 0.061583f,\n+     0.065405f, 0.041656f, 0.014688f, 4.0817e-019f, 0.014527f, 0.041389f, 0.065342f,\n+     0.061236f, 0.044002f, 0.024003f, 0.005504f,    0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.0019274f, 0.02644f,  0.05812f,   0.08731f,  0.11105f,\n+     0.11767f,  0.10963f,  0.061306f,  0.017226f, 0.061006f,  0.10958f,  0.11735f,\n+     0.11066f,  0.086884f, 0.057744f,  0.026151f, 0.0018503f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.016697f, 0.059451f, 0.104f,    0.13974f,  0.15702f,\n+     0.15962f,  0.15223f,  0.13355f,  0.063692f, 0.13353f,  0.15211f,  0.15945f,\n+     0.15675f,  0.13934f,  0.10352f,  0.059047f, 0.016456f, 0.000000f, 0.000000f},\n+    {0.000000f, 1.2068e-018f, 0.038851f, 0.096919f, 0.15087f,  0.17987f,  0.18511f,\n+     0.17445f,  0.15817f,     0.14379f,  0.13384f,  0.14378f,  0.15816f,  0.17444f,\n+     0.18509f,  0.17981f,     0.15076f,  0.096821f, 0.038797f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.0063777f, 0.070344f, 0.14288f, 0.19068f, 0.2049f,    0.19453f,\n+     0.1758f,   0.16036f,   0.14645f,  0.14681f, 0.14646f, 0.16036f,   0.1758f,\n+     0.19453f,  0.20473f,   0.19031f,  0.14227f, 0.06984f, 0.0061903f, 0.000000f},\n+    {0.000000f, 0.017224f, 0.099719f, 0.18101f, 0.21822f,  0.2193f,   0.19777f,\n+     0.17979f,  0.16475f,  0.16187f,  0.16149f, 0.16187f,  0.16477f,  0.1798f,\n+     0.19777f,  0.21922f,  0.21792f,  0.18045f, 0.099116f, 0.016918f, 0.000000f},\n+    {0.000000f, 0.02596f, 0.12753f, 0.21148f, 0.23925f, 0.22819f,  0.20284f,\n+     0.18535f,  0.18085f, 0.17814f, 0.17812f, 0.17814f, 0.18084f,  0.18536f,\n+     0.20284f,  0.22818f, 0.23901f, 0.21095f, 0.12685f, 0.025562f, 0.000000f},\n+    {0.000000f, 0.03194f, 0.15144f, 0.23904f, 0.2564f,  0.23733f,  0.21182f,\n+     0.20371f,  0.19964f, 0.19751f, 0.19694f, 0.1975f,  0.19963f,  0.20369f,\n+     0.21184f,  0.23733f, 0.25621f, 0.23853f, 0.15068f, 0.031485f, 0.000000f},\n+    {0.000000f, 0.051138f, 0.17541f, 0.26062f, 0.27419f, 0.24713f,  0.23812f,\n+     0.22985f,  0.2244f,   0.22133f, 0.22022f, 0.22132f, 0.22439f,  0.22984f,\n+     0.2381f,   0.24715f,  0.274f,   0.26009f, 0.17455f, 0.050511f, 0.000000f},\n+    {0.000000f, 0.08308f, 0.18105f, 0.28155f, 0.29188f, 0.28632f,  0.27128f,\n+     0.26327f,  0.25585f, 0.25151f, 0.25234f, 0.2515f,  0.25584f,  0.26325f,\n+     0.27127f,  0.28627f, 0.29189f, 0.28098f, 0.18013f, 0.082312f, 0.000000f},\n+    {0.000000f, 0.11865f, 0.22314f, 0.29977f, 0.32517f, 0.33282f, 0.32312f,\n+     0.31164f,  0.30095f, 0.2946f,  0.29542f, 0.29459f, 0.30094f, 0.31163f,\n+     0.32308f,  0.33259f, 0.32473f, 0.29967f, 0.22211f, 0.11774f, 0.000000f},\n+    {0.000000f, 0.15601f, 0.26339f, 0.30497f, 0.3472f,  0.38198f, 0.39609f,\n+     0.39135f,  0.3765f,  0.36616f, 0.36703f, 0.36615f, 0.37649f, 0.39123f,\n+     0.39574f,  0.3814f,  0.34627f, 0.30393f, 0.26322f, 0.15497f, 0.000000f},\n+    {0.000000f, 0.19222f, 0.23448f, 0.28578f, 0.34732f, 0.4169f,  0.48293f,\n+     0.51439f,  0.52067f, 0.52104f, 0.52661f, 0.52086f, 0.52026f, 0.51365f,\n+     0.48176f,  0.41543f, 0.34579f, 0.28436f, 0.23319f, 0.19202f, 0.000000f},\n+    {1.1102e-016f, 0.076479f, 0.15764f, 0.24801f,  0.34452f, 0.44874f,  0.55712f,\n+     0.67263f,     0.78467f,  0.89574f, 1.000000f, 0.89382f, 0.78261f,  0.67046f,\n+     0.55485f,     0.4464f,   0.34213f, 0.24558f,  0.15519f, 0.074014f, 0.000000f}};\n+\n+static float map_5point1_rf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0043772f, 0.011962f, 0.018075f,\n+     0.022264f, 0.035717f, 0.058204f, 0.083257f, 0.10958f,   0.13592f,  0.052336f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0013084f, 0.011636f, 0.027472f, 0.049384f, 0.070085f, 0.089694f,\n+     0.10655f,  0.12342f,   0.12737f,  0.15705f,  0.18623f,  0.16489f,  0.10973f},\n+    {0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.0038919f, 0.018492f, 0.041753f, 0.068513f, 0.1006f,   0.12983f,  0.15652f,\n+     0.18313f,   0.20135f,  0.21775f,  0.22851f,  0.21738f,  0.20108f,  0.17363f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0038302f,\n+     0.016973f, 0.040831f, 0.073199f, 0.10859f,  0.14876f,  0.1852f,   0.21753f,\n+     0.24734f,  0.26927f,  0.28776f,  0.27908f,  0.25473f,  0.24451f,  0.24192f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0013625f, 0.010822f,\n+     0.031114f, 0.061436f, 0.10138f,  0.14831f,  0.19392f,  0.2365f,    0.27257f,\n+     0.30156f,  0.32564f,  0.33123f,  0.32934f,  0.31761f,  0.29589f,   0.31565f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.00041878f, 0.017789f,\n+     0.0433f,   0.07868f,  0.12602f,  0.18248f,  0.23686f,  0.2799f,     0.30936f,\n+     0.33175f,  0.35421f,  0.37263f,  0.38012f,  0.37444f,  0.35999f,    0.39234f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.01238f,\n+     0.046242f, 0.085813f, 0.14312f,  0.21247f,  0.26716f,  0.29661f,  0.31385f,\n+     0.34119f,  0.3727f,   0.40155f,  0.42428f,  0.43128f,  0.43048f,  0.47409f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0048489f,\n+     0.032179f, 0.083684f, 0.14641f,  0.23272f,  0.27225f,  0.28139f,  0.30767f,\n+     0.33894f,  0.3788f,   0.4187f,   0.45626f,  0.48466f,  0.49857f,  0.55339f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0029287f, 0.015357f,\n+     0.040874f, 0.082238f, 0.14702f,  0.23663f,  0.25012f,  0.27481f,   0.30176f,\n+     0.33418f,  0.37423f,  0.42403f,  0.4769f,   0.52692f,  0.56555f,   0.63203f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019397f, 0.021156f, 0.051639f,\n+     0.089163f, 0.13307f,  0.17997f,  0.22386f,  0.24772f,   0.27249f,  0.30054f,\n+     0.33231f,  0.37158f,  0.42577f,  0.49302f,  0.56398f,   0.63586f,  0.70711f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.01438f, 0.049473f, 0.099723f,\n+     0.15348f,  0.20226f,  0.24098f,  0.24557f,  0.25321f, 0.27695f,  0.30342f,\n+     0.33559f,  0.37551f,  0.42626f,  0.49895f,  0.59175f, 0.69745f,  0.77384f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0023122f, 0.031384f, 0.081894f, 0.14485f,\n+     0.19907f,  0.24237f,  0.268f,    0.27012f,   0.27589f,  0.28486f,  0.31064f,\n+     0.34157f,  0.38293f,  0.43576f,  0.51188f,   0.62473f,  0.75361f,  0.83195f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0075151f, 0.048878f, 0.11169f, 0.17871f,\n+     0.229f,    0.263f,    0.28867f,  0.29793f,   0.30177f,  0.3099f,  0.32047f,\n+     0.3505f,   0.39422f,  0.45043f,  0.53218f,   0.66167f,  0.80779f, 0.87965f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.014677f, 0.066587f, 0.13466f, 0.19976f,\n+     0.24081f,  0.2763f,   0.30555f,  0.32392f,  0.33349f,  0.34026f, 0.3499f,\n+     0.36625f,  0.41012f,  0.46596f,  0.55393f,  0.69668f,  0.85613f, 0.91914f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.017689f, 0.075976f, 0.15229f, 0.19715f,\n+     0.24172f,  0.28192f,  0.31654f,  0.343f,    0.3639f,   0.37933f, 0.39305f,\n+     0.40957f,  0.42729f,  0.49385f,  0.58524f,  0.72145f,  0.8756f,  0.94832f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.019339f, 0.081415f, 0.12939f, 0.18521f,\n+     0.2329f,   0.27908f,  0.31978f,  0.35395f,  0.38326f,  0.40917f, 0.43346f,\n+     0.45546f,  0.48528f,  0.5172f,   0.60794f,  0.76272f,  0.87113f, 0.96987f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.016574f, 0.049892f, 0.094728f, 0.15233f,\n+     0.20846f,  0.26255f,  0.31088f,  0.35261f,  0.39169f,  0.42708f,  0.46137f,\n+     0.49449f,  0.53421f,  0.57711f,  0.6299f,   0.74014f,  0.85731f,  0.9845f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0025743f, 0.010122f, 0.048381f, 0.095227f,\n+     0.15539f,  0.22053f,  0.28038f,  0.33191f,   0.38291f,  0.42927f,  0.47532f,\n+     0.52386f,  0.57553f,  0.64546f,  0.68239f,   0.71318f,  0.83679f,  0.99377f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0022432f, 0.019725f,\n+     0.067908f, 0.13152f,  0.19821f,  0.26356f,  0.3345f,   0.39855f,   0.46338f,\n+     0.53833f,  0.61802f,  0.68515f,  0.7397f,   0.78158f,  0.8123f,    0.99846f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.14292f,  0.27953f,  0.40639f,\n+     0.52748f,  0.63323f,  0.72837f,  0.81116f,  0.88423f,  0.94629f,  1.000000f}};\n+\n+static float map_5point1_ls[21][21] = {\n+    {1.000000f, 0.99863f, 0.99396f, 0.98481f, 0.9703f,  0.94888f,  0.91914f,\n+     0.88048f,  0.83195f, 0.77384f, 0.70834f, 0.63338f, 0.55484f,  0.47562f,\n+     0.39394f,  0.3173f,  0.24362f, 0.17537f, 0.11147f, 0.054079f, -7.8496e-017f},\n+    {0.99854f, 0.94804f, 0.94647f, 0.94043f, 0.92966f, 0.91177f, 0.87898f,\n+     0.82659f, 0.76643f, 0.70248f, 0.63602f, 0.56664f, 0.49969f, 0.43164f,\n+     0.36121f, 0.29703f, 0.24559f, 0.20208f, 0.16581f, 0.13592f, 0.000000f},\n+    {0.99373f, 0.94619f, 0.89929f, 0.8973f,  0.89f,    0.84522f, 0.80369f,\n+     0.75196f, 0.69549f, 0.64182f, 0.59149f, 0.53909f, 0.48676f, 0.43211f,\n+     0.3753f,  0.31848f, 0.25563f, 0.21817f, 0.18628f, 0.11031f, 0.000000f},\n+    {0.98443f, 0.94057f, 0.89693f, 0.84178f, 0.80673f, 0.76938f,  0.72295f,\n+     0.68173f, 0.63988f, 0.59999f, 0.56152f, 0.51902f, 0.47535f,  0.42864f,\n+     0.38061f, 0.33006f, 0.27965f, 0.22857f, 0.15778f, 0.083896f, 0.000000f},\n+    {0.96987f, 0.92924f, 0.89008f, 0.8064f,  0.72353f, 0.68753f,  0.64727f,\n+     0.61961f, 0.59007f, 0.5611f,  0.53236f, 0.49762f, 0.45999f,  0.41905f,\n+     0.37687f, 0.33185f, 0.28785f, 0.21842f, 0.12802f, 0.058746f, 0.000000f},\n+    {0.94832f, 0.91132f, 0.84488f, 0.76916f, 0.6876f,  0.60199f, 0.57793f,\n+     0.55557f, 0.53786f, 0.52026f, 0.49866f, 0.47305f, 0.4406f,  0.40425f,\n+     0.36538f, 0.32707f, 0.2697f,  0.20197f, 0.12403f, 0.03616f, 0.000000f},\n+    {0.91914f, 0.87839f, 0.80323f, 0.72262f, 0.64697f, 0.57779f,  0.51599f,\n+     0.49381f, 0.48147f, 0.4732f,  0.46311f, 0.44521f, 0.41747f,  0.38486f,\n+     0.34957f, 0.30247f, 0.24789f, 0.18361f, 0.10709f, 0.022585f, 0.000000f},\n+    {0.87965f, 0.82586f, 0.75136f, 0.68116f, 0.61943f,  0.55563f,  0.49394f,\n+     0.45149f, 0.43778f, 0.42773f, 0.42381f, 0.41464f,  0.39077f,  0.36007f,\n+     0.32202f, 0.27305f, 0.21805f, 0.15706f, 0.090176f, 0.018356f, 0.000000f},\n+    {0.83195f, 0.76558f, 0.69482f, 0.63955f, 0.58992f,  0.53794f,  0.48142f,\n+     0.43767f, 0.40132f, 0.39038f, 0.38425f, 0.38246f,  0.35885f,  0.3262f,\n+     0.2847f,  0.23683f, 0.18569f, 0.13031f, 0.070512f, 0.012179f, 0.000000f},\n+    {0.77494f, 0.70182f, 0.64105f, 0.59937f, 0.5609f,   0.52028f,   0.47314f,\n+     0.42777f, 0.39034f, 0.35673f, 0.34932f, 0.34449f,  0.31565f,   0.27779f,\n+     0.23728f, 0.19424f, 0.14921f, 0.10103f, 0.049741f, 0.0045097f, 0.000000f},\n+    {0.70711f, 0.63577f, 0.59134f, 0.56143f,  0.53234f,  0.49869f,      0.46315f,\n+     0.42387f, 0.38431f, 0.34937f, 0.3185f,   0.28163f,  0.2449f,       0.21252f,\n+     0.18253f, 0.14834f, 0.1086f,  0.068513f, 0.027472f, -8.5322e-019f, 0.000000f},\n+    {0.63338f, 0.56555f, 0.53856f,  0.51865f,  0.49722f,  0.47263f,  0.44507f,\n+     0.41451f, 0.38241f, 0.34452f,  0.2816f,   0.24145f,  0.18988f,  0.15379f,\n+     0.12638f, 0.10174f, 0.073541f, 0.042039f, 0.011806f, 0.000000f, 0.000000f},\n+    {0.55339f,  0.49871f,  0.48607f,  0.47475f,  0.45953f,   0.44013f,  0.41724f,\n+     0.39065f,  0.35885f,  0.31539f,  0.24485f,  0.1898f,    0.16119f,  0.11535f,\n+     0.083376f, 0.061737f, 0.041097f, 0.018696f, 0.0013628f, 0.000000f, 0.000000f},\n+    {0.47409f,  0.43048f, 0.43138f,  0.42817f,   0.41859f,  0.40381f,  0.38442f,\n+     0.36003f,  0.32583f, 0.27748f,  0.21245f,   0.15351f,  0.11527f,  0.092466f,\n+     0.055926f, 0.03134f, 0.017152f, 0.0039822f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.39234f, 0.35999f,  0.37455f,   0.38033f,  0.37646f,  0.36503f,  0.34948f,\n+     0.32174f, 0.28429f,  0.23686f,   0.18246f,  0.12608f,  0.083197f, 0.055812f,\n+     0.03557f, 0.011379f, 0.0039191f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.31565f,  0.29607f,  0.31773f,  0.32943f,  0.33124f,  0.32696f,  0.30198f,\n+     0.27263f,  0.2365f,   0.19392f,  0.14828f,  0.10138f,  0.061436f, 0.031114f,\n+     0.011267f, 0.002725f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.24192f,   0.24451f,  0.25473f,  0.27908f,  0.28772f,  0.26927f,  0.24734f,\n+     0.21753f,   0.18526f,  0.14882f,  0.10856f,  0.073199f, 0.040831f, 0.01704f,\n+     0.0038302f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.17365f,  0.20108f,  0.21738f,  0.22846f,  0.21775f,  0.20135f,  0.18335f,\n+     0.15652f,  0.12991f,  0.1006f,   0.068474f, 0.041753f, 0.018492f, 0.0038919f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.10973f,  0.16489f,  0.18616f,  0.15705f,  0.12737f,  0.12342f,   0.10655f,\n+     0.089694f, 0.070085f, 0.049384f, 0.027446f, 0.011636f, 0.0013628f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.052332f, 0.13583f,  0.10958f,   0.083257f, 0.058204f, 0.035717f, 0.022438f,\n+     0.018227f, 0.011962f, 0.0043772f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_5point1_rs[21][21] = {\n+    {-7.8496e-017f, 0.052336f, 0.10973f, 0.17365f, 0.24192f, 0.31565f, 0.39394f,\n+     0.47409f,      0.55484f,  0.63338f, 0.70587f, 0.77384f, 0.83195f, 0.87965f,\n+     0.91914f,      0.94832f,  0.96987f, 0.9845f,  0.99377f, 0.99854f, 1.000000f},\n+    {0.000000f, 0.13583f, 0.16489f, 0.20208f, 0.24451f, 0.29589f, 0.35999f,\n+     0.43048f,  0.49857f, 0.56633f, 0.63558f, 0.70182f, 0.76558f, 0.82586f,\n+     0.87839f,  0.91132f, 0.92934f, 0.94057f, 0.94637f, 0.94804f, 0.99863f},\n+    {0.000000f, 0.11031f, 0.18615f, 0.21738f, 0.25552f, 0.31761f, 0.37444f,\n+     0.43128f,  0.48597f, 0.53856f, 0.59121f, 0.64167f, 0.69482f, 0.75136f,\n+     0.80323f,  0.84488f, 0.89008f, 0.89725f, 0.89927f, 0.94647f, 0.99396f},\n+    {0.000000f, 0.083257f, 0.15778f, 0.22845f, 0.27908f, 0.32934f, 0.38061f,\n+     0.42817f,  0.47475f,  0.51865f, 0.56131f, 0.59998f, 0.63948f, 0.6818f,\n+     0.72306f,  0.76916f,  0.80688f, 0.84174f, 0.8973f,  0.94077f, 0.98473f},\n+    {0.000000f, 0.058746f, 0.12737f, 0.2183f,  0.28772f, 0.33167f, 0.37646f,\n+     0.41852f,  0.45953f,  0.49722f, 0.53221f, 0.56083f, 0.58986f, 0.61943f,\n+     0.64753f,  0.6876f,   0.72348f, 0.80673f, 0.89031f, 0.92966f, 0.9703f},\n+    {0.000000f, 0.035717f, 0.12342f, 0.20135f, 0.26927f, 0.32696f, 0.36503f,\n+     0.40381f,  0.44057f,  0.47309f, 0.49858f, 0.52028f, 0.53794f, 0.55557f,\n+     0.57829f,  0.60191f,  0.688f,   0.76938f, 0.84522f, 0.91177f, 0.94888f},\n+    {0.000000f, 0.022264f, 0.10655f, 0.18361f, 0.24774f, 0.30233f, 0.34948f,\n+     0.3848f,   0.41719f,  0.44502f, 0.46308f, 0.47314f, 0.48142f, 0.49394f,\n+     0.51592f,  0.57793f,  0.64727f, 0.72306f, 0.80369f, 0.87898f, 0.91982f},\n+    {0.000000f, 0.018075f, 0.089694f, 0.15698f, 0.21753f, 0.27257f, 0.32174f,\n+     0.36002f,  0.39065f,  0.41451f,  0.4238f,  0.42773f, 0.43804f, 0.45143f,\n+     0.49424f,  0.55557f,  0.61961f,  0.68173f, 0.75196f, 0.82659f, 0.88048f},\n+    {0.000000f, 0.011962f, 0.070085f, 0.12983f, 0.1852f,  0.2365f,  0.28429f,\n+     0.32614f,  0.35884f,  0.38237f,  0.38425f, 0.39034f, 0.40127f, 0.43778f,\n+     0.48142f,  0.53827f,  0.59007f,  0.63988f, 0.69549f, 0.76643f, 0.83292f},\n+    {0.000000f, 0.0043772f, 0.049741f, 0.10103f, 0.14876f, 0.19392f, 0.23686f,\n+     0.27743f,  0.31539f,   0.34452f,  0.34932f, 0.35669f, 0.39034f, 0.42773f,\n+     0.47315f,  0.52061f,   0.5611f,   0.59999f, 0.64182f, 0.7028f,  0.77494f},\n+    {0.000000f, -8.5322e-019f, 0.027447f, 0.068465f, 0.10853f, 0.14825f, 0.18244f,\n+     0.21244f,  0.24485f,      0.28161f,  0.31849f,  0.34932f, 0.38425f, 0.42381f,\n+     0.46314f,  0.49869f,      0.53239f,  0.56152f,  0.59147f, 0.63596f, 0.70711f},\n+    {0.000000f, 0.000000f, 0.011636f, 0.041753f, 0.073199f, 0.1017f,  0.12603f,\n+     0.15351f,  0.18976f,  0.24145f,  0.28164f,  0.34451f,  0.38246f, 0.41464f,\n+     0.44521f,  0.47305f,  0.49762f,  0.51919f,  0.5393f,   0.56664f, 0.63338f},\n+    {0.000000f, 0.000000f, 0.0013084f, 0.018492f, 0.040831f, 0.061737f, 0.083146f,\n+     0.11527f,  0.16121f,  0.18988f,   0.2449f,   0.31565f,  0.35887f,  0.39092f,\n+     0.41747f,  0.4406f,   0.45999f,   0.47535f,  0.48676f,  0.49969f,  0.55484f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0038919f, 0.016973f, 0.031114f, 0.056058f,\n+     0.092505f, 0.11557f,  0.15374f,  0.21251f,   0.27779f,  0.3262f,   0.36008f,\n+     0.38486f,  0.40425f,  0.41905f,  0.42882f,   0.43211f,  0.43164f,  0.47562f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0038302f, 0.011267f, 0.0356f,\n+     0.055926f, 0.083376f, 0.12638f,  0.18252f,  0.23728f,   0.2847f,   0.32214f,\n+     0.34955f,  0.36552f,  0.37704f,  0.38081f,  0.3753f,    0.36121f,  0.39394f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0027341f, 0.011405f,\n+     0.03134f,  0.061737f, 0.10174f,  0.14834f,  0.19436f,  0.23696f,   0.27305f,\n+     0.30247f,  0.32704f,  0.33185f,  0.33006f,  0.31848f,  0.29703f,   0.3173f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0039191f,\n+     0.017152f, 0.041097f, 0.073541f, 0.10862f,  0.14921f,  0.18569f,  0.21805f,\n+     0.24789f,  0.26986f,  0.28782f,  0.27982f,  0.25563f,  0.24559f,  0.24362f},\n+    {0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.0039822f, 0.018696f, 0.042039f, 0.068554f, 0.10103f,  0.13031f,  0.15706f,\n+     0.1837f,    0.20197f,  0.21842f,  0.22858f,  0.21822f,  0.20208f,  0.17537f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0013628f, 0.011806f, 0.027511f, 0.049741f, 0.070512f, 0.090176f,\n+     0.10709f,  0.12403f,   0.12802f,  0.15778f,  0.1863f,   0.16581f,  0.11147f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f,     0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, -8.5322e-019f, 0.0045097f, 0.012179f, 0.018356f,\n+     0.022585f, 0.03616f,  0.058746f, 0.083896f,     0.11031f,   0.136f,    0.054075f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, -7.8496e-017f}};\n+\n+static float map_7point1_ang[] = {-27, 0, 27, -95, 95, -142, 142};\n+static float map_7point1_xsf[] = {-1, 0, 1, -1, 1, -1, 1};\n+static float map_7point1_ysf[] = {1, 1, 1, 0, 0, -1, -1};\n+static channel_id map_7point1_id[] = {\n+    ci_front_left,        ci_front_center, ci_front_right, ci_side_center_left,\n+    ci_side_center_right, ci_back_left,    ci_back_right,  ci_lfe};\n+\n+static float map_7point1_lf[21][21] = {', 'path': 'Source/Core/AudioCommon/ChannelMaps.cpp', 'position': 347, 'original_position': 347, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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 suppose you can remove everything related to `7point1`.', 'created_at': '2026-10-04T10:34:22Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177131536', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177131536'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177131536'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177131536/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4177132051, 'node_id': 'PRRC_kwDOALCn2M74-foT', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177132051', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -0,0 +1,911 @@\n+// Copyright 2026 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+// Copyright (C) 2010 Christian Kothe\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "AudioCommon/FreeSurroundDecoder.h"\n+\n+static float map_5point1_ang[] = {-27, 0, 27, -105, 105};\n+static float map_5point1_xsf[] = {-1, 0, 1, -1, 1};\n+static float map_5point1_ysf[] = {1, 1, 1, -1, -1};\n+static channel_id map_5point1_id[] = {ci_front_left, ci_front_center, ci_front_right,\n+                                      ci_back_left,  ci_back_right,   ci_lfe};\n+\n+static float map_5point1_lf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.054079f, 0.13605f,  0.11031f,   0.083738f, 0.058746f, 0.03616f,  0.022585f,\n+     0.018356f, 0.012179f, 0.0043961f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.11103f,  0.16562f,  0.18635f,  0.15778f,  0.12791f,  0.12403f,   0.10709f,\n+     0.090176f, 0.070512f, 0.049741f, 0.027549f, 0.011727f, 0.0013628f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.17535f,  0.20208f,  0.21809f,  0.22862f,  0.21842f,  0.20197f,  0.18341f,\n+     0.15706f,  0.13031f,  0.10103f,  0.068601f, 0.041975f, 0.018696f, 0.0039144f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.24362f,   0.24543f,  0.25563f,  0.27972f,  0.28786f,  0.26979f,  0.24789f,\n+     0.21805f,   0.18569f,  0.14921f,  0.10871f,  0.073541f, 0.041097f, 0.017152f,\n+     0.0038597f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.3173f,   0.29703f,   0.31848f,  0.33006f,  0.33185f,  0.32571f,  0.30203f,\n+     0.27305f,  0.23691f,   0.19431f,  0.14844f,  0.10174f,  0.061737f, 0.03134f,\n+     0.010908f, 0.0013625f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.39394f,  0.36121f,    0.3753f,   0.38051f,  0.37306f,  0.35451f,  0.33178f,\n+     0.30958f,  0.28023f,    0.23726f,  0.18262f,  0.12638f,  0.07899f,  0.043546f,\n+     0.017841f, 0.00044495f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.47562f,  0.43164f,  0.43211f,  0.42477f,  0.4019f,   0.37291f,  0.34131f,\n+     0.31385f,  0.29675f,  0.2674f,   0.21259f,  0.14347f,  0.086077f, 0.046322f,\n+     0.012467f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.55484f,   0.49969f,  0.48539f,  0.45665f,  0.41889f,  0.37886f,  0.33895f,\n+     0.30764f,   0.28138f,  0.2723f,   0.23279f,  0.14674f,  0.083778f, 0.032293f,\n+     0.0048976f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.63203f,  0.56664f,   0.52742f,  0.47709f,  0.42408f,  0.37424f,  0.33419f,\n+     0.30176f,  0.27482f,   0.25011f,  0.23665f,  0.1471f,   0.082204f, 0.040759f,\n+     0.015195f, 0.0028496f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.70711f,  0.63601f,  0.56403f,   0.49301f,  0.42572f,  0.37154f,  0.33227f,\n+     0.30051f,  0.27246f,  0.24769f,   0.22385f,  0.17996f,  0.13303f,  0.089089f,\n+     0.051572f, 0.021112f, 0.0019269f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.77384f,  0.69829f,  0.59208f, 0.49896f,  0.42627f,  0.37547f,  0.33559f,\n+     0.30342f,  0.27695f,  0.2532f,  0.24555f,  0.24096f,  0.202f,    0.15312f,\n+     0.099312f, 0.049149f, 0.01419f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.83292f, 0.75424f,  0.62497f,  0.51188f,   0.43577f,  0.38288f,  0.34157f,\n+     0.31064f, 0.28485f,  0.27588f,  0.27011f,   0.26791f,  0.24233f,  0.19874f,\n+     0.14444f, 0.081488f, 0.031102f, 0.0022352f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.88048f, 0.80823f, 0.66178f,  0.53219f,   0.45043f,  0.39421f,  0.35046f,\n+     0.32046f, 0.30985f, 0.30176f,  0.29791f,   0.28855f,  0.26277f,  0.22895f,\n+     0.1783f,  0.11122f, 0.048526f, 0.0073556f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.91982f, 0.8564f,  0.6966f,   0.55364f,  0.46596f,  0.41011f,  0.36623f,\n+     0.3499f,  0.34025f, 0.33348f,  0.32389f,  0.30536f,  0.27602f,  0.24046f,\n+     0.19967f, 0.13416f, 0.066173f, 0.014462f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.94888f, 0.8756f,  0.72118f,  0.58509f,  0.49378f,  0.42727f,  0.40951f,\n+     0.39303f, 0.37927f, 0.36377f,  0.34295f,  0.31626f,  0.28156f,  0.24129f,\n+     0.19667f, 0.15218f, 0.075526f, 0.017441f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.9703f,  0.87092f, 0.76228f,  0.60765f,  0.51716f,  0.48514f,  0.45531f,\n+     0.43328f, 0.40894f, 0.38299f,  0.35389f,  0.31939f,  0.27862f,  0.23237f,\n+     0.18465f, 0.12881f, 0.081296f, 0.019071f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.98481f, 0.85688f, 0.73952f, 0.62982f,  0.5767f,   0.53382f,  0.4939f,\n+     0.46098f, 0.42667f, 0.39124f, 0.35254f,  0.31034f,  0.26195f,  0.20782f,\n+     0.15167f, 0.09417f, 0.04946f, 0.016531f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.99396f,  0.83616f,  0.71307f,   0.68155f,   0.64457f,  0.57478f,  0.52315f,\n+     0.47464f,  0.42859f,  0.38222f,   0.33181f,   0.27965f,  0.21975f,  0.15464f,\n+     0.094607f, 0.047925f, 0.0098814f, 0.0024671f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.99855f,  0.81216f,   0.78057f,  0.73849f,  0.68375f,  0.61653f,  0.5369f,\n+     0.46213f,  0.39741f,   0.33339f,  0.26339f,  0.19725f,  0.13069f,  0.067274f,\n+     0.019339f, 0.0021311f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {1.000000f, 0.94446f,  0.8823f,   0.80914f,  0.72626f,  0.63102f,  0.52519f,\n+     0.40402f,  0.27711f,  0.14046f,  0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_5point1_cf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.00062925f,\n+     0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,\n+     0.00059225f, 0.001914f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f,  0.000000f,    0.000000f, 0.0055425f, 0.0155f,    0.025167f,\n+     0.017695f, 0.0063155f, 1.0116e-005f, 0.000000f, 0.000000f,  0.0062031f, 0.017508f,\n+     0.025125f, 0.015305f,  0.0054168f,   0.000000f, 0.000000f,  0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0056317f,   0.024256f, 0.044322f, 0.061583f,\n+     0.065405f, 0.041656f, 0.014688f, 4.0817e-019f, 0.014527f, 0.041389f, 0.065342f,\n+     0.061236f, 0.044002f, 0.024003f, 0.005504f,    0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.0019274f, 0.02644f,  0.05812f,   0.08731f,  0.11105f,\n+     0.11767f,  0.10963f,  0.061306f,  0.017226f, 0.061006f,  0.10958f,  0.11735f,\n+     0.11066f,  0.086884f, 0.057744f,  0.026151f, 0.0018503f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.016697f, 0.059451f, 0.104f,    0.13974f,  0.15702f,\n+     0.15962f,  0.15223f,  0.13355f,  0.063692f, 0.13353f,  0.15211f,  0.15945f,\n+     0.15675f,  0.13934f,  0.10352f,  0.059047f, 0.016456f, 0.000000f, 0.000000f},\n+    {0.000000f, 1.2068e-018f, 0.038851f, 0.096919f, 0.15087f,  0.17987f,  0.18511f,\n+     0.17445f,  0.15817f,     0.14379f,  0.13384f,  0.14378f,  0.15816f,  0.17444f,\n+     0.18509f,  0.17981f,     0.15076f,  0.096821f, 0.038797f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.0063777f, 0.070344f, 0.14288f, 0.19068f, 0.2049f,    0.19453f,\n+     0.1758f,   0.16036f,   0.14645f,  0.14681f, 0.14646f, 0.16036f,   0.1758f,\n+     0.19453f,  0.20473f,   0.19031f,  0.14227f, 0.06984f, 0.0061903f, 0.000000f},\n+    {0.000000f, 0.017224f, 0.099719f, 0.18101f, 0.21822f,  0.2193f,   0.19777f,\n+     0.17979f,  0.16475f,  0.16187f,  0.16149f, 0.16187f,  0.16477f,  0.1798f,\n+     0.19777f,  0.21922f,  0.21792f,  0.18045f, 0.099116f, 0.016918f, 0.000000f},\n+    {0.000000f, 0.02596f, 0.12753f, 0.21148f, 0.23925f, 0.22819f,  0.20284f,\n+     0.18535f,  0.18085f, 0.17814f, 0.17812f, 0.17814f, 0.18084f,  0.18536f,\n+     0.20284f,  0.22818f, 0.23901f, 0.21095f, 0.12685f, 0.025562f, 0.000000f},\n+    {0.000000f, 0.03194f, 0.15144f, 0.23904f, 0.2564f,  0.23733f,  0.21182f,\n+     0.20371f,  0.19964f, 0.19751f, 0.19694f, 0.1975f,  0.19963f,  0.20369f,\n+     0.21184f,  0.23733f, 0.25621f, 0.23853f, 0.15068f, 0.031485f, 0.000000f},\n+    {0.000000f, 0.051138f, 0.17541f, 0.26062f, 0.27419f, 0.24713f,  0.23812f,\n+     0.22985f,  0.2244f,   0.22133f, 0.22022f, 0.22132f, 0.22439f,  0.22984f,\n+     0.2381f,   0.24715f,  0.274f,   0.26009f, 0.17455f, 0.050511f, 0.000000f},\n+    {0.000000f, 0.08308f, 0.18105f, 0.28155f, 0.29188f, 0.28632f,  0.27128f,\n+     0.26327f,  0.25585f, 0.25151f, 0.25234f, 0.2515f,  0.25584f,  0.26325f,\n+     0.27127f,  0.28627f, 0.29189f, 0.28098f, 0.18013f, 0.082312f, 0.000000f},\n+    {0.000000f, 0.11865f, 0.22314f, 0.29977f, 0.32517f, 0.33282f, 0.32312f,\n+     0.31164f,  0.30095f, 0.2946f,  0.29542f, 0.29459f, 0.30094f, 0.31163f,\n+     0.32308f,  0.33259f, 0.32473f, 0.29967f, 0.22211f, 0.11774f, 0.000000f},\n+    {0.000000f, 0.15601f, 0.26339f, 0.30497f, 0.3472f,  0.38198f, 0.39609f,\n+     0.39135f,  0.3765f,  0.36616f, 0.36703f, 0.36615f, 0.37649f, 0.39123f,\n+     0.39574f,  0.3814f,  0.34627f, 0.30393f, 0.26322f, 0.15497f, 0.000000f},\n+    {0.000000f, 0.19222f, 0.23448f, 0.28578f, 0.34732f, 0.4169f,  0.48293f,\n+     0.51439f,  0.52067f, 0.52104f, 0.52661f, 0.52086f, 0.52026f, 0.51365f,\n+     0.48176f,  0.41543f, 0.34579f, 0.28436f, 0.23319f, 0.19202f, 0.000000f},\n+    {1.1102e-016f, 0.076479f, 0.15764f, 0.24801f,  0.34452f, 0.44874f,  0.55712f,\n+     0.67263f,     0.78467f,  0.89574f, 1.000000f, 0.89382f, 0.78261f,  0.67046f,\n+     0.55485f,     0.4464f,   0.34213f, 0.24558f,  0.15519f, 0.074014f, 0.000000f}};\n+\n+static float map_5point1_rf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0043772f, 0.011962f, 0.018075f,\n+     0.022264f, 0.035717f, 0.058204f, 0.083257f, 0.10958f,   0.13592f,  0.052336f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0013084f, 0.011636f, 0.027472f, 0.049384f, 0.070085f, 0.089694f,\n+     0.10655f,  0.12342f,   0.12737f,  0.15705f,  0.18623f,  0.16489f,  0.10973f},\n+    {0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.0038919f, 0.018492f, 0.041753f, 0.068513f, 0.1006f,   0.12983f,  0.15652f,\n+     0.18313f,   0.20135f,  0.21775f,  0.22851f,  0.21738f,  0.20108f,  0.17363f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0038302f,\n+     0.016973f, 0.040831f, 0.073199f, 0.10859f,  0.14876f,  0.1852f,   0.21753f,\n+     0.24734f,  0.26927f,  0.28776f,  0.27908f,  0.25473f,  0.24451f,  0.24192f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0013625f, 0.010822f,\n+     0.031114f, 0.061436f, 0.10138f,  0.14831f,  0.19392f,  0.2365f,    0.27257f,\n+     0.30156f,  0.32564f,  0.33123f,  0.32934f,  0.31761f,  0.29589f,   0.31565f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.00041878f, 0.017789f,\n+     0.0433f,   0.07868f,  0.12602f,  0.18248f,  0.23686f,  0.2799f,     0.30936f,\n+     0.33175f,  0.35421f,  0.37263f,  0.38012f,  0.37444f,  0.35999f,    0.39234f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.01238f,\n+     0.046242f, 0.085813f, 0.14312f,  0.21247f,  0.26716f,  0.29661f,  0.31385f,\n+     0.34119f,  0.3727f,   0.40155f,  0.42428f,  0.43128f,  0.43048f,  0.47409f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0048489f,\n+     0.032179f, 0.083684f, 0.14641f,  0.23272f,  0.27225f,  0.28139f,  0.30767f,\n+     0.33894f,  0.3788f,   0.4187f,   0.45626f,  0.48466f,  0.49857f,  0.55339f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0029287f, 0.015357f,\n+     0.040874f, 0.082238f, 0.14702f,  0.23663f,  0.25012f,  0.27481f,   0.30176f,\n+     0.33418f,  0.37423f,  0.42403f,  0.4769f,   0.52692f,  0.56555f,   0.63203f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019397f, 0.021156f, 0.051639f,\n+     0.089163f, 0.13307f,  0.17997f,  0.22386f,  0.24772f,   0.27249f,  0.30054f,\n+     0.33231f,  0.37158f,  0.42577f,  0.49302f,  0.56398f,   0.63586f,  0.70711f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.01438f, 0.049473f, 0.099723f,\n+     0.15348f,  0.20226f,  0.24098f,  0.24557f,  0.25321f, 0.27695f,  0.30342f,\n+     0.33559f,  0.37551f,  0.42626f,  0.49895f,  0.59175f, 0.69745f,  0.77384f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0023122f, 0.031384f, 0.081894f, 0.14485f,\n+     0.19907f,  0.24237f,  0.268f,    0.27012f,   0.27589f,  0.28486f,  0.31064f,\n+     0.34157f,  0.38293f,  0.43576f,  0.51188f,   0.62473f,  0.75361f,  0.83195f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0075151f, 0.048878f, 0.11169f, 0.17871f,\n+     0.229f,    0.263f,    0.28867f,  0.29793f,   0.30177f,  0.3099f,  0.32047f,\n+     0.3505f,   0.39422f,  0.45043f,  0.53218f,   0.66167f,  0.80779f, 0.87965f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.014677f, 0.066587f, 0.13466f, 0.19976f,\n+     0.24081f,  0.2763f,   0.30555f,  0.32392f,  0.33349f,  0.34026f, 0.3499f,\n+     0.36625f,  0.41012f,  0.46596f,  0.55393f,  0.69668f,  0.85613f, 0.91914f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.017689f, 0.075976f, 0.15229f, 0.19715f,\n+     0.24172f,  0.28192f,  0.31654f,  0.343f,    0.3639f,   0.37933f, 0.39305f,\n+     0.40957f,  0.42729f,  0.49385f,  0.58524f,  0.72145f,  0.8756f,  0.94832f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.019339f, 0.081415f, 0.12939f, 0.18521f,\n+     0.2329f,   0.27908f,  0.31978f,  0.35395f,  0.38326f,  0.40917f, 0.43346f,\n+     0.45546f,  0.48528f,  0.5172f,   0.60794f,  0.76272f,  0.87113f, 0.96987f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.016574f, 0.049892f, 0.094728f, 0.15233f,\n+     0.20846f,  0.26255f,  0.31088f,  0.35261f,  0.39169f,  0.42708f,  0.46137f,\n+     0.49449f,  0.53421f,  0.57711f,  0.6299f,   0.74014f,  0.85731f,  0.9845f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0025743f, 0.010122f, 0.048381f, 0.095227f,\n+     0.15539f,  0.22053f,  0.28038f,  0.33191f,   0.38291f,  0.42927f,  0.47532f,\n+     0.52386f,  0.57553f,  0.64546f,  0.68239f,   0.71318f,  0.83679f,  0.99377f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0022432f, 0.019725f,\n+     0.067908f, 0.13152f,  0.19821f,  0.26356f,  0.3345f,   0.39855f,   0.46338f,\n+     0.53833f,  0.61802f,  0.68515f,  0.7397f,   0.78158f,  0.8123f,    0.99846f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.14292f,  0.27953f,  0.40639f,\n+     0.52748f,  0.63323f,  0.72837f,  0.81116f,  0.88423f,  0.94629f,  1.000000f}};\n+\n+static float map_5point1_ls[21][21] = {\n+    {1.000000f, 0.99863f, 0.99396f, 0.98481f, 0.9703f,  0.94888f,  0.91914f,\n+     0.88048f,  0.83195f, 0.77384f, 0.70834f, 0.63338f, 0.55484f,  0.47562f,\n+     0.39394f,  0.3173f,  0.24362f, 0.17537f, 0.11147f, 0.054079f, -7.8496e-017f},\n+    {0.99854f, 0.94804f, 0.94647f, 0.94043f, 0.92966f, 0.91177f, 0.87898f,\n+     0.82659f, 0.76643f, 0.70248f, 0.63602f, 0.56664f, 0.49969f, 0.43164f,\n+     0.36121f, 0.29703f, 0.24559f, 0.20208f, 0.16581f, 0.13592f, 0.000000f},\n+    {0.99373f, 0.94619f, 0.89929f, 0.8973f,  0.89f,    0.84522f, 0.80369f,\n+     0.75196f, 0.69549f, 0.64182f, 0.59149f, 0.53909f, 0.48676f, 0.43211f,\n+     0.3753f,  0.31848f, 0.25563f, 0.21817f, 0.18628f, 0.11031f, 0.000000f},\n+    {0.98443f, 0.94057f, 0.89693f, 0.84178f, 0.80673f, 0.76938f,  0.72295f,\n+     0.68173f, 0.63988f, 0.59999f, 0.56152f, 0.51902f, 0.47535f,  0.42864f,\n+     0.38061f, 0.33006f, 0.27965f, 0.22857f, 0.15778f, 0.083896f, 0.000000f},\n+    {0.96987f, 0.92924f, 0.89008f, 0.8064f,  0.72353f, 0.68753f,  0.64727f,\n+     0.61961f, 0.59007f, 0.5611f,  0.53236f, 0.49762f, 0.45999f,  0.41905f,\n+     0.37687f, 0.33185f, 0.28785f, 0.21842f, 0.12802f, 0.058746f, 0.000000f},\n+    {0.94832f, 0.91132f, 0.84488f, 0.76916f, 0.6876f,  0.60199f, 0.57793f,\n+     0.55557f, 0.53786f, 0.52026f, 0.49866f, 0.47305f, 0.4406f,  0.40425f,\n+     0.36538f, 0.32707f, 0.2697f,  0.20197f, 0.12403f, 0.03616f, 0.000000f},\n+    {0.91914f, 0.87839f, 0.80323f, 0.72262f, 0.64697f, 0.57779f,  0.51599f,\n+     0.49381f, 0.48147f, 0.4732f,  0.46311f, 0.44521f, 0.41747f,  0.38486f,\n+     0.34957f, 0.30247f, 0.24789f, 0.18361f, 0.10709f, 0.022585f, 0.000000f},\n+    {0.87965f, 0.82586f, 0.75136f, 0.68116f, 0.61943f,  0.55563f,  0.49394f,\n+     0.45149f, 0.43778f, 0.42773f, 0.42381f, 0.41464f,  0.39077f,  0.36007f,\n+     0.32202f, 0.27305f, 0.21805f, 0.15706f, 0.090176f, 0.018356f, 0.000000f},\n+    {0.83195f, 0.76558f, 0.69482f, 0.63955f, 0.58992f,  0.53794f,  0.48142f,\n+     0.43767f, 0.40132f, 0.39038f, 0.38425f, 0.38246f,  0.35885f,  0.3262f,\n+     0.2847f,  0.23683f, 0.18569f, 0.13031f, 0.070512f, 0.012179f, 0.000000f},\n+    {0.77494f, 0.70182f, 0.64105f, 0.59937f, 0.5609f,   0.52028f,   0.47314f,\n+     0.42777f, 0.39034f, 0.35673f, 0.34932f, 0.34449f,  0.31565f,   0.27779f,\n+     0.23728f, 0.19424f, 0.14921f, 0.10103f, 0.049741f, 0.0045097f, 0.000000f},\n+    {0.70711f, 0.63577f, 0.59134f, 0.56143f,  0.53234f,  0.49869f,      0.46315f,\n+     0.42387f, 0.38431f, 0.34937f, 0.3185f,   0.28163f,  0.2449f,       0.21252f,\n+     0.18253f, 0.14834f, 0.1086f,  0.068513f, 0.027472f, -8.5322e-019f, 0.000000f},\n+    {0.63338f, 0.56555f, 0.53856f,  0.51865f,  0.49722f,  0.47263f,  0.44507f,\n+     0.41451f, 0.38241f, 0.34452f,  0.2816f,   0.24145f,  0.18988f,  0.15379f,\n+     0.12638f, 0.10174f, 0.073541f, 0.042039f, 0.011806f, 0.000000f, 0.000000f},\n+    {0.55339f,  0.49871f,  0.48607f,  0.47475f,  0.45953f,   0.44013f,  0.41724f,\n+     0.39065f,  0.35885f,  0.31539f,  0.24485f,  0.1898f,    0.16119f,  0.11535f,\n+     0.083376f, 0.061737f, 0.041097f, 0.018696f, 0.0013628f, 0.000000f, 0.000000f},\n+    {0.47409f,  0.43048f, 0.43138f,  0.42817f,   0.41859f,  0.40381f,  0.38442f,\n+     0.36003f,  0.32583f, 0.27748f,  0.21245f,   0.15351f,  0.11527f,  0.092466f,\n+     0.055926f, 0.03134f, 0.017152f, 0.0039822f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.39234f, 0.35999f,  0.37455f,   0.38033f,  0.37646f,  0.36503f,  0.34948f,\n+     0.32174f, 0.28429f,  0.23686f,   0.18246f,  0.12608f,  0.083197f, 0.055812f,\n+     0.03557f, 0.011379f, 0.0039191f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.31565f,  0.29607f,  0.31773f,  0.32943f,  0.33124f,  0.32696f,  0.30198f,\n+     0.27263f,  0.2365f,   0.19392f,  0.14828f,  0.10138f,  0.061436f, 0.031114f,\n+     0.011267f, 0.002725f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.24192f,   0.24451f,  0.25473f,  0.27908f,  0.28772f,  0.26927f,  0.24734f,\n+     0.21753f,   0.18526f,  0.14882f,  0.10856f,  0.073199f, 0.040831f, 0.01704f,\n+     0.0038302f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.17365f,  0.20108f,  0.21738f,  0.22846f,  0.21775f,  0.20135f,  0.18335f,\n+     0.15652f,  0.12991f,  0.1006f,   0.068474f, 0.041753f, 0.018492f, 0.0038919f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.10973f,  0.16489f,  0.18616f,  0.15705f,  0.12737f,  0.12342f,   0.10655f,\n+     0.089694f, 0.070085f, 0.049384f, 0.027446f, 0.011636f, 0.0013628f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.052332f, 0.13583f,  0.10958f,   0.083257f, 0.058204f, 0.035717f, 0.022438f,\n+     0.018227f, 0.011962f, 0.0043772f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_5point1_rs[21][21] = {\n+    {-7.8496e-017f, 0.052336f, 0.10973f, 0.17365f, 0.24192f, 0.31565f, 0.39394f,\n+     0.47409f,      0.55484f,  0.63338f, 0.70587f, 0.77384f, 0.83195f, 0.87965f,\n+     0.91914f,      0.94832f,  0.96987f, 0.9845f,  0.99377f, 0.99854f, 1.000000f},\n+    {0.000000f, 0.13583f, 0.16489f, 0.20208f, 0.24451f, 0.29589f, 0.35999f,\n+     0.43048f,  0.49857f, 0.56633f, 0.63558f, 0.70182f, 0.76558f, 0.82586f,\n+     0.87839f,  0.91132f, 0.92934f, 0.94057f, 0.94637f, 0.94804f, 0.99863f},\n+    {0.000000f, 0.11031f, 0.18615f, 0.21738f, 0.25552f, 0.31761f, 0.37444f,\n+     0.43128f,  0.48597f, 0.53856f, 0.59121f, 0.64167f, 0.69482f, 0.75136f,\n+     0.80323f,  0.84488f, 0.89008f, 0.89725f, 0.89927f, 0.94647f, 0.99396f},\n+    {0.000000f, 0.083257f, 0.15778f, 0.22845f, 0.27908f, 0.32934f, 0.38061f,\n+     0.42817f,  0.47475f,  0.51865f, 0.56131f, 0.59998f, 0.63948f, 0.6818f,\n+     0.72306f,  0.76916f,  0.80688f, 0.84174f, 0.8973f,  0.94077f, 0.98473f},\n+    {0.000000f, 0.058746f, 0.12737f, 0.2183f,  0.28772f, 0.33167f, 0.37646f,\n+     0.41852f,  0.45953f,  0.49722f, 0.53221f, 0.56083f, 0.58986f, 0.61943f,\n+     0.64753f,  0.6876f,   0.72348f, 0.80673f, 0.89031f, 0.92966f, 0.9703f},\n+    {0.000000f, 0.035717f, 0.12342f, 0.20135f, 0.26927f, 0.32696f, 0.36503f,\n+     0.40381f,  0.44057f,  0.47309f, 0.49858f, 0.52028f, 0.53794f, 0.55557f,\n+     0.57829f,  0.60191f,  0.688f,   0.76938f, 0.84522f, 0.91177f, 0.94888f},\n+    {0.000000f, 0.022264f, 0.10655f, 0.18361f, 0.24774f, 0.30233f, 0.34948f,\n+     0.3848f,   0.41719f,  0.44502f, 0.46308f, 0.47314f, 0.48142f, 0.49394f,\n+     0.51592f,  0.57793f,  0.64727f, 0.72306f, 0.80369f, 0.87898f, 0.91982f},\n+    {0.000000f, 0.018075f, 0.089694f, 0.15698f, 0.21753f, 0.27257f, 0.32174f,\n+     0.36002f,  0.39065f,  0.41451f,  0.4238f,  0.42773f, 0.43804f, 0.45143f,\n+     0.49424f,  0.55557f,  0.61961f,  0.68173f, 0.75196f, 0.82659f, 0.88048f},\n+    {0.000000f, 0.011962f, 0.070085f, 0.12983f, 0.1852f,  0.2365f,  0.28429f,\n+     0.32614f,  0.35884f,  0.38237f,  0.38425f, 0.39034f, 0.40127f, 0.43778f,\n+     0.48142f,  0.53827f,  0.59007f,  0.63988f, 0.69549f, 0.76643f, 0.83292f},\n+    {0.000000f, 0.0043772f, 0.049741f, 0.10103f, 0.14876f, 0.19392f, 0.23686f,\n+     0.27743f,  0.31539f,   0.34452f,  0.34932f, 0.35669f, 0.39034f, 0.42773f,\n+     0.47315f,  0.52061f,   0.5611f,   0.59999f, 0.64182f, 0.7028f,  0.77494f},\n+    {0.000000f, -8.5322e-019f, 0.027447f, 0.068465f, 0.10853f, 0.14825f, 0.18244f,\n+     0.21244f,  0.24485f,      0.28161f,  0.31849f,  0.34932f, 0.38425f, 0.42381f,\n+     0.46314f,  0.49869f,      0.53239f,  0.56152f,  0.59147f, 0.63596f, 0.70711f},\n+    {0.000000f, 0.000000f, 0.011636f, 0.041753f, 0.073199f, 0.1017f,  0.12603f,\n+     0.15351f,  0.18976f,  0.24145f,  0.28164f,  0.34451f,  0.38246f, 0.41464f,\n+     0.44521f,  0.47305f,  0.49762f,  0.51919f,  0.5393f,   0.56664f, 0.63338f},\n+    {0.000000f, 0.000000f, 0.0013084f, 0.018492f, 0.040831f, 0.061737f, 0.083146f,\n+     0.11527f,  0.16121f,  0.18988f,   0.2449f,   0.31565f,  0.35887f,  0.39092f,\n+     0.41747f,  0.4406f,   0.45999f,   0.47535f,  0.48676f,  0.49969f,  0.55484f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0038919f, 0.016973f, 0.031114f, 0.056058f,\n+     0.092505f, 0.11557f,  0.15374f,  0.21251f,   0.27779f,  0.3262f,   0.36008f,\n+     0.38486f,  0.40425f,  0.41905f,  0.42882f,   0.43211f,  0.43164f,  0.47562f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0038302f, 0.011267f, 0.0356f,\n+     0.055926f, 0.083376f, 0.12638f,  0.18252f,  0.23728f,   0.2847f,   0.32214f,\n+     0.34955f,  0.36552f,  0.37704f,  0.38081f,  0.3753f,    0.36121f,  0.39394f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0027341f, 0.011405f,\n+     0.03134f,  0.061737f, 0.10174f,  0.14834f,  0.19436f,  0.23696f,   0.27305f,\n+     0.30247f,  0.32704f,  0.33185f,  0.33006f,  0.31848f,  0.29703f,   0.3173f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0039191f,\n+     0.017152f, 0.041097f, 0.073541f, 0.10862f,  0.14921f,  0.18569f,  0.21805f,\n+     0.24789f,  0.26986f,  0.28782f,  0.27982f,  0.25563f,  0.24559f,  0.24362f},\n+    {0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.0039822f, 0.018696f, 0.042039f, 0.068554f, 0.10103f,  0.13031f,  0.15706f,\n+     0.1837f,    0.20197f,  0.21842f,  0.22858f,  0.21822f,  0.20208f,  0.17537f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0013628f, 0.011806f, 0.027511f, 0.049741f, 0.070512f, 0.090176f,\n+     0.10709f,  0.12403f,   0.12802f,  0.15778f,  0.1863f,   0.16581f,  0.11147f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f,     0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, -8.5322e-019f, 0.0045097f, 0.012179f, 0.018356f,\n+     0.022585f, 0.03616f,  0.058746f, 0.083896f,     0.11031f,   0.136f,    0.054075f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, -7.8496e-017f}};\n+\n+static float map_7point1_ang[] = {-27, 0, 27, -95, 95, -142, 142};\n+static float map_7point1_xsf[] = {-1, 0, 1, -1, 1, -1, 1};\n+static float map_7point1_ysf[] = {1, 1, 1, 0, 0, -1, -1};\n+static channel_id map_7point1_id[] = {\n+    ci_front_left,        ci_front_center, ci_front_right, ci_side_center_left,\n+    ci_side_center_right, ci_back_left,    ci_back_right,  ci_lfe};\n+\n+static float map_7point1_lf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 9.4126e-019f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,    0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,    0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f,  0.000000f,  0.0025743f, 0.016552f, 0.019339f, 0.017689f, 0.014677f,\n+     0.0075151f, 0.0023122f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f,  0.000000f,  0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.010122f, 0.049892f,  0.081385f, 0.075976f, 0.066587f,\n+     0.048878f, 0.031384f, 0.01438f,  0.0019269f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.0022432f, 0.048381f, 0.094728f, 0.12939f,   0.15091f,  0.13421f,\n+     0.11169f,  0.081894f,  0.049473f, 0.021188f, 0.0029287f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f},\n+    {0.000000f, 0.019725f, 0.095227f, 0.15233f,  0.18129f,  0.18619f,   0.18195f,\n+     0.1662f,   0.14038f,  0.099716f, 0.051668f, 0.015357f, 0.0004627f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.067908f, 0.15539f,  0.20448f,  0.21574f,  0.21038f,   0.19727f,\n+     0.18275f,  0.16961f,  0.14309f,  0.089211f, 0.030602f, 0.0029125f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f,   0.13152f,  0.21916f,  0.24385f,  0.23799f,  0.22019f,   0.19777f,\n+     0.1798f,     0.16484f,  0.15891f,  0.12092f,  0.0391f,   0.0061765f, 0.0028379f,\n+     0.00043186f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.19821f,   0.26858f,  0.26884f,  0.24624f,  0.21773f,  0.19453f,\n+     0.1758f,   0.16036f,   0.14653f,  0.13495f,  0.052607f, 0.038854f, 0.030373f,\n+     0.015188f, 0.0028496f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {8.6596e-017f, 0.26351f,  0.30441f,   0.28405f,  0.24723f,  0.21577f,  0.19296f,\n+     0.17452f,     0.15823f,  0.14384f,   0.13114f,  0.13492f,  0.12086f,  0.089089f,\n+     0.051572f,    0.021112f, 0.0019269f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.14292f,  0.32999f,  0.33317f, 0.29065f,  0.24843f,  0.21902f,  0.19594f,\n+     0.17746f,  0.1625f,   0.14962f, 0.14386f,  0.14651f,  0.15886f,  0.14285f,\n+     0.099312f, 0.049149f, 0.01419f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.27953f, 0.38637f,  0.35876f,  0.29909f,   0.25487f,  0.22426f,  0.20041f,\n+     0.18277f, 0.16832f,  0.16249f,  0.15824f,   0.16036f,  0.16482f,  0.16948f,\n+     0.14005f, 0.081488f, 0.031102f, 0.0022352f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.40639f, 0.44503f, 0.38515f,  0.31183f,   0.26428f,  0.23169f,  0.20647f,\n+     0.18936f, 0.18276f, 0.17745f,  0.17453f,   0.1758f,   0.17979f,  0.18273f,\n+     0.16592f, 0.11122f, 0.048526f, 0.0073556f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.52748f, 0.51574f, 0.41678f,  0.32546f,  0.27415f,  0.24175f,  0.21641f,\n+     0.20646f, 0.2004f,  0.19593f,  0.19298f,  0.19453f,  0.19777f,  0.19716f,\n+     0.18189f, 0.13374f, 0.066173f, 0.014462f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.63323f, 0.58186f, 0.4515f,   0.34992f,  0.2914f,   0.25248f,  0.24174f,\n+     0.23169f, 0.22425f, 0.219f,    0.21579f,  0.21773f,  0.22013f,  0.21018f,\n+     0.18585f, 0.15082f, 0.075526f, 0.017441f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.72837f, 0.62641f, 0.51744f,  0.37803f,  0.31074f,  0.29139f,  0.27414f,\n+     0.26427f, 0.25485f, 0.24842f,  0.24726f,  0.24619f,  0.23779f,  0.2154f,\n+     0.18082f, 0.12881f, 0.081296f, 0.019071f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.81116f, 0.6558f,  0.5246f,  0.41789f,  0.37802f,  0.34991f,  0.32545f,\n+     0.31182f, 0.29908f, 0.29063f, 0.28406f,  0.26859f,  0.24346f,  0.20392f,\n+     0.15167f, 0.09417f, 0.04946f, 0.016531f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.88423f,  0.67127f,  0.52691f,   0.5245f,    0.51721f,  0.45136f,  0.41661f,\n+     0.38495f,  0.35851f,  0.33283f,   0.30436f,   0.26801f,  0.21844f,  0.15464f,\n+     0.094607f, 0.047925f, 0.0098814f, 0.0024671f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.94622f,  0.67633f,   0.67099f,  0.65523f,  0.62554f,  0.58081f,  0.51465f,\n+     0.44406f,  0.38544f,   0.32902f,  0.26339f,  0.19725f,  0.13069f,  0.067274f,\n+     0.019339f, 0.0021311f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {1.000000f, 0.94446f,  0.8823f,   0.80914f,  0.72626f,  0.63102f,  0.52519f,\n+     0.40402f,  0.27711f,  0.14046f,  0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_7point1_cf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.00062925f,\n+     0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,\n+     0.00059225f, 0.001914f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f,  0.000000f,    0.000000f, 0.0055425f, 0.0155f,    0.025167f,\n+     0.017695f, 0.0063155f, 1.0116e-005f, 0.000000f, 0.000000f,  0.0062031f, 0.017508f,\n+     0.025125f, 0.015305f,  0.0054168f,   0.000000f, 0.000000f,  0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0056317f,   0.024256f, 0.044322f, 0.061583f,\n+     0.065405f, 0.041656f, 0.014688f, 4.0817e-019f, 0.014527f, 0.041389f, 0.065342f,\n+     0.061236f, 0.044002f, 0.024003f, 0.005504f,    0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.0019274f, 0.02644f,  0.05812f,   0.08731f,  0.11105f,\n+     0.11767f,  0.10963f,  0.061306f,  0.017226f, 0.061006f,  0.10958f,  0.11735f,\n+     0.11066f,  0.086884f, 0.057744f,  0.026151f, 0.0018503f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.016697f, 0.059451f, 0.104f,    0.13974f,  0.15702f,\n+     0.15962f,  0.15223f,  0.13355f,  0.063692f, 0.13353f,  0.15211f,  0.15945f,\n+     0.15675f,  0.13934f,  0.10352f,  0.059047f, 0.016456f, 0.000000f, 0.000000f},\n+    {0.000000f, 1.2068e-018f, 0.038851f, 0.096919f, 0.15087f,  0.17987f,  0.18511f,\n+     0.17445f,  0.15817f,     0.14379f,  0.13384f,  0.14378f,  0.15816f,  0.17444f,\n+     0.18509f,  0.17981f,     0.15076f,  0.096821f, 0.038797f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.0063777f, 0.070344f, 0.14288f, 0.19068f, 0.2049f,    0.19453f,\n+     0.1758f,   0.16036f,   0.14645f,  0.14681f, 0.14646f, 0.16036f,   0.1758f,\n+     0.19453f,  0.20473f,   0.19031f,  0.14227f, 0.06984f, 0.0061903f, 0.000000f},\n+    {0.000000f, 0.017224f, 0.099719f, 0.18101f, 0.21822f,  0.2193f,   0.19777f,\n+     0.17979f,  0.16475f,  0.16187f,  0.16149f, 0.16187f,  0.16477f,  0.1798f,\n+     0.19777f,  0.21922f,  0.21792f,  0.18045f, 0.099116f, 0.016918f, 0.000000f},\n+    {0.000000f, 0.02596f, 0.12753f, 0.21148f, 0.23925f, 0.22819f,  0.20284f,\n+     0.18535f,  0.18085f, 0.17814f, 0.17812f, 0.17814f, 0.18084f,  0.18536f,\n+     0.20284f,  0.22818f, 0.23901f, 0.21095f, 0.12685f, 0.025562f, 0.000000f},\n+    {0.000000f, 0.03194f, 0.15144f, 0.23904f, 0.2564f,  0.23733f,  0.21182f,\n+     0.20371f,  0.19964f, 0.19751f, 0.19694f, 0.1975f,  0.19963f,  0.20369f,\n+     0.21184f,  0.23733f, 0.25621f, 0.23853f, 0.15068f, 0.031485f, 0.000000f},\n+    {0.000000f, 0.051138f, 0.17541f, 0.26062f, 0.27419f, 0.24713f,  0.23812f,\n+     0.22985f,  0.2244f,   0.22133f, 0.22022f, 0.22132f, 0.22439f,  0.22984f,\n+     0.2381f,   0.24715f,  0.274f,   0.26009f, 0.17455f, 0.050511f, 0.000000f},\n+    {0.000000f, 0.08308f, 0.18105f, 0.28155f, 0.29188f, 0.28632f,  0.27128f,\n+     0.26327f,  0.25585f, 0.25151f, 0.25234f, 0.2515f,  0.25584f,  0.26325f,\n+     0.27127f,  0.28627f, 0.29189f, 0.28098f, 0.18013f, 0.082312f, 0.000000f},\n+    {0.000000f, 0.11865f, 0.22314f, 0.29977f, 0.32517f, 0.33282f, 0.32312f,\n+     0.31164f,  0.30095f, 0.2946f,  0.29542f, 0.29459f, 0.30094f, 0.31163f,\n+     0.32308f,  0.33259f, 0.32473f, 0.29967f, 0.22211f, 0.11774f, 0.000000f},\n+    {0.000000f, 0.15601f, 0.26339f, 0.30497f, 0.3472f,  0.38198f, 0.39609f,\n+     0.39135f,  0.3765f,  0.36616f, 0.36703f, 0.36615f, 0.37649f, 0.39123f,\n+     0.39574f,  0.3814f,  0.34627f, 0.30393f, 0.26322f, 0.15497f, 0.000000f},\n+    {0.000000f, 0.19222f, 0.23448f, 0.28578f, 0.34732f, 0.4169f,  0.48293f,\n+     0.51439f,  0.52067f, 0.52104f, 0.52661f, 0.52086f, 0.52026f, 0.51365f,\n+     0.48176f,  0.41543f, 0.34579f, 0.28436f, 0.23319f, 0.19202f, 0.000000f},\n+    {1.1102e-016f, 0.076479f, 0.15764f, 0.24801f,  0.34452f, 0.44874f,  0.55712f,\n+     0.67263f,     0.78467f,  0.89574f, 1.000000f, 0.89382f, 0.78261f,  0.67046f,\n+     0.55485f,     0.4464f,   0.34213f, 0.24558f,  0.15519f, 0.074014f, 0.000000f}};\n+\n+static float map_7point1_rf[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,  0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.0022352f, 0.0073556f,\n+     0.014462f, 0.017441f, 0.019071f, 0.016531f, 0.0024671f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.01419f,   0.031102f, 0.048526f,\n+     0.066173f, 0.075526f, 0.081297f, 0.04946f,   0.0098814f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f,  0.000000f,\n+     0.000000f, 0.000000f, 0.0028496f, 0.021112f, 0.049149f, 0.081488f,  0.11122f,\n+     0.13374f,  0.15081f,  0.12881f,   0.09417f,  0.047925f, 0.0021311f, 0.000000f},\n+    {0.000000f, 0.000000f,   0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.00043186f, 0.015188f, 0.051545f, 0.099312f, 0.14005f,  0.16592f,\n+     0.1819f,   0.18585f,    0.18082f,  0.15167f,  0.094607f, 0.019339f, 0.000000f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0028379f, 0.030373f, 0.089057f, 0.14285f,  0.16948f,  0.18273f,\n+     0.19716f,  0.21018f,   0.2154f,   0.20392f,  0.15464f,  0.067274f, 0.000000f},\n+    {0.000000f,  0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0004627f,\n+     0.0029125f, 0.0061679f, 0.038854f, 0.12083f,  0.15886f,  0.16483f,  0.17979f,\n+     0.19777f,   0.22013f,   0.23779f,  0.24346f,  0.21844f,  0.13069f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0029287f, 0.015357f,\n+     0.030602f, 0.0391f,   0.052555f, 0.13491f,  0.14652f,  0.16036f,   0.1758f,\n+     0.19453f,  0.21773f,  0.24619f,  0.26859f,  0.26801f,  0.19725f,   0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019397f, 0.021156f, 0.051639f,\n+     0.089163f, 0.1209f,   0.13493f,  0.13114f,  0.14385f,   0.15824f,  0.17453f,\n+     0.19297f,  0.21578f,  0.24725f,  0.28402f,  0.30431f,   0.2633f,   0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.01438f, 0.049473f, 0.099716f,\n+     0.14309f,  0.15891f,  0.1465f,   0.14385f,  0.14961f, 0.16249f,  0.17745f,\n+     0.19593f,  0.219f,    0.24842f,  0.29063f,  0.33283f, 0.32902f,  0.14046f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0023122f, 0.031384f, 0.081894f, 0.14038f,\n+     0.16961f,  0.16482f,  0.16036f,  0.15824f,   0.1625f,   0.16831f,  0.18276f,\n+     0.2004f,   0.22425f,  0.25485f,  0.29908f,   0.35851f,  0.38544f,  0.27711f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0075151f, 0.048878f, 0.11169f, 0.1662f,\n+     0.18272f,  0.1798f,   0.1758f,   0.17453f,   0.17746f,  0.18277f, 0.18935f,\n+     0.20646f,  0.23169f,  0.26427f,  0.31182f,   0.38495f,  0.44406f, 0.40402f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.014677f, 0.066587f, 0.13421f, 0.18194f,\n+     0.19727f,  0.19777f,  0.19453f,  0.19297f,  0.19594f,  0.20041f, 0.20647f,\n+     0.2164f,   0.24174f,  0.27414f,  0.32545f,  0.41661f,  0.51465f, 0.52519f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.017689f, 0.075976f, 0.15092f, 0.18619f,\n+     0.21038f,  0.22019f,  0.21773f,  0.21578f,  0.21902f,  0.22426f, 0.23169f,\n+     0.24175f,  0.25247f,  0.29139f,  0.34991f,  0.45136f,  0.58081f, 0.63102f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.019339f, 0.081415f, 0.12939f, 0.18129f,\n+     0.21574f,  0.23799f,  0.24624f,  0.24725f,  0.24843f,  0.25487f, 0.26428f,\n+     0.27415f,  0.2914f,   0.31073f,  0.37802f,  0.51721f,  0.62554f, 0.72626f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.016574f, 0.049892f, 0.094728f, 0.15233f,\n+     0.20448f,  0.24385f,  0.26884f,  0.28405f,  0.29065f,  0.29909f,  0.31183f,\n+     0.32546f,  0.34992f,  0.37803f,  0.41787f,  0.5245f,   0.65523f,  0.80914f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0025743f, 0.010122f, 0.048381f, 0.095227f,\n+     0.15539f,  0.21916f,  0.26858f,  0.3044f,    0.33317f,  0.35876f,  0.38515f,\n+     0.41678f,  0.4515f,   0.51744f,  0.5246f,    0.52688f,  0.67099f,  0.8823f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0022432f, 0.019725f,\n+     0.067908f, 0.13152f,  0.19821f,  0.26356f,  0.32999f,  0.38637f,   0.44503f,\n+     0.51574f,  0.58186f,  0.62641f,  0.6558f,   0.67127f,  0.6763f,    0.94439f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.14292f,  0.27953f,  0.40639f,\n+     0.52748f,  0.63323f,  0.72837f,  0.81116f,  0.88423f,  0.94629f,  1.000000f}};\n+\n+static float map_7point1_lsm[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.076479f, 0.1924f,   0.15601f,  0.11842f,  0.08308f,  0.051138f, 0.03194f,\n+     0.02596f,  0.017224f, 0.006217f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.15701f,  0.23422f,  0.26354f,  0.22314f,  0.18089f,  0.17541f,   0.15144f,\n+     0.12753f,  0.099719f, 0.070344f, 0.038959f, 0.016585f, 0.0019274f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.24799f,  0.28578f,  0.30478f,  0.2999f,   0.28155f,  0.26062f,  0.23875f,\n+     0.21148f,  0.18101f,  0.14288f,  0.097017f, 0.059361f, 0.02644f,  0.0055357f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.34452f,   0.34709f,  0.3472f,   0.32503f,  0.29199f,  0.2741f,   0.2564f,\n+     0.23925f,   0.21822f,  0.19068f,  0.15101f,  0.104f,    0.05812f,  0.024256f,\n+     0.0054585f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.44874f,  0.4169f,    0.38198f,  0.33282f,  0.28632f,  0.24721f,  0.23733f,\n+     0.22819f,  0.21923f,   0.20483f,  0.17996f,  0.13974f,  0.08731f,  0.044322f,\n+     0.015426f, 0.0019269f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.55712f,  0.48293f,    0.39609f,  0.32283f,  0.2712f,   0.23804f,  0.21189f,\n+     0.20278f,  0.19777f,    0.19453f,  0.18519f,  0.15702f,  0.11105f,  0.061583f,\n+     0.025231f, 0.00062925f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.67263f,  0.51439f,  0.39135f,  0.31154f,  0.26327f,  0.22985f,  0.20371f,\n+     0.18541f,  0.17979f,  0.1758f,   0.17449f,  0.15962f,  0.11761f,  0.06551f,\n+     0.017632f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.78467f,   0.52067f,  0.3765f,   0.30095f,  0.25585f,  0.2244f,   0.19964f,\n+     0.1808f,    0.16481f,  0.16036f,  0.15821f,  0.15223f,  0.10975f,  0.041656f,\n+     0.0063155f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.89382f,     0.52104f,  0.36605f,  0.29451f,  0.25151f,  0.22133f,  0.19751f,\n+     0.17814f,     0.16187f,  0.14649f,  0.14382f,  0.13363f,  0.061306f, 0.014688f,\n+     1.0116e-005f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {1.000000f, 0.52679f,  0.36715f,  0.29551f,  0.25242f,  0.22029f,  0.19701f,\n+     0.17818f,  0.16155f,  0.14686f,  0.1311f,   0.063705f, 0.017218f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.89382f,  0.52086f,  0.36615f,  0.29459f,  0.2515f,   0.22126f,  0.1975f,\n+     0.17814f,  0.16187f,  0.14649f,  0.14382f,  0.13358f,  0.061006f, 0.014527f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.78261f,   0.52026f,  0.37649f,  0.30094f,  0.25584f,  0.22432f,  0.19963f,\n+     0.18084f,   0.1648f,   0.16036f,  0.1582f,   0.15211f,  0.10961f,  0.041389f,\n+     0.0062031f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.67046f,  0.51365f,  0.39123f,  0.31163f,  0.26325f,  0.22984f,  0.20363f,\n+     0.1854f,   0.17974f,  0.1758f,   0.17448f,  0.15945f,  0.11735f,  0.065362f,\n+     0.017508f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.55485f,  0.48176f,    0.39574f,  0.32282f,  0.27127f,  0.2381f,   0.21189f,\n+     0.20284f,  0.19777f,    0.19453f,  0.18513f,  0.15675f,  0.11066f,  0.061236f,\n+     0.025146f, 0.00059225f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.4464f,   0.41543f,   0.3814f,   0.33259f,  0.28621f,  0.2472f,   0.23726f,\n+     0.22818f,  0.21922f,   0.20473f,  0.17984f,  0.13934f,  0.086884f, 0.044002f,\n+     0.015305f, 0.0019269f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.34213f,   0.34579f,  0.34627f,  0.32473f,  0.29192f,  0.274f,    0.25621f,\n+     0.23901f,   0.21792f,  0.19031f,  0.1508f,   0.10352f,  0.057744f, 0.024003f,\n+     0.0054168f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.24558f,  0.28436f,  0.30393f,  0.29971f,  0.28098f,  0.26009f,  0.23836f,\n+     0.21095f,  0.18045f,  0.14227f,  0.096837f, 0.059047f, 0.026151f, 0.005504f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.15519f,  0.23319f,  0.26327f,  0.22211f,  0.18013f,  0.17455f,   0.15068f,\n+     0.12685f,  0.099116f, 0.06984f,  0.038815f, 0.016456f, 0.0018503f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.074009f, 0.19209f,  0.15497f,   0.11774f,  0.082312f, 0.050511f, 0.031485f,\n+     0.025562f, 0.016918f, 0.0061903f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_7point1_rsm[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0061903f, 0.016918f, 0.025562f,\n+     0.031485f, 0.050511f, 0.082312f, 0.11774f,  0.15497f,   0.19222f,  0.074014f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0018503f, 0.016456f, 0.038851f, 0.06984f,  0.099116f, 0.12685f,\n+     0.15068f,  0.17455f,   0.18013f,  0.22211f,  0.26337f,  0.23319f,  0.15519f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.005504f, 0.026151f, 0.059047f, 0.096892f, 0.14227f,  0.18045f,  0.21095f,\n+     0.23853f,  0.26009f,  0.28098f,  0.29979f,  0.30393f,  0.28436f,  0.24556f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0054168f,\n+     0.024003f, 0.057744f, 0.10352f,  0.15084f,  0.19031f,  0.21792f,  0.23901f,\n+     0.25621f,  0.274f,    0.29198f,  0.32473f,  0.34627f,  0.34579f,  0.34213f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.015305f,\n+     0.044002f, 0.086884f, 0.13934f,  0.17988f,  0.20473f,  0.21922f,   0.22818f,\n+     0.23733f,  0.24725f,  0.28627f,  0.33259f,  0.3814f,   0.41543f,   0.4464f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.00059225f, 0.025157f,\n+     0.061236f, 0.11066f,  0.15675f,  0.18518f,  0.19453f,  0.19777f,    0.20284f,\n+     0.21193f,  0.2381f,   0.27127f,  0.32308f,  0.39574f,  0.48176f,    0.55485f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.017508f,\n+     0.065396f, 0.11735f,  0.15945f,  0.17454f,  0.1758f,   0.1798f,   0.18544f,\n+     0.20369f,  0.22984f,  0.26325f,  0.31163f,  0.39123f,  0.51365f,  0.67046f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0062031f,\n+     0.041389f, 0.10962f,  0.15211f,  0.15825f,  0.16036f,  0.16483f,  0.18084f,\n+     0.19963f,  0.22439f,  0.25584f,  0.30094f,  0.37649f,  0.52026f,  0.78261f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.014527f, 0.061006f, 0.13359f,  0.14386f,  0.14652f,  0.16187f,  0.17814f,\n+     0.1975f,   0.22132f,  0.2515f,   0.29459f,  0.36615f,  0.52086f,  0.89382f},\n+    {0.000000f,     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     -4.0817e-019f, 0.017202f, 0.06369f,  0.13113f,  0.14689f,  0.16158f,  0.17821f,\n+     0.19705f,      0.22033f,  0.25247f,  0.29557f,  0.36722f,  0.52689f,  1.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 1.0116e-005f,\n+     0.014688f, 0.061306f, 0.13361f,  0.14385f,  0.14651f,  0.16187f,  0.17814f,\n+     0.19751f,  0.22133f,  0.25151f,  0.2946f,   0.36616f,  0.52104f,  0.89574f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0063155f,\n+     0.041656f, 0.10967f,  0.15223f,  0.15823f,  0.16036f,  0.16482f,  0.18085f,\n+     0.19964f,  0.2244f,   0.25585f,  0.30095f,  0.3765f,   0.52067f,  0.78467f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.017695f,\n+     0.065451f, 0.11767f,  0.15962f,  0.17452f,  0.1758f,   0.17979f,  0.18543f,\n+     0.20371f,  0.22985f,  0.26327f,  0.31164f,  0.39135f,  0.51439f,  0.67263f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.00062925f, 0.0252f,\n+     0.061583f, 0.11105f,  0.15702f,  0.18518f,  0.19453f,  0.19777f,    0.20284f,\n+     0.21192f,  0.23812f,  0.27128f,  0.32312f,  0.39609f,  0.48293f,    0.55712f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0019397f, 0.0155f,\n+     0.044322f, 0.08731f,  0.13974f,  0.17992f,  0.2049f,   0.2193f,    0.22819f,\n+     0.23733f,  0.24724f,  0.28632f,  0.33282f,  0.38198f,  0.4169f,    0.44874f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.0055425f,\n+     0.024256f, 0.05812f,  0.104f,    0.15089f,  0.19068f,  0.21822f,  0.23925f,\n+     0.2564f,   0.27419f,  0.292f,    0.32517f,  0.3472f,   0.34732f,  0.34452f},\n+    {0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.0056317f, 0.02644f,  0.059451f, 0.09695f,  0.14288f,  0.18101f,  0.21148f,\n+     0.23904f,   0.26062f,  0.28155f,  0.29985f,  0.30497f,  0.28578f,  0.24801f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.0019274f, 0.016697f, 0.038906f, 0.070344f, 0.099719f, 0.12753f,\n+     0.15144f,  0.17541f,   0.18105f,  0.22314f,  0.26347f,  0.23448f,  0.15764f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f,     0.000000f,  0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, -1.2068e-018f, 0.0063777f, 0.017224f, 0.02596f,\n+     0.03194f,  0.051138f, 0.08308f,  0.11865f,      0.15601f,   0.19233f,  0.076473f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, -1.1102e-016f}};\n+\n+static float map_7point1_ls[21][21] = {\n+    {1.000000f, 0.99863f, 0.99396f, 0.98481f, 0.9703f,  0.94888f,  0.91914f,\n+     0.88048f,  0.83195f, 0.77384f, 0.70834f, 0.63338f, 0.55484f,  0.47562f,\n+     0.39394f,  0.3173f,  0.24362f, 0.17537f, 0.11147f, 0.054079f, -7.8496e-017f},\n+    {0.94446f, 0.81199f, 0.83616f, 0.85669f, 0.87092f, 0.87561f, 0.8564f,\n+     0.80823f, 0.75425f, 0.69808f, 0.63602f, 0.56664f, 0.49969f, 0.43164f,\n+     0.36121f, 0.29703f, 0.24559f, 0.20208f, 0.16581f, 0.13592f, 0.000000f},\n+    {0.88271f, 0.78057f, 0.71294f, 0.73952f, 0.76209f, 0.72118f, 0.69661f,\n+     0.66179f, 0.62498f, 0.59208f, 0.56394f, 0.52736f, 0.48539f, 0.43211f,\n+     0.3753f,  0.31848f, 0.25563f, 0.21817f, 0.18628f, 0.11031f, 0.000000f},\n+    {0.80907f, 0.73849f, 0.68142f, 0.62971f, 0.60765f, 0.58509f,  0.55402f,\n+     0.53219f, 0.51188f, 0.49896f, 0.49292f, 0.47704f, 0.45666f,  0.42472f,\n+     0.38061f, 0.33006f, 0.27965f, 0.22857f, 0.15778f, 0.083896f, 0.000000f},\n+    {0.72626f, 0.68381f, 0.64457f, 0.57657f, 0.51706f, 0.49372f,  0.46596f,\n+     0.45043f, 0.43577f, 0.42627f, 0.42558f, 0.42408f, 0.4189f,   0.4019f,\n+     0.37301f, 0.33185f, 0.28785f, 0.21842f, 0.12802f, 0.058746f, 0.000000f},\n+    {0.63102f, 0.61653f, 0.57478f, 0.53382f, 0.48514f, 0.42718f, 0.41011f,\n+     0.39421f, 0.38285f, 0.37543f, 0.37141f, 0.37424f, 0.37886f, 0.37291f,\n+     0.35447f, 0.32571f, 0.2697f,  0.20197f, 0.12403f, 0.03616f, 0.000000f},\n+    {0.52519f, 0.53691f, 0.52315f, 0.49422f, 0.4552f,  0.40947f,  0.36615f,\n+     0.35043f, 0.34158f, 0.3356f,  0.33216f, 0.33419f, 0.33895f,  0.34131f,\n+     0.33172f, 0.30203f, 0.24789f, 0.18361f, 0.10709f, 0.022585f, 0.000000f},\n+    {0.40402f, 0.46214f, 0.47464f, 0.46087f, 0.43328f,  0.39304f,  0.3499f,\n+     0.32038f, 0.31064f, 0.30342f, 0.30041f, 0.30177f,  0.30761f,  0.31375f,\n+     0.30955f, 0.27305f, 0.21805f, 0.15706f, 0.090176f, 0.018356f, 0.000000f},\n+    {0.27711f, 0.39741f, 0.42859f, 0.42667f, 0.40895f,  0.37927f,  0.34025f,\n+     0.30982f, 0.28478f, 0.27695f, 0.27237f, 0.27482f,  0.28125f,  0.29675f,\n+     0.28023f, 0.23683f, 0.18569f, 0.13031f, 0.070512f, 0.012179f, 0.000000f},\n+    {0.14292f, 0.33339f, 0.38221f, 0.39113f, 0.38299f,  0.36377f,   0.33348f,\n+     0.30176f, 0.27588f, 0.25314f, 0.24761f, 0.25f,     0.2723f,    0.2674f,\n+     0.23727f, 0.19424f, 0.14921f, 0.10103f, 0.049741f, 0.0045097f, 0.000000f},\n+    {0.000000f, 0.26327f, 0.33172f, 0.35247f,  0.35385f,  0.34292f,      0.32385f,\n+     0.29788f,  0.27007f, 0.24552f, 0.22579f,  0.23659f,  0.23272f,      0.21252f,\n+     0.18253f,  0.14834f, 0.1086f,  0.068513f, 0.027472f, -8.5322e-019f, 0.000000f},\n+    {0.000000f, 0.19725f, 0.27965f,  0.31034f,  0.31939f,  0.31618f,  0.30536f,\n+     0.28855f,  0.26792f, 0.24094f,  0.1799f,   0.14699f,  0.14674f,  0.14347f,\n+     0.12638f,  0.10174f, 0.073541f, 0.042039f, 0.011806f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.13069f,  0.21975f,  0.26195f,  0.27862f,   0.28151f,  0.27602f,\n+     0.26277f,  0.24232f,  0.202f,    0.13299f,  0.082204f,  0.083689f, 0.086082f,\n+     0.07899f,  0.061737f, 0.041097f, 0.018696f, 0.0013628f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.067274f, 0.15464f,  0.20782f,   0.23238f,  0.24129f,  0.24043f,\n+     0.22893f,  0.19873f,  0.15312f,  0.089072f,  0.040759f, 0.032293f, 0.046248f,\n+     0.043546f, 0.03134f,  0.017152f, 0.0039822f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.019339f, 0.094607f,  0.15196f,  0.18465f,  0.19667f,   0.19966f,\n+     0.1783f,   0.14444f,  0.099312f,  0.051555f, 0.015195f, 0.0048976f, 0.012512f,\n+     0.017789f, 0.01096f,  0.0039191f, 0.000000f, 0.000000f, 0.000000f,  0.000000f},\n+    {0.000000f,   0.0021311f, 0.047925f, 0.09417f,  0.12885f,   0.15216f,  0.13421f,\n+     0.11122f,    0.081488f,  0.049149f, 0.021112f, 0.0028496f, 0.000000f, 0.000000f,\n+     0.00044495f, 0.0013625f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.0098814f, 0.04946f,   0.081296f, 0.075526f, 0.066173f,\n+     0.048526f, 0.031102f, 0.01419f,   0.0019269f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f,  0.000000f,  0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f,  0.000000f,  0.0024671f, 0.016531f, 0.019071f, 0.017441f, 0.014677f,\n+     0.0073556f, 0.0022352f, 0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f,  0.000000f,  0.000000f,  0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_7point1_rs[21][21] = {\n+    {-7.8496e-017f, 0.052336f, 0.10973f, 0.17365f, 0.24192f, 0.31565f, 0.39394f,\n+     0.47409f,      0.55484f,  0.63338f, 0.70587f, 0.77384f, 0.83195f, 0.87965f,\n+     0.91914f,      0.94832f,  0.96987f, 0.9845f,  0.99377f, 0.99854f, 1.000000f},\n+    {0.000000f, 0.13583f, 0.16489f, 0.20208f, 0.24451f, 0.29589f, 0.35999f,\n+     0.43048f,  0.49857f, 0.56633f, 0.63558f, 0.69745f, 0.75361f, 0.80779f,\n+     0.85613f,  0.8756f,  0.87113f, 0.85731f, 0.83679f, 0.81212f, 0.94629f},\n+    {0.000000f, 0.11031f, 0.18615f, 0.21738f, 0.25552f, 0.31761f, 0.37444f,\n+     0.43128f,  0.48466f, 0.52692f, 0.56374f, 0.59228f, 0.62473f, 0.66167f,\n+     0.69668f,  0.72145f, 0.76272f, 0.7402f,  0.71303f, 0.78158f, 0.88423f},\n+    {0.000000f, 0.083257f, 0.15778f, 0.22845f, 0.27908f, 0.32934f, 0.38061f,\n+     0.42428f,  0.45626f,  0.4769f,  0.4928f,  0.49938f, 0.51188f, 0.53264f,\n+     0.55439f,  0.58524f,  0.6082f,  0.62975f, 0.68239f, 0.7397f,  0.8111f},\n+    {0.000000f, 0.058746f, 0.12737f, 0.2183f,  0.28772f, 0.33167f, 0.37263f,\n+     0.40155f,  0.4187f,   0.42403f, 0.42555f, 0.42626f, 0.43576f, 0.45043f,\n+     0.46637f,  0.49385f,  0.51702f, 0.57711f, 0.64546f, 0.68515f, 0.72837f},\n+    {0.000000f, 0.035717f, 0.12342f, 0.20135f, 0.26927f, 0.3256f,  0.35421f,\n+     0.3727f,   0.37913f,  0.37456f, 0.37139f, 0.37551f, 0.38293f, 0.39422f,\n+     0.41047f,  0.42708f,  0.48557f, 0.53421f, 0.57553f, 0.61802f, 0.63323f},\n+    {0.000000f, 0.022264f, 0.10655f, 0.18361f, 0.24774f, 0.30191f, 0.3317f,\n+     0.3415f,   0.33894f,  0.33418f, 0.33214f, 0.33559f, 0.34157f, 0.3505f,\n+     0.36607f,  0.40957f,  0.45546f, 0.49461f, 0.52386f, 0.53833f, 0.52748f},\n+    {0.000000f, 0.018075f, 0.089694f, 0.15698f, 0.21753f, 0.27257f, 0.30936f,\n+     0.31378f,  0.30767f,  0.30176f,  0.30039f, 0.30342f, 0.31091f, 0.32031f,\n+     0.3502f,   0.39305f,  0.43346f,  0.46137f, 0.47532f, 0.46338f, 0.40639f},\n+    {0.000000f, 0.011962f, 0.070085f, 0.12983f, 0.1852f,  0.2365f,  0.2799f,\n+     0.29688f,  0.28132f,  0.27481f,  0.27235f, 0.27695f, 0.28472f, 0.3099f,\n+     0.34026f,  0.3796f,   0.40917f,  0.42708f, 0.42927f, 0.39855f, 0.27953f},\n+    {0.000000f, 0.0043772f, 0.049741f, 0.10103f, 0.14876f, 0.19392f, 0.23686f,\n+     0.26716f,  0.27225f,   0.25006f,  0.24759f, 0.25308f, 0.27589f, 0.30177f,\n+     0.33349f,  0.36411f,   0.38326f,  0.39169f, 0.38291f, 0.3345f,  0.14292f},\n+    {0.000000f, -8.5322e-019f, 0.027447f, 0.068465f, 0.10853f, 0.14825f, 0.18244f,\n+     0.21244f,  0.23269f,      0.23658f,  0.22577f,  0.24545f, 0.27f,    0.29779f,\n+     0.3238f,   0.34289f,      0.35387f,  0.35252f,  0.3318f,  0.26339f, -8.6596e-017f},\n+    {0.000000f, 0.000000f, 0.011636f, 0.041753f, 0.073199f, 0.1017f,  0.12602f,\n+     0.14312f,  0.14641f,  0.14698f,  0.17992f,  0.24091f,  0.268f,   0.28867f,\n+     0.30555f,  0.31654f,  0.31978f,  0.31088f,  0.28038f,  0.19821f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.0013084f, 0.018492f, 0.040831f, 0.061737f, 0.07868f,\n+     0.085813f, 0.08366f,  0.082238f,  0.13301f,  0.20226f,  0.24232f,  0.26304f,\n+     0.2763f,   0.28192f,  0.27908f,   0.26255f,  0.22053f,  0.13152f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.0038919f, 0.016973f, 0.031114f, 0.043546f,\n+     0.046224f, 0.032368f, 0.040874f, 0.089105f,  0.15348f,  0.19907f,  0.22896f,\n+     0.24081f,  0.24172f,  0.2329f,   0.20846f,   0.15539f,  0.067908f, 0.000000f},\n+    {0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.0038302f, 0.010822f, 0.017781f,\n+     0.01238f,  0.0048489f, 0.015357f, 0.051582f, 0.099723f,  0.14485f,  0.17871f,\n+     0.1997f,   0.19715f,   0.18521f,  0.15233f,  0.095227f,  0.019725f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.0013625f, 0.00044495f,\n+     0.000000f, 0.000000f, 0.0029287f, 0.021123f, 0.049473f, 0.081894f,  0.11169f,\n+     0.13466f,  0.15222f,  0.12939f,   0.094728f, 0.048381f, 0.0022432f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.0019269f, 0.01438f,  0.031384f, 0.048878f,\n+     0.066587f, 0.075976f, 0.081342f, 0.049892f,  0.010122f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.000000f,  0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,  0.0023122f, 0.0075151f,\n+     0.014677f, 0.017689f, 0.019339f, 0.016553f, 0.0025743f, 0.000000f,  0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,     0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,     0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, -9.4126e-019f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+static float map_lfe_lfe[21][21] = {\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f},\n+    {0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f,\n+     0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f, 0.000000f}};\n+\n+std::map<unsigned, alloc_lut> chn_alloc;\n+std::map<unsigned, std::vector<float>> chn_angle;\n+std::map<unsigned, std::vector<float>> chn_xsf;\n+std::map<unsigned, std::vector<float>> chn_ysf;\n+std::map<unsigned, std::vector<channel_id>> chn_id;\n+\n+static bool init_maps()\n+{\n+  chn_angle[cs_5point1] =\n+      std::vector(&map_5point1_ang[0], &map_5point1_ang[std::size(map_5point1_ang)]);\n+  chn_xsf[cs_5point1] =\n+      std::vector(&map_5point1_xsf[0], &map_5point1_xsf[std::size(map_5point1_xsf)]);\n+  chn_ysf[cs_5point1] =\n+      std::vector(&map_5point1_ysf[0], &map_5point1_ysf[std::size(map_5point1_ysf)]);\n+  chn_id[cs_5point1] = std::vector(&map_5point1_id[0], &map_5point1_id[std::size(map_5point1_id)]);\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_5point1_lf[0], &map_5point1_lf[21]));\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_5point1_cf[0], &map_5point1_cf[21]));\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_5point1_rf[0], &map_5point1_rf[21]));\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_5point1_ls[0], &map_5point1_ls[21]));\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_5point1_rs[0], &map_5point1_rs[21]));\n+  chn_alloc[cs_5point1].push_back(std::vector<float*>(&map_lfe_lfe[0], &map_lfe_lfe[21]));\n+\n+  chn_angle[cs_7point1] =', 'path': 'Source/Core/AudioCommon/ChannelMaps.cpp', 'position': 889, 'original_position': 889, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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': 'More 7.1 stuff to remove.', 'created_at': '2026-10-04T10:34:34Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177132051', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177132051'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177132051'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177132051/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4177133611, 'node_id': 'PRRC_kwDOALCn2M74-gAr', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177133611', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -51,18 +44,31 @@ typedef enum channel_id {\n // The supported output channel setups. A channel setup is defined by the set\n // of channels that are present. Here is a graphic of the cs_5point1 setup:\n // http://en.wikipedia.org/wiki/File:5_1_channels_(surround_sound)_label.svg\n-typedef enum channel_setup {\n-  cs_5point1 = ci_front_left | ci_front_center | ci_front_right | ci_back_left |\n-               ci_back_right | ci_lfe,\n+typedef enum channel_setup\n+{\n+  cs_5point1 =\n+      ci_front_left | ci_front_center | ci_front_right | ci_back_left | ci_back_right | ci_lfe,\n \n-  cs_7point1 = ci_front_left | ci_front_center | ci_front_right |\n-               ci_side_center_left | ci_side_center_right | ci_back_left |\n-               ci_back_right | ci_lfe\n+  cs_7point1 = ci_front_left | ci_front_center | ci_front_right | ci_side_center_left |\n+               ci_side_center_right | ci_back_left | ci_back_right | ci_lfe', 'path': 'Source/Core/AudioCommon/FreeSurroundDecoder.h', 'position': 59, 'original_position': 59, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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': '```suggestion\n```\nMore 7.1 stuff to remove.', 'created_at': '2026-10-04T10:35:14Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177133611', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177133611'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177133611'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177133611/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4177140289, 'node_id': 'PRRC_kwDOALCn2M74-hpB', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177140289', 'pull_request_review_id': 5405497676, 'diff_hunk': '@@ -1,24 +1,16 @@\n+// Copyright 2026 Dolphin Emulator Project', 'path': 'Source/Core/AudioCommon/FreeSurroundDecoder.h', 'position': 1, 'original_position': 1, 'commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', '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': 'Maybe all these moved files should be in a `AudioCommon/SurroundDecoder` directory ?', 'created_at': '2026-10-04T10:37:57Z', 'updated_at': '2026-10-04T10:38:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177140289', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177140289'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4177140289'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'original_commit_id': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4177140289/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'}
2026-10-04T08:01:28.233580	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14840, 'pr_title': 'VideoCommon: split partial texture update logic from the actual rendering', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14840#pullrequestreview-5404937904', 'comments': [], 'type': 'gh_pull_request_review'}
2026-10-04T06:56:38.568869	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5404727310', 'comments': [], 'type': 'gh_pull_request_review'}
2026-10-04T06:52:18.286091	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14908, 'pr_title': 'VideoCommon: remove remnants of old custom shader feature', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14908#pullrequestreview-5404705796', 'comments': [], 'type': 'gh_pull_request_review'}
2026-10-04T05:00:42.504874	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5404408789', 'comments': [{'id': 4176215908, 'node_id': 'PRRC_kwDOALCn2M746_9k', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176215908', 'pull_request_review_id': 5404408789, 'diff_hunk': '@@ -3288,3 +3042,329 @@ TextureCacheBase::TexPoolEntry::TexPoolEntry(std::unique_ptr<AbstractTexture> te\n     : texture(std::move(tex)), framebuffer(std::move(fb))\n {\n }\n+\n+FramebufferCopyResolvedData\n+TextureCacheBase::ResolveFramebufferCopyData(const FramebufferCopyRawData& copy_data)\n+{\n+  FramebufferCopyResolvedData result;\n+\n+  result.is_xfb = !copy_data.is_depth_copy && !copy_data.is_intensity &&\n+                  copy_data.efbcopy_format == EFBCopyFormat::XFB;\n+  result.copy_to_vram = g_backend_info.bSupportsCopyToVram && !g_ActiveConfig.bDisableCopyToVRAM;\n+  result.copy_to_ram =\n+      !(result.is_xfb ? g_ActiveConfig.bSkipXFBCopyToRam : g_ActiveConfig.bSkipEFBCopyToRam) ||\n+      !result.copy_to_vram;\n+\n+  // memory_width and memory_height are the native size of the texture in the GC memory.\n+  // The size scaled_* represents the emulated texture. Those differ\n+  // because of upscaling and because of yscaling of XFB copies.\n+  // For the latter, we keep the EFB resolution for the virtual XFB blit.\n+  result.memory_width = copy_data.copy_width;\n+  result.memory_height = copy_data.copy_height;\n+  result.scaled_memory_width = g_framebuffer_manager->EFBToScaledX(copy_data.copy_width);\n+  result.scaled_memory_height = g_framebuffer_manager->EFBToScaledY(copy_data.copy_height);\n+\n+  if (copy_data.half_scale)\n+  {\n+    result.memory_width /= 2;\n+    result.memory_height /= 2;\n+    result.scaled_memory_width /= 2;\n+    result.scaled_memory_height /= 2;\n+  }\n+\n+  if (!result.is_xfb && !g_ActiveConfig.bCopyEFBScaled)\n+  {\n+    // No upscaling\n+    result.scaled_memory_width = result.memory_width;\n+    result.scaled_memory_height = result.memory_height;\n+  }\n+\n+  // Get the base (in memory) format of this efb copy.\n+  result.memory_format = TexDecoder_GetEFBCopyBaseFormat(copy_data.efbcopy_format);\n+\n+  u32 blockH = TexDecoder_GetBlockHeightInTexels(result.memory_format);\n+  const u32 blockW = TexDecoder_GetBlockWidthInTexels(result.memory_format);\n+\n+  // Round up source height to multiple of block size\n+  u32 actualHeight = Common::AlignUp(result.memory_height, blockH);\n+  const u32 actualWidth = Common::AlignUp(result.memory_width, blockW);\n+\n+  result.num_blocks_y = actualHeight / blockH;\n+  const u32 num_blocks_x = actualWidth / blockW;\n+\n+  // RGBA takes two cache lines per block; all others take one\n+  const u32 bytes_per_block = result.memory_format == TextureFormat::RGBA8 ? 64 : 32;\n+\n+  result.bytes_per_row = num_blocks_x * bytes_per_block;\n+  result.covered_range = result.num_blocks_y * copy_data.dest_stride;\n+\n+  // We also linear filtering for both box filtering and downsampling higher resolutions to 1x.\n+  // TODO: This only produces perfect downsampling for 2x IR, other resolutions will need more\n+  //       complex down filtering to average all pixels and produce the correct result.\n+  result.linear_filter = !copy_data.is_depth_copy &&\n+                         (copy_data.half_scale || g_framebuffer_manager->GetEFBScale() != 1 ||\n+                          copy_data.y_scale > 1.0f);\n+\n+  if (copy_data.dest_stride < result.bytes_per_row)\n+  {\n+    // This kind of efb copy results in a scrambled image.\n+    // I\'m pretty sure no game actually wants to do this, it might be caused by a\n+    // programming bug in the game, or a CPU/Bounding box emulation issue with dolphin.\n+    // The copy_to_ram code path above handles this "correctly" and scrambles the image\n+    // but the copy_to_vram code path just saves and uses unscrambled texture instead.\n+\n+    // To avoid a "incorrect" result, we simply skip doing the copy_to_vram code path\n+    // so if the game does try to use the scrambled texture, dolphin will grab the scrambled\n+    // texture (or black if copy_to_ram is also disabled) out of ram.\n+    ERROR_LOG_FMT(VIDEO, "Memory stride too small ({} < {})", copy_data.dest_stride,\n+                  result.bytes_per_row);\n+    result.copy_to_vram = false;\n+  }\n+\n+  result.pixel_format = bpmem.zcontrol.pixel_format;\n+\n+  // Copy the remaining fields from the raw data:\n+  result.dest_address = copy_data.dest_address;\n+  result.width = copy_data.copy_width;\n+  result.height = copy_data.copy_height;\n+  result.dest_stride = copy_data.dest_stride;\n+  result.efbcopy_format = copy_data.efbcopy_format;\n+  result.is_depth_format = copy_data.is_depth_copy;\n+  result.is_intensity_format = copy_data.is_intensity;\n+  result.half_scale = copy_data.half_scale;\n+  result.y_scale = copy_data.y_scale;\n+  result.gamma = copy_data.gamma;\n+  result.src_rect = copy_data.src_rect;\n+  result.clamp_top = copy_data.clamp_top;\n+  result.clamp_bottom = copy_data.clamp_bottom;\n+  result.filter_coefficients = copy_data.filter_coefficients;', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp', 'position': 526, 'original_position': 526, 'commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', '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': 'Yes, I think we could have the `FramebufferCopyRawData` be a member of the `FramebufferCopyResolvedData`, removing the duplication!', 'created_at': '2026-10-04T05:00:40Z', 'updated_at': '2026-10-04T05:00:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176215908', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176215908'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176215908'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176215908/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4176178054}], 'type': 'gh_pull_request_review'}
2026-10-04T04:50:14.773309	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5404384846', 'comments': [{'id': 4176192065, 'node_id': 'PRRC_kwDOALCn2M7466JB', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176192065', 'pull_request_review_id': 5404384846, 'diff_hunk': '@@ -336,10 +347,22 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager&\n                       bpmem.copyTexSrcWH.x + 1, destStride, height, yScale);\n \n         bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24;\n-        g_texture_cache->CopyRenderTargetToTexture(\n-            destAddr, EFBCopyFormat::XFB, copy_width, height, destStride, is_depth_copy, srcRect,\n-            false, false, yScale, s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top,\n-            bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients());\n+        auto resolved_data = g_texture_cache->ResolveFramebufferCopyData(\n+            FramebufferCopyRawData{.dest_address = destAddr,\n+                                   .copy_width = copy_width,\n+                                   .copy_height = height,\n+                                   .dest_stride = destStride,\n+                                   .efbcopy_format = EFBCopyFormat::XFB,\n+                                   .is_depth_copy = is_depth_copy,\n+                                   .is_intensity = false,\n+                                   .half_scale = false,\n+                                   .y_scale = yScale,\n+                                   .gamma = s_gammaLUT[PE_copy.gamma],\n+                                   .src_rect = srcRect,\n+                                   .clamp_top = bpmem.triggerEFBCopy.clamp_top,\n+                                   .clamp_bottom = bpmem.triggerEFBCopy.clamp_bottom,\n+                                   .filter_coefficients = bpmem.copyfilter.GetCoefficients()});', 'path': 'Source/Core/VideoCommon/BPStructs.cpp', 'position': 50, 'original_position': 50, 'commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', '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'd expect that initialization to be easily optimized away.", 'created_at': '2026-10-04T04:50:12Z', 'updated_at': '2026-10-04T04:50:13Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176192065', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176192065'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176192065'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176192065/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4176170747}], 'type': 'gh_pull_request_review'}
2026-10-04T04:49:09.093782	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5404382020', 'comments': [{'id': 4176189518, 'node_id': 'PRRC_kwDOALCn2M7465hO', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176189518', 'pull_request_review_id': 5404382020, 'diff_hunk': '@@ -336,10 +347,22 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager&\n                       bpmem.copyTexSrcWH.x + 1, destStride, height, yScale);\n \n         bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24;\n-        g_texture_cache->CopyRenderTargetToTexture(\n-            destAddr, EFBCopyFormat::XFB, copy_width, height, destStride, is_depth_copy, srcRect,\n-            false, false, yScale, s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top,\n-            bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients());\n+        auto resolved_data = g_texture_cache->ResolveFramebufferCopyData(\n+            FramebufferCopyRawData{.dest_address = destAddr,\n+                                   .copy_width = copy_width,\n+                                   .copy_height = height,\n+                                   .dest_stride = destStride,\n+                                   .efbcopy_format = EFBCopyFormat::XFB,\n+                                   .is_depth_copy = is_depth_copy,\n+                                   .is_intensity = false,\n+                                   .half_scale = false,\n+                                   .y_scale = yScale,\n+                                   .gamma = s_gammaLUT[PE_copy.gamma],\n+                                   .src_rect = srcRect,\n+                                   .clamp_top = bpmem.triggerEFBCopy.clamp_top,\n+                                   .clamp_bottom = bpmem.triggerEFBCopy.clamp_bottom,\n+                                   .filter_coefficients = bpmem.copyfilter.GetCoefficients()});', 'path': 'Source/Core/VideoCommon/BPStructs.cpp', 'position': 50, 'original_position': 50, 'commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', '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': 'Heh, I did have that in my source branch.  I waffled back and forth between the two patterns.  The one disadvantage of the other approach is the struct has to be initialized to something, so pay a few extra cycles to change in one path.  But maybe the compiler will optimize that away?  I do like the visual difference you mention.', 'created_at': '2026-10-04T04:49:07Z', 'updated_at': '2026-10-04T04:49:07Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176189518', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176189518'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176189518'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176189518/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4176170747}], 'type': 'gh_pull_request_review'}
2026-10-04T04:44:45.167696	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5404359800', 'comments': [{'id': 4176170747, 'node_id': 'PRRC_kwDOALCn2M746077', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176170747', 'pull_request_review_id': 5404359800, 'diff_hunk': '@@ -336,10 +347,22 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager&\n                       bpmem.copyTexSrcWH.x + 1, destStride, height, yScale);\n \n         bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24;\n-        g_texture_cache->CopyRenderTargetToTexture(\n-            destAddr, EFBCopyFormat::XFB, copy_width, height, destStride, is_depth_copy, srcRect,\n-            false, false, yScale, s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top,\n-            bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients());\n+        auto resolved_data = g_texture_cache->ResolveFramebufferCopyData(\n+            FramebufferCopyRawData{.dest_address = destAddr,\n+                                   .copy_width = copy_width,\n+                                   .copy_height = height,\n+                                   .dest_stride = destStride,\n+                                   .efbcopy_format = EFBCopyFormat::XFB,\n+                                   .is_depth_copy = is_depth_copy,\n+                                   .is_intensity = false,\n+                                   .half_scale = false,\n+                                   .y_scale = yScale,\n+                                   .gamma = s_gammaLUT[PE_copy.gamma],\n+                                   .src_rect = srcRect,\n+                                   .clamp_top = bpmem.triggerEFBCopy.clamp_top,\n+                                   .clamp_bottom = bpmem.triggerEFBCopy.clamp_bottom,\n+                                   .filter_coefficients = bpmem.copyfilter.GetCoefficients()});', 'path': 'Source/Core/VideoCommon/BPStructs.cpp', 'position': 50, 'original_position': 50, 'commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', '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 a lot of redundancy in the building of this `FramebufferCopyRawData` and the alternate path just above.\nI think it would be nicer if the struct was made before the if-statement with the common assignments happening in just one place, reducing redundancy and making it easier to see what the differences are between these two paths.", 'created_at': '2026-10-04T04:41:11Z', 'updated_at': '2026-10-04T04:44:43Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176170747', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176170747'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176170747'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176170747/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4176178054, 'node_id': 'PRRC_kwDOALCn2M7462uG', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176178054', 'pull_request_review_id': 5404359800, 'diff_hunk': '@@ -3288,3 +3042,329 @@ TextureCacheBase::TexPoolEntry::TexPoolEntry(std::unique_ptr<AbstractTexture> te\n     : texture(std::move(tex)), framebuffer(std::move(fb))\n {\n }\n+\n+FramebufferCopyResolvedData\n+TextureCacheBase::ResolveFramebufferCopyData(const FramebufferCopyRawData& copy_data)\n+{\n+  FramebufferCopyResolvedData result;\n+\n+  result.is_xfb = !copy_data.is_depth_copy && !copy_data.is_intensity &&\n+                  copy_data.efbcopy_format == EFBCopyFormat::XFB;\n+  result.copy_to_vram = g_backend_info.bSupportsCopyToVram && !g_ActiveConfig.bDisableCopyToVRAM;\n+  result.copy_to_ram =\n+      !(result.is_xfb ? g_ActiveConfig.bSkipXFBCopyToRam : g_ActiveConfig.bSkipEFBCopyToRam) ||\n+      !result.copy_to_vram;\n+\n+  // memory_width and memory_height are the native size of the texture in the GC memory.\n+  // The size scaled_* represents the emulated texture. Those differ\n+  // because of upscaling and because of yscaling of XFB copies.\n+  // For the latter, we keep the EFB resolution for the virtual XFB blit.\n+  result.memory_width = copy_data.copy_width;\n+  result.memory_height = copy_data.copy_height;\n+  result.scaled_memory_width = g_framebuffer_manager->EFBToScaledX(copy_data.copy_width);\n+  result.scaled_memory_height = g_framebuffer_manager->EFBToScaledY(copy_data.copy_height);\n+\n+  if (copy_data.half_scale)\n+  {\n+    result.memory_width /= 2;\n+    result.memory_height /= 2;\n+    result.scaled_memory_width /= 2;\n+    result.scaled_memory_height /= 2;\n+  }\n+\n+  if (!result.is_xfb && !g_ActiveConfig.bCopyEFBScaled)\n+  {\n+    // No upscaling\n+    result.scaled_memory_width = result.memory_width;\n+    result.scaled_memory_height = result.memory_height;\n+  }\n+\n+  // Get the base (in memory) format of this efb copy.\n+  result.memory_format = TexDecoder_GetEFBCopyBaseFormat(copy_data.efbcopy_format);\n+\n+  u32 blockH = TexDecoder_GetBlockHeightInTexels(result.memory_format);\n+  const u32 blockW = TexDecoder_GetBlockWidthInTexels(result.memory_format);\n+\n+  // Round up source height to multiple of block size\n+  u32 actualHeight = Common::AlignUp(result.memory_height, blockH);\n+  const u32 actualWidth = Common::AlignUp(result.memory_width, blockW);\n+\n+  result.num_blocks_y = actualHeight / blockH;\n+  const u32 num_blocks_x = actualWidth / blockW;\n+\n+  // RGBA takes two cache lines per block; all others take one\n+  const u32 bytes_per_block = result.memory_format == TextureFormat::RGBA8 ? 64 : 32;\n+\n+  result.bytes_per_row = num_blocks_x * bytes_per_block;\n+  result.covered_range = result.num_blocks_y * copy_data.dest_stride;\n+\n+  // We also linear filtering for both box filtering and downsampling higher resolutions to 1x.\n+  // TODO: This only produces perfect downsampling for 2x IR, other resolutions will need more\n+  //       complex down filtering to average all pixels and produce the correct result.\n+  result.linear_filter = !copy_data.is_depth_copy &&\n+                         (copy_data.half_scale || g_framebuffer_manager->GetEFBScale() != 1 ||\n+                          copy_data.y_scale > 1.0f);\n+\n+  if (copy_data.dest_stride < result.bytes_per_row)\n+  {\n+    // This kind of efb copy results in a scrambled image.\n+    // I\'m pretty sure no game actually wants to do this, it might be caused by a\n+    // programming bug in the game, or a CPU/Bounding box emulation issue with dolphin.\n+    // The copy_to_ram code path above handles this "correctly" and scrambles the image\n+    // but the copy_to_vram code path just saves and uses unscrambled texture instead.\n+\n+    // To avoid a "incorrect" result, we simply skip doing the copy_to_vram code path\n+    // so if the game does try to use the scrambled texture, dolphin will grab the scrambled\n+    // texture (or black if copy_to_ram is also disabled) out of ram.\n+    ERROR_LOG_FMT(VIDEO, "Memory stride too small ({} < {})", copy_data.dest_stride,\n+                  result.bytes_per_row);\n+    result.copy_to_vram = false;\n+  }\n+\n+  result.pixel_format = bpmem.zcontrol.pixel_format;\n+\n+  // Copy the remaining fields from the raw data:\n+  result.dest_address = copy_data.dest_address;\n+  result.width = copy_data.copy_width;\n+  result.height = copy_data.copy_height;\n+  result.dest_stride = copy_data.dest_stride;\n+  result.efbcopy_format = copy_data.efbcopy_format;\n+  result.is_depth_format = copy_data.is_depth_copy;\n+  result.is_intensity_format = copy_data.is_intensity;\n+  result.half_scale = copy_data.half_scale;\n+  result.y_scale = copy_data.y_scale;\n+  result.gamma = copy_data.gamma;\n+  result.src_rect = copy_data.src_rect;\n+  result.clamp_top = copy_data.clamp_top;\n+  result.clamp_bottom = copy_data.clamp_bottom;\n+  result.filter_coefficients = copy_data.filter_coefficients;', 'path': 'Source/Core/VideoCommon/TextureCacheBase.cpp', 'position': 526, 'original_position': 526, 'commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', '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': '`FramebufferCopyResolvedData` and `FramebufferCopyRawData` have a lot of common members to copy from one to the other.\nWould it make sense to break out these things into another struct that they both hold so you can do all this with just one assignment?', 'created_at': '2026-10-04T04:44:34Z', 'updated_at': '2026-10-04T04:44:43Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176178054', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176178054'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4176178054'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '17888ffe96c6a364fe6d4de804bfd83b2df18248', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176178054/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'}
2026-10-04T04:20:59.789627	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5404317417', 'comments': [], 'type': 'gh_pull_request_review'}
2026-10-04T04:15:19.973394	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5404304079', 'comments': [], 'type': 'gh_pull_request_review'}
2026-10-04T04:14:46.238618	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5404302893', 'comments': [{'id': 4176114563, 'node_id': 'PRRC_kwDOALCn2M746nOD', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176114563', 'pull_request_review_id': 5404302893, 'diff_hunk': '@@ -1434,20 +1434,32 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  const char* color_a = tev_c_input_table[cc.a];\n+  const char* color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    // The Adreno shader compiler incorrectly optimizes the int3(0,0,0) constant, causing incorrect\n+    // colors. To work around this, we trick the compiler by using konstLookup[8], which\n+    // PixelShaderManager initializes to zero, to keep these inputs dependent on a uniform value.\n+    if (cc.a == TevColorArg::Zero)', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 12, 'original_position': 12, 'commit_id': '2fd5446397820c334c1d2c924b942bde76fdadc4', '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': '```suggestion\n    // The Adreno shader compiler incorrectly optimizes the int3(0,0,0) constant, causing incorrect\n    // colors. To work around this, we trick the compiler by using konstLookup[8], which\n    // PixelShaderManager initializes to zero, to keep these inputs dependent on a uniform value.\n    // Slot 8 is safe because it is part of the invalid konst range (reads as zero on hardware).\n    // It is never written at runtime and therefore stays zero.\n    if (cc.a == TevColorArg::Zero)\n```', 'created_at': '2026-10-04T04:14:42Z', 'updated_at': '2026-10-04T04:14:42Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4176114563', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176114563'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4176114563'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '2fd5446397820c334c1d2c924b942bde76fdadc4', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4176114563/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'}
2026-10-04T01:42:16.574314	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14840, 'pr_title': 'VideoCommon: split partial texture update logic from the actual rendering', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14840#pullrequestreview-5403793999', 'comments': [{'id': 4175718116, 'node_id': 'PRRC_kwDOALCn2M745Gbk', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175718116', 'pull_request_review_id': 5403793999, 'diff_hunk': '@@ -319,6 +344,8 @@ class TextureCacheBase\n   static void RenderReinterpretEntry(const RcTcacheEntry& entry, AbstractTexture* texture,\n                                      TextureFormat old_format, TextureFormat new_format);\n \n+  void ExecutePartialTextureUpdate(PartialTextureUpdateContext context);', 'path': 'Source/Core/VideoCommon/TextureCacheBase.h', 'position': 36, 'original_position': 36, 'commit_id': 'b21878da9c8f1c91b8a534a81a553a80d04d718a', '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 is a large structure that should maybe be passed by reference to const.', 'created_at': '2026-10-04T01:41:27Z', 'updated_at': '2026-10-04T01:42:14Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14840#discussion_r4175718116', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14840', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175718116'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14840#discussion_r4175718116'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14840'}}, 'original_commit_id': 'b21878da9c8f1c91b8a534a81a553a80d04d718a', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175718116/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'}
2026-10-04T01:36:02.842655	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14836, 'pr_title': 'VideoCommon: refactor texture cache frame buffer copies', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14836#pullrequestreview-5403778928', 'comments': [{'id': 4175703537, 'node_id': 'PRRC_kwDOALCn2M745C3x', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175703537', 'pull_request_review_id': 5403778928, 'diff_hunk': '@@ -306,11 +306,22 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager&\n         // bpmem.zcontrol.pixel_format to PixelFormat::Z24 is when the game wants to copy from\n         // ZBuffer (Zbuffer uses 24-bit Format)\n         bool is_depth_copy = bpmem.zcontrol.pixel_format == PixelFormat::Z24;\n-        g_texture_cache->CopyRenderTargetToTexture(\n-            destAddr, PE_copy.tp_realFormat(), copy_width, copy_height, destStride, is_depth_copy,\n-            srcRect, PE_copy.intensity_fmt && PE_copy.auto_conv, PE_copy.half_scale, 1.0f,\n-            s_gammaLUT[PE_copy.gamma], bpmem.triggerEFBCopy.clamp_top,\n-            bpmem.triggerEFBCopy.clamp_bottom, bpmem.copyfilter.GetCoefficients());\n+        auto resolved_data = g_texture_cache->ResolveFramebufferCopyData(\n+            FramebufferCopyRawData{.dest_address = destAddr,\n+                                   .copy_width = copy_width,\n+                                   .copy_height = copy_height,\n+                                   .dest_stride = destStride,\n+                                   .efbcopy_format = PE_copy.tp_realFormat(),\n+                                   .is_depth_copy = is_depth_copy,\n+                                   .is_intensity = PE_copy.intensity_fmt && PE_copy.auto_conv,\n+                                   .half_scale = PE_copy.half_scale,\n+                                   .y_scale = 1.0f,\n+                                   .gamma = s_gammaLUT[PE_copy.gamma],\n+                                   .src_rect = srcRect,\n+                                   .clamp_top = bpmem.triggerEFBCopy.clamp_top,\n+                                   .clamp_bottom = bpmem.triggerEFBCopy.clamp_bottom,\n+                                   .filter_coefficients = bpmem.copyfilter.GetCoefficients()});\n+        g_texture_cache->CopyRenderTargetToTexture(std::move(resolved_data));', 'path': 'Source/Core/VideoCommon/BPStructs.cpp', 'position': 42, 'original_position': 42, 'commit_id': '6d620ebd902b7e915d462a2fc09d1148bf9faf68', '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': "`std::move` doesn't do anything here because `FramebufferCopyResolvedData` is trivially-copyable (and it produces a clang-tidy warning).\n\nHaving said that, this is a decently large structure to copy around. I think it make sense to pass it as a reference to const in `CopyRenderTargetToTexture`. This is already done with `FramebufferCopyRawData` just above, which is a smaller structure.\n\nSame situation below.", 'created_at': '2026-10-04T01:34:48Z', 'updated_at': '2026-10-04T01:36:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4175703537', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175703537'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14836#discussion_r4175703537'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14836'}}, 'original_commit_id': '6d620ebd902b7e915d462a2fc09d1148bf9faf68', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175703537/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'}
2026-10-04T00:54:58.827758	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403667181', 'comments': [{'id': 4175598918, 'node_id': 'PRRC_kwDOALCn2M744pVG', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598918', 'pull_request_review_id': 5403667181, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 1, 'original_position': 18, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Done! ', 'created_at': '2026-10-04T00:54:56Z', 'updated_at': '2026-10-04T00:54:57Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598918', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598918'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598918'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598918/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4175088607}], 'type': 'gh_pull_request_review'}
2026-10-04T00:54:49.001740	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403666802', 'comments': [{'id': 4175598548, 'node_id': 'PRRC_kwDOALCn2M744pPU', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598548', 'pull_request_review_id': 5403666802, 'diff_hunk': '@@ -33,7 +33,8 @@ struct alignas(16) PixelShaderConstants\n   float4 zslope;\n   std::array<float, 2> efbscale;  // .xy\n \n-  // Constants from here onwards are only used in ubershaders, other than pack2.\n+  // Constants from here onwards are mainly used in ubershaders. Specialized shaders also use\n+  // pack2, and use pack1 when BUG_BROKEN_TEV_COLOR_ZERO is active.', 'path': 'Source/Core/VideoCommon/ConstantManager.h', 'position': 1, 'original_position': 6, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Agreed, resolved. ', 'created_at': '2026-10-04T00:54:47Z', 'updated_at': '2026-10-04T00:54:47Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598548', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598548'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175598548'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175598548/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4175107951}], 'type': 'gh_pull_request_review'}
2026-10-04T00:54:18.122492	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Starlightbotanist', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403665510', 'comments': [{'id': 4175597178, 'node_id': 'PRRC_kwDOALCn2M744o56', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175597178', 'pull_request_review_id': 5403665510, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);\n+    // The shader UID includes the color combiner, so these runtime selectors are Zero here.\n+    // Keep zero dependent on those selectors to avoid folding it into the broken Adreno shader.', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 1, 'original_position': 20, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'user': {'login': 'Starlightbotanist', 'id': 115003461, 'node_id': 'U_kgDOBtrQRQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/115003461?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Starlightbotanist', 'html_url': 'https://github.com/Starlightbotanist', 'followers_url': 'https://api.github.com/users/Starlightbotanist/followers', 'following_url': 'https://api.github.com/users/Starlightbotanist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Starlightbotanist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Starlightbotanist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Starlightbotanist/subscriptions', 'organizations_url': 'https://api.github.com/users/Starlightbotanist/orgs', 'repos_url': 'https://api.github.com/users/Starlightbotanist/repos', 'events_url': 'https://api.github.com/users/Starlightbotanist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Starlightbotanist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Applied iwubcode's suggestion. ", 'created_at': '2026-10-04T00:54:16Z', 'updated_at': '2026-10-04T00:54:16Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175597178', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175597178'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175597178'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175597178/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4175221253}], 'type': 'gh_pull_request_review'}
2026-10-03T23:39:20.680831	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403480344', 'comments': [{'id': 4175417564, 'node_id': 'PRRC_kwDOALCn2M7439Dc', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175417564', 'pull_request_review_id': 5403480344, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);\n+    // The shader UID includes the color combiner, so these runtime selectors are Zero here.\n+    // Keep zero dependent on those selectors to avoid folding it into the broken Adreno shader.', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 20, 'original_position': 20, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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 did have the same thought the other day, I'm personally fine with the complexity of the code but do want the code comment to be clearer.  I'd take it further than what you said:\r\n\r\n```\r\n// The Adreno shader compiler incorrectly optimizes the int3(0,0,0) constant, causing incorrect colors.\r\n// To work around this, we trick the compiler by xoring the combiner selector from the constant\r\n// buffer (always TevColorArg::Zero for this specialized shader) with TevColorArg::Zero itself.\r\n// A value xor'd with itself is 0, giving the correct final result.\r\n```\r\n", 'created_at': '2026-10-03T23:39:18Z', 'updated_at': '2026-10-03T23:39:19Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175417564', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175417564'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175417564'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175417564/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4175221253}], 'type': 'gh_pull_request_review'}
2026-10-03T23:09:01.017532	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'submitted', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403019331', 'comments': [{'id': 4175088607, 'node_id': 'PRRC_kwDOALCn2M742svf', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 18, 'original_position': 18, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'The rest of the code avoids directly accessing `bpmem_pack1` and instead uses the `#define` aliases.  You should probably do the same here.', 'created_at': '2026-10-03T22:16:12Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175088607', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175088607'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4175107951, 'node_id': 'PRRC_kwDOALCn2M742xdv', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -33,7 +33,8 @@ struct alignas(16) PixelShaderConstants\n   float4 zslope;\n   std::array<float, 2> efbscale;  // .xy\n \n-  // Constants from here onwards are only used in ubershaders, other than pack2.\n+  // Constants from here onwards are mainly used in ubershaders. Specialized shaders also use\n+  // pack2, and use pack1 when BUG_BROKEN_TEV_COLOR_ZERO is active.', 'path': 'Source/Core/VideoCommon/ConstantManager.h', 'position': 6, 'original_position': 6, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'Why specifically call out BUG_BROKEN_TEV_COLOR_ZERO?  pack2 isn\'t always used, but we don\'t say "pack2 is only used for manual texture sampling and if the backend doesn\'t support texture bias in samplers".', 'created_at': '2026-10-03T22:19:46Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175107951', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175107951'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4175221253, 'node_id': 'PRRC_kwDOALCn2M743NIF', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);\n+    // The shader UID includes the color combiner, so these runtime selectors are Zero here.\n+    // Keep zero dependent on those selectors to avoid folding it into the broken Adreno shader.', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 20, 'original_position': 20, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'IMO this is very confusing, since "Zero" is 15, while "zero" is 0.  At least use `TevColorArg::Zero`...\n```suggestion\n    // Create a zero that the Adreno compiler doesn\'t know at compile time by xoring a known value from the constant buffer with itself.\n```', 'created_at': '2026-10-03T22:43:19Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175221253', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175221253'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253/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'}
2026-10-03T23:09:00.619270	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'pr_id': 14899, 'pr_title': 'VideoCommon: Work around Adreno TEV zero input miscompilation', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14899#pullrequestreview-5403019331', 'comments': [{'id': 4175088607, 'node_id': 'PRRC_kwDOALCn2M742svf', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 18, 'original_position': 18, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'The rest of the code avoids directly accessing `bpmem_pack1` and instead uses the `#define` aliases.  You should probably do the same here.', 'created_at': '2026-10-03T22:16:12Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175088607', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175088607'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175088607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4175107951, 'node_id': 'PRRC_kwDOALCn2M742xdv', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -33,7 +33,8 @@ struct alignas(16) PixelShaderConstants\n   float4 zslope;\n   std::array<float, 2> efbscale;  // .xy\n \n-  // Constants from here onwards are only used in ubershaders, other than pack2.\n+  // Constants from here onwards are mainly used in ubershaders. Specialized shaders also use\n+  // pack2, and use pack1 when BUG_BROKEN_TEV_COLOR_ZERO is active.', 'path': 'Source/Core/VideoCommon/ConstantManager.h', 'position': 6, 'original_position': 6, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'Why specifically call out BUG_BROKEN_TEV_COLOR_ZERO?  pack2 isn\'t always used, but we don\'t say "pack2 is only used for manual texture sampling and if the backend doesn\'t support texture bias in samplers".', 'created_at': '2026-10-03T22:19:46Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175107951', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175107951'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175107951/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 4175221253, 'node_id': 'PRRC_kwDOALCn2M743NIF', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253', 'pull_request_review_id': 5403019331, 'diff_hunk': '@@ -1434,20 +1436,40 @@ static void WriteStage(ShaderCode& out, const pixel_shader_uid_data* uid_data, i\n   if (ac.dest >= TevOutput::Color0)\n     out.SetConstantsUsed(C_COLORS + u32(ac.dest.Value()), C_COLORS + u32(ac.dest.Value()));\n \n+  std::string color_a = tev_c_input_table[cc.a];\n+  std::string color_b = tev_c_input_table[cc.b];\n+  if ((cc.a == TevColorArg::Zero || cc.b == TevColorArg::Zero) &&\n+      DriverDetails::HasBug(DriverDetails::BUG_BROKEN_TEV_COLOR_ZERO))\n+  {\n+    const std::string combiner = fmt::format("bpmem_pack1[{}].x", n);\n+    // The shader UID includes the color combiner, so these runtime selectors are Zero here.\n+    // Keep zero dependent on those selectors to avoid folding it into the broken Adreno shader.', 'path': 'Source/Core/VideoCommon/PixelShaderGen.cpp', 'position': 20, 'original_position': 20, 'commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', '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}, 'body': 'IMO this is very confusing, since "Zero" is 15, while "zero" is 0.  At least use `TevColorArg::Zero`...\n```suggestion\n    // Create a zero that the Adreno compiler doesn\'t know at compile time by xoring a known value from the constant buffer with itself.\n```', 'created_at': '2026-10-03T22:43:19Z', 'updated_at': '2026-10-03T23:08:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175221253', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14899#discussion_r4175221253'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14899'}}, 'original_commit_id': '6c8a7f9ea814b9d05f9bf8bc277e433fe4df12b5', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4175221253/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'}
2026-10-03T22:32:03.347593	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14891, 'pr_title': 'MemArenaDarwin: Eliminate use of mach_make_memory_entry_64', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14891#pullrequestreview-5403132746', 'comments': [], 'type': 'gh_pull_request_review'}

Recent 'gh_push' events

2026-10-04T05:19:25.143476	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'iwubcode', 'before_sha': 'f70b2990ada78d4ef22cd399a474705eba64d617', 'after_sha': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-08-16T19:35:12+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoBackends/Vulkan/VulkanContext.cpp'], 'removed': [], 'message': 'Vulkan: Fetch driverVersion\n\nFor use with DriverDetails.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/003c61b78bec7955dbe765afd61abca0c6bfabf2', 'hash': '003c61b78bec7955dbe765afd61abca0c6bfabf2'}, {'author': {'name': 'Starlightbotanist', 'email': 'starlightbotanist@gmail.com', 'date': '2026-10-01T13:28:38-04:00', 'username': 'Starlightbotanist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/ConstantManager.h', 'Source/Core/VideoCommon/DriverDetails.cpp', 'Source/Core/VideoCommon/DriverDetails.h', 'Source/Core/VideoCommon/PixelShaderGen.cpp'], 'removed': [], 'message': 'VideoCommon: Work around Adreno TEV zero input miscompilation\n\nSome Qualcomm Android drivers from version 700 onward miscompile\nspecialized TEV pixel shaders when color input A or B is TevColorArg::Zero.\nUse konstLookup[8].rgb, which PixelShaderManager initializes to zero,\nto keep these inputs dependent on a uniform value.\n\nUse the existing driver bug gate for OpenGL and Vulkan. Other inputs and\nunaffected drivers retain their original shader expressions.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4ba37f1dde9ea3da96716f5613498bbb4228fe4c', 'hash': '4ba37f1dde9ea3da96716f5613498bbb4228fe4c'}, {'author': {'name': 'iwubcode', 'email': 'iwubcode@users.noreply.github.com', 'date': '2026-10-04T00:19:22-05:00', 'username': 'iwubcode'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoBackends/Vulkan/VulkanContext.cpp', 'Source/Core/VideoCommon/ConstantManager.h', 'Source/Core/VideoCommon/DriverDetails.cpp', 'Source/Core/VideoCommon/DriverDetails.h', 'Source/Core/VideoCommon/PixelShaderGen.cpp'], 'removed': [], 'message': 'Merge pull request #14899 from Starlightbotanist/adreno-tev-zero-rewrite\n\nVideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/eb236466c4f0ec8bef619add0972353d3996fe6c', 'hash': 'eb236466c4f0ec8bef619add0972353d3996fe6c'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-04T01:14:41.159610	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'OatmealDome', 'before_sha': '562875dd60fd0ff50b65dbbb611a2096802cd1b9', 'after_sha': 'f70b2990ada78d4ef22cd399a474705eba64d617', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-09-27T13:47:37-04:00', 'username': 'OatmealDome'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/MemArena.h', 'Source/Core/Common/MemArenaDarwin.cpp'], 'removed': [], 'message': 'MemArenaDarwin: Eliminate use of mach_make_memory_entry_64', 'url': 'https://github.com/dolphin-emu/dolphin/commit/da76f651ec20ac3b5cb8ace65f543d246a6c8f0a', 'hash': 'da76f651ec20ac3b5cb8ace65f543d246a6c8f0a'}, {'author': {'name': 'OatmealDome', 'email': 'OatmealDome@users.noreply.github.com', 'date': '2026-10-03T21:14:38-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/MemArena.h', 'Source/Core/Common/MemArenaDarwin.cpp'], 'removed': [], 'message': 'Merge pull request #14891 from OatmealDome/shm-entry-begone\n\nMemArenaDarwin: Eliminate use of mach_make_memory_entry_64', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f70b2990ada78d4ef22cd399a474705eba64d617', 'hash': 'f70b2990ada78d4ef22cd399a474705eba64d617'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T10:25:08.598791	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '8c16ea6c2777800fc3437dd1016f786c88a97730', 'after_sha': '562875dd60fd0ff50b65dbbb611a2096802cd1b9', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-09-18T01:58:43-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp', 'Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h'], 'removed': [], 'message': 'DolphinQt/InfinityBaseWindow: Minor adjustments.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/76320c7cdfa5de3268108e328a1a4038a8372bdf', 'hash': '76320c7cdfa5de3268108e328a1a4038a8372bdf'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-03T12:25:05+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.cpp', 'Source/Core/DolphinQt/InfinityBase/InfinityBaseWindow.h'], 'removed': [], 'message': 'Merge pull request #14879 from jordan-woyak/infinity-window-adjustments\n\nDolphinQt/InfinityBaseWindow: Minor adjustments.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/562875dd60fd0ff50b65dbbb611a2096802cd1b9', 'hash': '562875dd60fd0ff50b65dbbb611a2096802cd1b9'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T09:08:11.972738	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': 'af1ab20b356d288208e7324512efed4b0913f79e', 'after_sha': '8c16ea6c2777800fc3437dd1016f786c88a97730', 'commits': [{'author': {'name': 'Acts1631', 'email': 'acts1631kjv@proton.me', 'date': '2026-08-04T11:47:51-04:00', 'username': 'acts-1631'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/NetPlayClient.cpp', 'Source/Core/Core/NetPlayProto.h', 'Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp'], 'removed': [], 'message': 'NetPlay: reject oversized input buffer messages\n\nA NetPlay host could send an arbitrary buffer size to a client. The\nclient then tried to allocate input states until it reached that value.\n\nLimit buffer sizes to the existing user-interface maximum. Invalid peer\nvalues are ignored.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1eca2ca31c4e964be8f5e38bf01d786702737252', 'hash': '1eca2ca31c4e964be8f5e38bf01d786702737252'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-03T11:08:09+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/NetPlayClient.cpp', 'Source/Core/Core/NetPlayProto.h', 'Source/Core/DolphinQt/NetPlay/NetPlayDialog.cpp'], 'removed': [], 'message': 'Merge pull request #14797 from acts-1631/security/netplay-buffer-limit\n\nNetPlay: reject oversized input buffer messages', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8c16ea6c2777800fc3437dd1016f786c88a97730', 'hash': '8c16ea6c2777800fc3437dd1016f786c88a97730'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T07:53:15.695398	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'f76238742c70a3db637f2037b0ed380be4bdead1', 'after_sha': 'af1ab20b356d288208e7324512efed4b0913f79e', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-08-12T19:12:42+02:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': ['Source/Core/Common/LocaleUtil.cpp', 'Source/Core/Common/LocaleUtil.h'], 'modified': ['Source/Core/Common/CMakeLists.txt', 'Source/Core/Core/Movie.cpp', 'Source/Core/Core/State.cpp', 'Source/Core/VideoCommon/PostProcessing.cpp'], 'removed': [], 'message': 'Fix crashes when using `std::locale{""}` with an invalid LC_ALL', 'url': 'https://github.com/dolphin-emu/dolphin/commit/622c711ccfa9ce42b9d6b20bca0085f804f66e59', 'hash': '622c711ccfa9ce42b9d6b20bca0085f804f66e59'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-10-03T09:53:13+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': ['Source/Core/Common/LocaleUtil.cpp', 'Source/Core/Common/LocaleUtil.h'], 'modified': ['Source/Core/Common/CMakeLists.txt', 'Source/Core/Core/Movie.cpp', 'Source/Core/Core/State.cpp', 'Source/Core/VideoCommon/PostProcessing.cpp'], 'removed': [], 'message': 'Merge pull request #14812 from JoshuaVandaele/correct-env-locale\n\nFix crashes when using `std::locale{""}` with an invalid LC_ALL', 'url': 'https://github.com/dolphin-emu/dolphin/commit/af1ab20b356d288208e7324512efed4b0913f79e', 'hash': 'af1ab20b356d288208e7324512efed4b0913f79e'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T06:05:18.061458	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'a0c3ab78d391ff4703fed5a1d583e947dc8e7750', 'after_sha': 'f76238742c70a3db637f2037b0ed380be4bdead1', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-02-06T22:48:34+01:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Readme.md', 'Source/Core/DolphinTool/ConvertCommand.cpp', 'Source/Core/DolphinTool/VerifyCommand.cpp'], 'removed': [], 'message': "DolphinTool: Show choices as metavars, and don't lie about defaults\n\nThe previous `%choices` string no longer works since cpp-optparse got updated. In a confusing turn of events, I believe cpp-optparse got renamed to cpp-argparse at some point in history, and a new cpp-optparse repository was made in its place as a fork of argparse before `%choices` was added to it, and picked up development without ever adding `%choices`. This lead to the breaking change not being documented anywhere in the commit history.\n\nShowing it as a metavar matches the style of many GNU tools, this is how it renders:\n\n```\n$ ./Binaries/dolphin-tool verify -h\nUsage: verify [options]...\n\nOptions:\n  -h, --help            show this help message and exit\n  -u USER, --user=USER  User folder path, required for temporary processing\n                        files. Will be automatically created if this option is\n                        not set.\n  -i FILE, --input=FILE\n                        Path to input file.\n  -a crc32|md5|sha1|rchash, --algorithm=crc32|md5|sha1|rchash\n                        Optional. Compute and print the digest using the\n                        selected algorithm, then exit.\n```\n\nAlso we were lying about RVZ being a default value in the convert command.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/c7f2cca6e55f41f09a6152b369b21ffcc3f97363', 'hash': 'c7f2cca6e55f41f09a6152b369b21ffcc3f97363'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-03T01:05:15-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Readme.md', 'Source/Core/DolphinTool/ConvertCommand.cpp', 'Source/Core/DolphinTool/VerifyCommand.cpp'], 'removed': [], 'message': "Merge pull request #14328 from JoshuaVandaele/choices-fix\n\nDolphinTool: Show choices as metavars, and don't lie about defaults", 'url': 'https://github.com/dolphin-emu/dolphin/commit/f76238742c70a3db637f2037b0ed380be4bdead1', 'hash': 'f76238742c70a3db637f2037b0ed380be4bdead1'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T03:04:20.806275	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2', 'after_sha': 'a0c3ab78d391ff4703fed5a1d583e947dc8e7750', 'commits': [{'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T22:28:33+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Convert UStatus union to struct', 'url': 'https://github.com/dolphin-emu/dolphin/commit/afee1e8ae4c0b966880e060850eed2d01ed31cfa', 'hash': 'afee1e8ae4c0b966880e060850eed2d01ed31cfa'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T22:38:11+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Make static constants constexpr', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3ba9a6df1a85ec6d111d320ac1ea22e3119720ee', 'hash': '3ba9a6df1a85ec6d111d320ac1ea22e3119720ee'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T22:42:47+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Replace C style array by std::array', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4f717050dad5a2b2538a7784e157109118ae63f4', 'hash': '4f717050dad5a2b2538a7784e157109118ae63f4'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T22:52:42+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Move members initialization to header file', 'url': 'https://github.com/dolphin-emu/dolphin/commit/7a3ac130d7a1d49f013bb2da983a42513e9ca935', 'hash': '7a3ac130d7a1d49f013bb2da983a42513e9ca935'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T23:11:45+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Rename members as per Dolphin coding style', 'url': 'https://github.com/dolphin-emu/dolphin/commit/17e0c1bb833b5c884ba3b11b215024b67a48dba0', 'hash': '17e0c1bb833b5c884ba3b11b215024b67a48dba0'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-26T23:25:40+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp'], 'removed': [], 'message': 'EXI_DeviceMic: Make some variables const', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ff7d1d2485f2c1f1433214b6c6cd1161869a6f7a', 'hash': 'ff7d1d2485f2c1f1433214b6c6cd1161869a6f7a'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-27T00:13:55+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Add some sanity checks', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e02e385b16b5908d5c889c162c1b75ee3057c0e7', 'hash': 'e02e385b16b5908d5c889c162c1b75ee3057c0e7'}, {'author': {'name': 'Sepalani', 'email': 'sepalani@hotmail.fr', 'date': '2026-07-28T00:19:06+04:00', 'username': 'sepalani'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'EXI_DeviceMic: Replace new[] by Common::UniqueBuffer', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cee5888137aa34b0e0a264c815b6354ccb9f5b00', 'hash': 'cee5888137aa34b0e0a264c815b6354ccb9f5b00'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T22:04:18-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceMic.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceMic.h'], 'removed': [], 'message': 'Merge pull request #14772 from sepalani/mic-cleanup\n\nEXI_DeviceMic: Cleanup and small improvements', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0c3ab78d391ff4703fed5a1d583e947dc8e7750', 'hash': 'a0c3ab78d391ff4703fed5a1d583e947dc8e7750'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-03T01:29:56.080643	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '8a40a9c01d01e768d37e6296b1bd1c836af1a264', 'after_sha': '13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2', 'commits': [{'author': {'name': 'Tillmann Karras', 'email': 'tilkax@gmail.com', 'date': '2026-09-04T02:15:49+01:00', 'username': 'Tilka'}, 'distinct': False, 'added': [], 'modified': ['docs/DSP/free_dsp_rom/generate_coefs.py'], 'removed': [], 'message': 'generate_coefs.py: fix compatibility with modern NumPy\n\nReported by apteryx.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5d4cf0ec6552e0dffdce0bc318932b9481e7084c', 'hash': '5d4cf0ec6552e0dffdce0bc318932b9481e7084c'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T20:29:53-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['docs/DSP/free_dsp_rom/generate_coefs.py'], 'removed': [], 'message': 'Merge pull request #14845 from Tilka/generate_coefs\n\ngenerate_coefs.py: fix compatibility with modern NumPy', 'url': 'https://github.com/dolphin-emu/dolphin/commit/13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2', 'hash': '13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T23:24:10.827764	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'a475aba718746e7656e2e6b6e047dc98a4d05879', 'after_sha': '8a40a9c01d01e768d37e6296b1bd1c836af1a264', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-09-28T22:38:27-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/GBAPadEmu.cpp', 'Source/Core/Core/HW/GBAPadEmu.h', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.cpp'], 'removed': [], 'message': 'GBAPadEmu: Make GBAPad::GetInput use actual GBA button values rather than have SI_DeviceGBAEmu translate bits from GCPad to GBA.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/85a074056175ad463688b300d2f31f86ebbaef0d', 'hash': '85a074056175ad463688b300d2f31f86ebbaef0d'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T18:24:08-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/GBAPadEmu.cpp', 'Source/Core/Core/HW/GBAPadEmu.h', 'Source/Core/Core/HW/SI/SI_DeviceGBAEmu.cpp'], 'removed': [], 'message': 'Merge pull request #14897 from jordan-woyak/gba-button-bits\n\nGBAPadEmu: Make GBAPad::GetInput use actual GBA button values.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8a40a9c01d01e768d37e6296b1bd1c836af1a264', 'hash': '8a40a9c01d01e768d37e6296b1bd1c836af1a264'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T18:56:03.273312	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'bd094a0de5bccd4a0a14ab6a14810e31df45eb48', 'after_sha': 'a475aba718746e7656e2e6b6e047dc98a4d05879', 'commits': [{'author': {'name': 'Chase Harkcom', 'email': 'me@chasehark.com', 'date': '2026-09-09T21:44:21-06:00', 'username': 'ChaseParate'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt', 'Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/MainAndroid.cpp'], 'removed': [], 'message': 'Add reset menu item to Android app', 'url': 'https://github.com/dolphin-emu/dolphin/commit/9e91582b95a928a61cde3dd5b6766e0af03e88a4', 'hash': '9e91582b95a928a61cde3dd5b6766e0af03e88a4'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-10-02T20:56:00+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/activities/EmulationActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/EmulationFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt', 'Source/Android/app/src/main/res/layout/fragment_ingame_menu.xml', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/MainAndroid.cpp'], 'removed': [], 'message': 'Merge pull request #14857 from ChaseParate/chaseparate-android-add-reset-menu-item\n\nAndroid: Add reset item to emulation menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a475aba718746e7656e2e6b6e047dc98a4d05879', 'hash': 'a475aba718746e7656e2e6b6e047dc98a4d05879'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T17:58:19.018519	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '5c2f8aec222289f0166be7dca984bd60cddbba36', 'after_sha': 'bd094a0de5bccd4a0a14ab6a14810e31df45eb48', 'commits': [{'author': {'name': 'Hanchen Li', 'email': 'hanchenl@nvidia.com', 'date': '2026-09-26T16:57:37-07:00', 'username': 'lihanchen'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt', 'Source/Android/app/src/main/res/values/dimens.xml'], 'removed': [], 'message': 'Fix UI text truncation in 4K TV UI', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a975e7a235434af5d77565dc8bc01b05b0ec54c2', 'hash': 'a975e7a235434af5d77565dc8bc01b05b0ec54c2'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-02T19:58:16+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/SettingsRowPresenter.kt', 'Source/Android/app/src/main/res/values/dimens.xml'], 'removed': [], 'message': 'Merge pull request #14890 from lihanchen/master\n\nAndroid: Fix UI text truncation in 4K TV UI', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bd094a0de5bccd4a0a14ab6a14810e31df45eb48', 'hash': 'bd094a0de5bccd4a0a14ab6a14810e31df45eb48'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T17:55:38.470535	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7', 'after_sha': '5c2f8aec222289f0166be7dca984bd60cddbba36', 'commits': [{'author': {'name': 'matellush', 'email': '202132988+matellush@users.noreply.github.com', 'date': '2026-09-12T17:43:18+02:00', 'username': 'matellush'}, 'distinct': False, 'added': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.yml'], 'removed': [], 'message': 'Flatpak: Bump `libevdev` to `1.13.7`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/958ea7855b64ab16095452f4d717c5f845b26677', 'hash': '958ea7855b64ab16095452f4d717c5f845b26677'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T12:55:35-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.yml'], 'removed': [], 'message': 'Merge pull request #14861 from matellush/flatpak/libevdev\n\nFlatpak: Bump `libevdev` to `1.13.7`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5c2f8aec222289f0166be7dca984bd60cddbba36', 'hash': '5c2f8aec222289f0166be7dca984bd60cddbba36'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T17:53:50.674374	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '061f3e95bbe925bc52e1b491e586dcf039481d61', 'after_sha': '418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-09-28T02:19:11-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/R8V.ini', 'Data/Sys/GameSettings/RC3.ini', 'Data/Sys/GameSettings/RDO.ini'], 'modified': ['Data/Sys/GameSettings/RG8.ini'], 'removed': [], 'message': 'GameSettings: Add some required settings for Petz games.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b34a2a051343bbb597d9804a458f90887b1d86a8', 'hash': 'b34a2a051343bbb597d9804a458f90887b1d86a8'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-02T19:53:48+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/R8V.ini', 'Data/Sys/GameSettings/RC3.ini', 'Data/Sys/GameSettings/RDO.ini'], 'modified': ['Data/Sys/GameSettings/RG8.ini'], 'removed': [], 'message': 'Merge pull request #14894 from jordan-woyak/petz-gamesettingz\n\nGameSettings: Add some required settings for Petz games.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7', 'hash': '418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T17:52:32.235374	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '8e7521c46eb674119038c9a5e19f103be0251ac8', 'after_sha': '061f3e95bbe925bc52e1b491e586dcf039481d61', 'commits': [{'author': {'name': 'Brad Smith', 'email': 'brad@comstyle.com', 'date': '2026-09-13T05:42:15-04:00', 'username': 'brad0'}, 'distinct': False, 'added': [], 'modified': ['Source/CMakeLists.txt', 'Source/Core/Common/FileUtil.cpp'], 'removed': [], 'message': 'Implement File::GetExePath() for OpenBSD with getexecpath()', 'url': 'https://github.com/dolphin-emu/dolphin/commit/71165c82a56292cdb5f2c78b4e8bfb46d8dadb02', 'hash': '71165c82a56292cdb5f2c78b4e8bfb46d8dadb02'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-02T19:52:29+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/CMakeLists.txt', 'Source/Core/Common/FileUtil.cpp'], 'removed': [], 'message': 'Merge pull request #14863 from brad0/openbsd_getexecpath\n\nImplement File::GetExePath() for OpenBSD with getexecpath()', 'url': 'https://github.com/dolphin-emu/dolphin/commit/061f3e95bbe925bc52e1b491e586dcf039481d61', 'hash': '061f3e95bbe925bc52e1b491e586dcf039481d61'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T17:50:40.064279	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '24c80c5a32d9429bcd8e7b0b90d7b61763782009', 'after_sha': '8e7521c46eb674119038c9a5e19f103be0251ac8', 'commits': [{'author': {'name': 'VampireFlower', 'email': 'monstercatspedup1@gmail.com', 'date': '2026-09-30T04:04:23-06:00', 'username': 'VampireFlower'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/Assembler/GekkoLexer.cpp'], 'removed': [], 'message': 'Assembler: Fix crash from assembling malformed source', 'url': 'https://github.com/dolphin-emu/dolphin/commit/902587cae2b2247bc1b1e981c20067ca0082859b', 'hash': '902587cae2b2247bc1b1e981c20067ca0082859b'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-10-02T19:50:37+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/Assembler/GekkoLexer.cpp'], 'removed': [], 'message': 'Merge pull request #14900 from VampireFlower/assembler-fix\n\nAssembler: Fix crash from assembling malformed source', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8e7521c46eb674119038c9a5e19f103be0251ac8', 'hash': '8e7521c46eb674119038c9a5e19f103be0251ac8'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T10:29:34.836618	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '045c19b25636334865350d13da5f138bf7956bce', 'after_sha': '24c80c5a32d9429bcd8e7b0b90d7b61763782009', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-13T20:51:14-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Core/Core/PowerPC/MMU.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.cpp'], 'removed': [], 'message': 'PowerPC/MMU: Changed mask in DMA_LCToMemory and DMA_MemoryToLC functions to allow for a 256MiB MEM2.\n\nAlso adjusted maximum value for MEM2 to 256 MiB for Qt and Android UIs.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/9599525ea16a539796048c42cbcf3c567f6c8205', 'hash': '9599525ea16a539796048c42cbcf3c567f6c8205'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-10-02T06:29:32-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Core/Core/PowerPC/MMU.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.cpp'], 'removed': [], 'message': 'Merge pull request #14590 from jordan-woyak/mmu-256-mem2\n\nPowerPC/MMU: Change mask in DMA_LCToMemory and DMA_MemoryToLC functions to allow for a 256MiB MEM2.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/24c80c5a32d9429bcd8e7b0b90d7b61763782009', 'hash': '24c80c5a32d9429bcd8e7b0b90d7b61763782009'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T08:48:22.175152	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '8fe19d11187889de269f1fd01a23116f2de343ea', 'after_sha': '045c19b25636334865350d13da5f138bf7956bce', 'commits': [{'author': {'name': 'JordanTheToaster', 'email': 'jordanh48@ymail.com', 'date': '2026-09-09T02:35:47+01:00', 'username': 'JordanTheToaster'}, 'distinct': False, 'added': [], 'modified': ['Externals/SDL/SDL'], 'removed': [], 'message': 'Externals/SDL: Update to release 3.4.16', 'url': 'https://github.com/dolphin-emu/dolphin/commit/61ac5cb4efef0cd12019a362f143a23d32807d9c', 'hash': '61ac5cb4efef0cd12019a362f143a23d32807d9c'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T03:48:19-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Externals/SDL/SDL'], 'removed': [], 'message': 'Merge pull request #14855 from JordanTheToaster/SDL-Has-Shoes-Now\n\nExternals/SDL: Update to release-3.4.16', 'url': 'https://github.com/dolphin-emu/dolphin/commit/045c19b25636334865350d13da5f138bf7956bce', 'hash': '045c19b25636334865350d13da5f138bf7956bce'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T08:47:27.029113	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '5390a61e521013738a75102daa43513d79423192', 'after_sha': '8fe19d11187889de269f1fd01a23116f2de343ea', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-09-11T22:38:03+02:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp', 'Source/Core/InputCommon/ControlReference/FunctionExpression.cpp'], 'removed': [], 'message': 'Input Syntax: Add floor, ceil, round, and trunc functions', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0cbf5a80abad9b007e46c648999953bc50e0af2f', 'hash': '0cbf5a80abad9b007e46c648999953bc50e0af2f'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-10-02T03:47:24-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/Mapping/IOWindow.cpp', 'Source/Core/InputCommon/ControlReference/FunctionExpression.cpp'], 'removed': [], 'message': 'Merge pull request #14860 from JoshuaVandaele/inputsyntax-nodecimal\n\nInput Syntax: Add floor, ceil, round, and trunc functions', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8fe19d11187889de269f1fd01a23116f2de343ea', 'hash': '8fe19d11187889de269f1fd01a23116f2de343ea'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-02T05:58:22.946856	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '048e6306b82b183d061ee33c4ee32d5e76f3f09a', 'after_sha': '5390a61e521013738a75102daa43513d79423192', 'commits': [{'author': {'name': 'William Sullivan', 'email': 'willwill.sullivan@gmail.com', 'date': '2026-09-20T15:10:16-05:00', 'username': 'ICEREG1992'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/AudioCommon/CubebStream.h', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/DolphinQt/Settings/AudioPane.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.h'], 'removed': [], 'message': 'Integrated GBA Audio Routing', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0e6e00b1ef4fcc17025736e34389ac681dce193f', 'hash': '0e6e00b1ef4fcc17025736e34389ac681dce193f'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-10-02T01:58:20-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/AudioCommon/CubebStream.h', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/DolphinQt/Settings/AudioPane.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.h'], 'removed': [], 'message': 'Merge pull request #14880 from ICEREG1992/GBARouting\n\nIntegrated GBA Audio Routing', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5390a61e521013738a75102daa43513d79423192', 'hash': '5390a61e521013738a75102daa43513d79423192'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-01T20:38:00.497828	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '771fb154059c5812d6a715a23226249cc42877a2', 'after_sha': '048e6306b82b183d061ee33c4ee32d5e76f3f09a', 'commits': [{'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'date': '2026-06-28T11:00:06+02:00', 'username': 'SuperSamus'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/SVX.ini'], 'modified': ['Data/Sys/ApprovedInis.json'], 'removed': [], 'message': 'GameSettings: Add speed hack for Skylanders: Swap Force', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0b4ebbfb94ff630963a3c94c1a6b47f991b68975', 'hash': '0b4ebbfb94ff630963a3c94c1a6b47f991b68975'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-10-01T16:37:58-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/SVX.ini'], 'modified': ['Data/Sys/ApprovedInis.json'], 'removed': [], 'message': 'Merge pull request #14717 from SuperSamus/skylanders-swap-force-speed-hack\n\nGameSettings: Add speed hack for Skylanders: Swap Force', 'url': 'https://github.com/dolphin-emu/dolphin/commit/048e6306b82b183d061ee33c4ee32d5e76f3f09a', 'hash': '048e6306b82b183d061ee33c4ee32d5e76f3f09a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-01T02:16:57.167910	{'source': 'ghhookparser', 'repo': 'dolphin-emu/central', 'pusher': 'dependabot[bot]', 'before_sha': '0000000000000000000000000000000000000000', 'after_sha': 'dba9ec27ac82fe85388b3625f81f29ac15b1b6d0', 'commits': [{'author': {'name': 'dependabot[bot]', 'email': '49699333+dependabot[bot]@users.noreply.github.com', 'date': '2026-10-01T02:16:55Z', 'username': 'dependabot[bot]'}, 'distinct': True, 'added': [], 'modified': ['uv.lock'], 'removed': [], 'message': 'build(deps): bump urllib3 from 2.7.0 to 2.8.0\n\nBumps [urllib3](https://github.com/urllib3/urllib3) from 2.7.0 to 2.8.0.\n- [Release notes](https://github.com/urllib3/urllib3/releases)\n- [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst)\n- [Commits](https://github.com/urllib3/urllib3/compare/2.7.0...2.8.0)\n\n---\nupdated-dependencies:\n- dependency-name: urllib3\n  dependency-version: 2.8.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>', 'url': 'https://github.com/dolphin-emu/central/commit/dba9ec27ac82fe85388b3625f81f29ac15b1b6d0', 'hash': 'dba9ec27ac82fe85388b3625f81f29ac15b1b6d0'}], 'base_ref_name': None, 'ref_name': 'dependabot/uv/urllib3-2.8.0', 'ref_type': 'heads', 'created': True, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-10-01T02:16:50.563240	{'source': 'ghhookparser', 'repo': 'dolphin-emu/central', 'pusher': 'dependabot[bot]', 'before_sha': '0000000000000000000000000000000000000000', 'after_sha': '11497c1e1dd07c9776ada61ae654537e201963c4', 'commits': [{'author': {'name': 'dependabot[bot]', 'email': '49699333+dependabot[bot]@users.noreply.github.com', 'date': '2026-10-01T02:16:48Z', 'username': 'dependabot[bot]'}, 'distinct': True, 'added': [], 'modified': ['uv.lock'], 'removed': [], 'message': 'build(deps): bump oauthlib from 3.3.1 to 4.0.0\n\nBumps [oauthlib](https://github.com/oauthlib/oauthlib) from 3.3.1 to 4.0.0.\n- [Release notes](https://github.com/oauthlib/oauthlib/releases)\n- [Changelog](https://github.com/oauthlib/oauthlib/blob/master/CHANGELOG.rst)\n- [Commits](https://github.com/oauthlib/oauthlib/compare/v3.3.1...v4.0.0)\n\n---\nupdated-dependencies:\n- dependency-name: oauthlib\n  dependency-version: 4.0.0\n  dependency-type: indirect\n...\n\nSigned-off-by: dependabot[bot] <support@github.com>', 'url': 'https://github.com/dolphin-emu/central/commit/11497c1e1dd07c9776ada61ae654537e201963c4', 'hash': '11497c1e1dd07c9776ada61ae654537e201963c4'}], 'base_ref_name': None, 'ref_name': 'dependabot/uv/oauthlib-4.0.0', 'ref_type': 'heads', 'created': True, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-09-30T17:06:25.037857	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '5102a0339c2177575378107b76541e47cc52122d', 'after_sha': '771fb154059c5812d6a715a23226249cc42877a2', 'commits': [{'author': {'name': 'Lilly Jade Katrin', 'email': 'lilly.kitty.1988@gmail.com', 'date': '2026-09-14T23:26:27-04:00', 'username': 'LillyJadeKatrin'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/GYAE78.ini', 'Data/Sys/GameSettings/RBU.ini', 'Data/Sys/GameSettings/RDGEA4.ini', 'Data/Sys/GameSettings/SBDE08.ini', 'Data/Sys/GameSettings/SBDP08.ini'], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GDJEB2.ini', 'Data/Sys/GameSettings/GF7E01.ini', 'Data/Sys/GameSettings/GFTE01.ini', 'Data/Sys/GameSettings/GMSE01.ini', 'Data/Sys/GameSettings/GPOE8P.ini', 'Data/Sys/GameSettings/GQPP78.ini', 'Data/Sys/GameSettings/R3R.ini', 'Data/Sys/GameSettings/RHO.ini'], 'removed': [], 'message': 'RetroAchievements - Additional Code Approvals\n\nA handful of requested Gecko/AR codes and approvals for use with RetroAchievements.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d51d80b9ec42aaab7ee91398097dfdea5365ae6c', 'hash': 'd51d80b9ec42aaab7ee91398097dfdea5365ae6c'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-09-30T19:06:22+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/GYAE78.ini', 'Data/Sys/GameSettings/RBU.ini', 'Data/Sys/GameSettings/RDGEA4.ini', 'Data/Sys/GameSettings/SBDE08.ini', 'Data/Sys/GameSettings/SBDP08.ini'], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/GDJEB2.ini', 'Data/Sys/GameSettings/GF7E01.ini', 'Data/Sys/GameSettings/GFTE01.ini', 'Data/Sys/GameSettings/GMSE01.ini', 'Data/Sys/GameSettings/GPOE8P.ini', 'Data/Sys/GameSettings/GQPP78.ini', 'Data/Sys/GameSettings/R3R.ini', 'Data/Sys/GameSettings/RHO.ini'], 'removed': [], 'message': 'Merge pull request #14870 from LillyJadeKatrin/retroachievements-allowlist-update\n\nRetroAchievements - Additional Code Approvals', 'url': 'https://github.com/dolphin-emu/dolphin/commit/771fb154059c5812d6a715a23226249cc42877a2', 'hash': '771fb154059c5812d6a715a23226249cc42877a2'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-09-28T06:24:31.121374	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': 'bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd', 'after_sha': '5102a0339c2177575378107b76541e47cc52122d', 'commits': [{'author': {'name': 'Tom Pratt', 'email': 'tom.pratt@outlook.com', 'date': '2026-09-27T21:04:53+02:00', 'username': 'tom-pratt'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/res/layout/activity_settings.xml'], 'removed': [], 'message': "Fix android settings crash on API level 28 and lower\n\nThese API levels don't allow color selectors to be used as backgrounds.\n\nSwitch to MaterialDivider and set the color via dividerColor instead of background.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/b5748b81d64bc8ee61c2a9c514f98adb2acd2cd7', 'hash': 'b5748b81d64bc8ee61c2a9c514f98adb2acd2cd7'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-09-28T08:24:28+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/res/layout/activity_settings.xml'], 'removed': [], 'message': 'Merge pull request #14893 from tom-pratt/android-settings-crash\n\nFix android settings crash on API level 28 and lower', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5102a0339c2177575378107b76541e47cc52122d', 'hash': '5102a0339c2177575378107b76541e47cc52122d'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-09-27T20:00:02.774566	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '465c652da1dc0b3048089701a1885084821c9574', 'after_sha': 'bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-09-27T20:39:11+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/build.gradle.kts'], 'removed': [], 'message': 'Android: Set abiFilters for ndk\n\nNormally, Dolphin APKs have a lib folder that contains two subfolders:\narm64-v8a and x86_64. Both contain a libmain.so file, and arm64-v8a also\ncontains additional .so files for libadrenotools.\n\nWhen we added netplay support for Android, we brought in Jetpack Compose\nas a dependency, which in turn made libandroidx.graphics.path.so be\nincluded in Dolphin APKs. Unfortunately, this .so file was included not\nonly for arm64-v8a and x86_64, but also for armeabi-v7a and x86. This\nmade Dolphin installable on devices that use one of these older ABIs,\nbut because libmain.so is missing, trying to start Dolphin on such a\ndevice results in an instant crash. We have gotten a number of Google\nPlay reviews from armeabi-v7a users complaining about this crash.\n\nThis fixes the problem by setting abiFilters under ndk instead of under\ncmake, as documented at https://developer.android.com/ndk/guides/abis.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5f395ab79293cb88c266171a9caf0253592c70fb', 'hash': '5f395ab79293cb88c266171a9caf0253592c70fb'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-09-27T22:00:00+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/build.gradle.kts'], 'removed': [], 'message': 'Merge pull request #14892 from JosJuice/android-abis\n\nAndroid: Set abiFilters for ndk', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd', 'hash': 'bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}

Recent 'internal_log' events

2026-10-04T21:16:17.923556	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T21:16:16.435932	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T21:14:11.295549	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,leoetlino,CrossVR,jordan-woyak,JosJuice,phire,degasus,Tilka,Pokechu22,Dentomologist,OatmealDome,linkmauve,iwubcode')", 'type': 'internal_log'}
2026-10-04T21:14:11.000599	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-10-04T21:11:16.435471	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T21:11:14.882927	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T21:11:13.255987	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14913, None, 'unknown')", 'type': 'internal_log'}
2026-10-04T21:07:47.227488	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14912, True, 'clean')", 'type': 'internal_log'}
2026-10-04T21:06:14.882070	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T21:06:13.403210	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T21:04:11.000237	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,leoetlino,CrossVR,jordan-woyak,JosJuice,phire,degasus,Tilka,Pokechu22,Dentomologist,OatmealDome,linkmauve,iwubcode')", 'type': 'internal_log'}
2026-10-04T21:04:10.686479	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-10-04T21:03:35.175930	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/buildbot.py', 'lineno': 131, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(14911, True, 'clean')", 'type': 'internal_log'}
2026-10-04T21:01:13.402884	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T21:01:11.912034	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T20:56:11.911676	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T20:56:10.418995	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T20:54:10.686203	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,leoetlino,CrossVR,jordan-woyak,JosJuice,phire,degasus,Tilka,Pokechu22,Dentomologist,OatmealDome,linkmauve,iwubcode')", 'type': 'internal_log'}
2026-10-04T20:54:10.253862	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-10-04T20:51:10.418627	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T20:51:08.711325	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T20:46:08.710932	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'CrossVR,meffij,kamiyo,moncefmechri,NanoByte011,OatmealDome,bentley,neobrain,tygyh,mahdihijazi,comex,JosJuice,FioraAeterna,LAGonauta,rlnilsen,noahpistilli,booto,merryhime,JoshuaVandaele,CookiePLMonster,shonumi,Gamer64ytb,mimimi085181,phire,Ziek,vladfi1,JordanTheToaster,riking,OrN,Linktothepast,crediar,galop1n,kayru,aldelaro5,DacoTaco,CelestialAmber,mmastrac,Zopolis4,delroth,RisingFog,Sir-Walrus,spxtr,TryTwo,malleoz,PatrickFerry,Simonx22,Techjar,gwicks,zopieux,LPFaint99,LillyJadeKatrin,iwubcode,mandar1jn,skidau,Sintendo,Hydr8gon,smurf3tte,Linkinworm,archshift,RachelBryk,BhaaLseN,zackhow,SuperSamus,Tilka,tom-pratt,adamdmoss,Parlane,jordan-woyak,hthh,Ebola16,CasualPokePlayer,JMC47,cscd98,jjdelvalle,rukai,hrydgard,CrystalGamma,Dentomologist,mrgreywater,AdmiralCurtiss,aroulin,Orphis,Filoppi,SirMangler,deReeperJosh,nullgemm,unknownbrackets,degasus,jloehr,Stevoisiak,EmptyChaos,leoetlino,magcius,krnlyng,skylersaleh,jezze,Tinob,Geotale,Sam-Belliveau,marcan,spycrab,yourWaifu,K0bin,glennricster,lioncash,magumagu,MayImilae,randomstuff,hackbar,mitaclaw,TellowKrinkle,linkmauve,Lobsterzelda,ligfx,Phatcat,sepalani,endrift,ShimmerGlass,cristian64,Helios747,mathieui,corwin-mcknight,orbea,dreamsyntax,nickbeth,Buddybenj,mbc07,hdcmeta,Pokechu22,ColinDTaylor,Starsam80')", 'type': 'internal_log'}
2026-10-04T20:46:07.161489	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-10-04T20:44:10.253592	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,leoetlino,CrossVR,jordan-woyak,JosJuice,phire,degasus,Tilka,Pokechu22,Dentomologist,OatmealDome,linkmauve,iwubcode')", 'type': 'internal_log'}
2026-10-04T20:44:09.964969	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/kzqhmmj65g7bykn4xzylrsf7m9r32zh5-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 20, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}

Recent 'issue' events

2026-10-04T18:48:32.636684	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14146, 'title': '\u200b[DeX] Fullscreen FPS drops after 1 min unless Taskbar is kept visible', 'author': 'JosJuice', 'type': 'issue'}
2026-10-04T18:47:25.655655	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'JosJuice', 'type': 'issue'}
2026-10-04T11:42:17.479123	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'cozonacel35', 'type': 'issue'}
2026-10-04T11:29:36.865702	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'cozonacel35', 'type': 'issue'}
2026-10-04T11:24:20.236885	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'cozonacel35', 'type': 'issue'}
2026-10-04T11:18:44.211343	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 14147, 'title': 'Mac: Unable to resolve read address 812fffc8 PC 500', 'author': 'cozonacel35', 'type': 'issue'}
2026-10-04T04:46:13.193515	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 14145, 'title': '2609 (macOS, Apple M4): Wii games fail at boot with "IntCPU: Unknown instruction 00000000"; 2606 works', 'author': 'Billiard26', 'type': 'issue'}
2026-10-04T02:27:26.311120	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 14146, 'title': '\u200b[DeX] Fullscreen FPS drops after 1 min unless Taskbar is kept visible', 'author': 'gug4', 'type': 'issue'}
2026-10-03T18:29:04.758921	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 14145, 'title': '2609 (macOS, Apple M4): Wii games fail at boot with "IntCPU: Unknown instruction 00000000"; 2606 works', 'author': 'OatmealDome', 'type': 'issue'}
2026-10-03T18:13:33.927102	{'source': 'redmine', 'new': False, 'update': 9, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'gug4', 'type': 'issue'}
2026-10-03T17:56:23.225641	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14145, 'title': '2609 (macOS, Apple M4): Wii games fail at boot with "IntCPU: Unknown instruction 00000000"; 2606 works', 'author': 'Billiard26', 'type': 'issue'}
2026-10-03T17:48:00.219615	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 14145, 'title': '2609 (macOS, Apple M4): Wii games fail at boot with "IntCPU: Unknown instruction 00000000"; 2606 works', 'author': 'MN', 'type': 'issue'}
2026-10-03T15:13:30.618893	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 14143, 'title': "Games Can't Start Without Crashing Dolphin", 'author': 'TakahashiAkira', 'type': 'issue'}
2026-10-03T14:58:32.501993	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 14143, 'title': "Games Can't Start Without Crashing Dolphin", 'author': 'TakahashiAkira', 'type': 'issue'}
2026-10-03T14:53:43.135406	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 14143, 'title': "Games Can't Start Without Crashing Dolphin", 'author': 'TakahashiAkira', 'type': 'issue'}
2026-10-03T06:06:33.878339	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 14082, 'title': 'flatpak dolphin-tool convert --help format option shows [%choices] instead of actual choices', 'author': 'Billiard26', 'type': 'issue'}
2026-10-03T05:57:54.402353	{'source': 'redmine', 'new': False, 'update': 6, 'issue': 14127, 'title': '[build] generate_coefs.py script relies on legacy numpy version', 'author': 'Billiard26', 'type': 'issue'}
2026-10-02T18:58:47.252229	{'source': 'redmine', 'new': False, 'update': 8, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'Billiard26', 'type': 'issue'}
2026-10-02T18:47:54.921168	{'source': 'redmine', 'new': False, 'update': 7, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'gug4', 'type': 'issue'}
2026-10-02T18:28:31.323369	{'source': 'redmine', 'new': False, 'update': 6, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'gug4', 'type': 'issue'}
2026-10-02T17:12:18.216685	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'Billiard26', 'type': 'issue'}
2026-10-02T17:10:33.991744	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 14144, 'title': '[Android / DeX] Wiimote fails to establish active connection in Dolphin if Nunchuk is attached (Connects immediately when unplugged)', 'author': 'gug4', 'type': 'issue'}
2026-10-02T17:08:54.698858	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13973, 'title': 'Allow MEM2 to be addressable up to 256 MB up from 128 MB on "Emulated Memory size override"', 'author': 'Billiard26', 'type': 'issue'}
2026-10-02T17:08:06.123921	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14138, 'title': "Netplay doesn't work on local network", 'author': 'Billiard26', 'type': 'issue'}
2026-10-02T17:03:50.435597	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14143, 'title': "Games Can't Start Without Crashing Dolphin", 'author': 'Billiard26', 'type': 'issue'}

Recent 'new_dev_version' events

2026-10-04T05:19:26.702545	{'source': 'repomanager', 'hash': 'eb236466c4f0ec8bef619add0972353d3996fe6c', 'branch': 'master', 'shortrev': '2609-57', 'author': 'iwubcode', 'message': 'Merge pull request #14899 from Starlightbotanist/adreno-tev-zero-rewrite\n\nVideoCommon: Work around Adreno TEV zero input miscompilation', 'url': 'https://github.com/dolphin-emu/dolphin/commit/eb236466c4f0ec8bef619add0972353d3996fe6c', 'type': 'new_dev_version'}
2026-10-04T01:14:44.064697	{'source': 'repomanager', 'hash': 'f70b2990ada78d4ef22cd399a474705eba64d617', 'branch': 'master', 'shortrev': '2609-54', 'author': 'OatmealDome', 'message': 'Merge pull request #14891 from OatmealDome/shm-entry-begone\n\nMemArenaDarwin: Eliminate use of mach_make_memory_entry_64', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f70b2990ada78d4ef22cd399a474705eba64d617', 'type': 'new_dev_version'}
2026-10-03T09:08:13.813165	{'source': 'repomanager', 'hash': '8c16ea6c2777800fc3437dd1016f786c88a97730', 'branch': 'master', 'shortrev': '2609-50', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14797 from acts-1631/security/netplay-buffer-limit\n\nNetPlay: reject oversized input buffer messages', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8c16ea6c2777800fc3437dd1016f786c88a97730', 'type': 'new_dev_version'}
2026-10-03T07:53:17.518503	{'source': 'repomanager', 'hash': 'af1ab20b356d288208e7324512efed4b0913f79e', 'branch': 'master', 'shortrev': '2609-48', 'author': 'JosJuice', 'message': 'Merge pull request #14812 from JoshuaVandaele/correct-env-locale\n\nFix crashes when using `std::locale{""}` with an invalid LC_ALL', 'url': 'https://github.com/dolphin-emu/dolphin/commit/af1ab20b356d288208e7324512efed4b0913f79e', 'type': 'new_dev_version'}
2026-10-03T06:05:19.445201	{'source': 'repomanager', 'hash': 'f76238742c70a3db637f2037b0ed380be4bdead1', 'branch': 'master', 'shortrev': '2609-46', 'author': 'Jordan Woyak', 'message': "Merge pull request #14328 from JoshuaVandaele/choices-fix\n\nDolphinTool: Show choices as metavars, and don't lie about defaults", 'url': 'https://github.com/dolphin-emu/dolphin/commit/f76238742c70a3db637f2037b0ed380be4bdead1', 'type': 'new_dev_version'}
2026-10-03T03:04:22.217883	{'source': 'repomanager', 'hash': 'a0c3ab78d391ff4703fed5a1d583e947dc8e7750', 'branch': 'master', 'shortrev': '2609-44', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14772 from sepalani/mic-cleanup\n\nEXI_DeviceMic: Cleanup and small improvements', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0c3ab78d391ff4703fed5a1d583e947dc8e7750', 'type': 'new_dev_version'}
2026-10-03T01:29:58.006397	{'source': 'repomanager', 'hash': '13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2', 'branch': 'master', 'shortrev': '2609-35', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14845 from Tilka/generate_coefs\n\ngenerate_coefs.py: fix compatibility with modern NumPy', 'url': 'https://github.com/dolphin-emu/dolphin/commit/13e4143470cc7fc2c556c3b8ef94ebf7bc15b3e2', 'type': 'new_dev_version'}
2026-10-02T23:24:12.704431	{'source': 'repomanager', 'hash': '8a40a9c01d01e768d37e6296b1bd1c836af1a264', 'branch': 'master', 'shortrev': '2609-33', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14897 from jordan-woyak/gba-button-bits\n\nGBAPadEmu: Make GBAPad::GetInput use actual GBA button values.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8a40a9c01d01e768d37e6296b1bd1c836af1a264', 'type': 'new_dev_version'}
2026-10-02T18:56:04.866273	{'source': 'repomanager', 'hash': 'a475aba718746e7656e2e6b6e047dc98a4d05879', 'branch': 'master', 'shortrev': '2609-31', 'author': 'JosJuice', 'message': 'Merge pull request #14857 from ChaseParate/chaseparate-android-add-reset-menu-item\n\nAndroid: Add reset item to emulation menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a475aba718746e7656e2e6b6e047dc98a4d05879', 'type': 'new_dev_version'}
2026-10-02T17:58:20.989985	{'source': 'repomanager', 'hash': 'bd094a0de5bccd4a0a14ab6a14810e31df45eb48', 'branch': 'master', 'shortrev': '2609-29', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14890 from lihanchen/master\n\nAndroid: Fix UI text truncation in 4K TV UI', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bd094a0de5bccd4a0a14ab6a14810e31df45eb48', 'type': 'new_dev_version'}
2026-10-02T17:55:40.062106	{'source': 'repomanager', 'hash': '5c2f8aec222289f0166be7dca984bd60cddbba36', 'branch': 'master', 'shortrev': '2609-27', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14861 from matellush/flatpak/libevdev\n\nFlatpak: Bump `libevdev` to `1.13.7`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5c2f8aec222289f0166be7dca984bd60cddbba36', 'type': 'new_dev_version'}
2026-10-02T17:53:52.172922	{'source': 'repomanager', 'hash': '418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7', 'branch': 'master', 'shortrev': '2609-25', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14894 from jordan-woyak/petz-gamesettingz\n\nGameSettings: Add some required settings for Petz games.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/418f0cb7d3af7436b2abba9a99a2d5f7643ff3e7', 'type': 'new_dev_version'}
2026-10-02T17:52:33.770885	{'source': 'repomanager', 'hash': '061f3e95bbe925bc52e1b491e586dcf039481d61', 'branch': 'master', 'shortrev': '2609-23', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14863 from brad0/openbsd_getexecpath\n\nImplement File::GetExePath() for OpenBSD with getexecpath()', 'url': 'https://github.com/dolphin-emu/dolphin/commit/061f3e95bbe925bc52e1b491e586dcf039481d61', 'type': 'new_dev_version'}
2026-10-02T17:50:41.606551	{'source': 'repomanager', 'hash': '8e7521c46eb674119038c9a5e19f103be0251ac8', 'branch': 'master', 'shortrev': '2609-21', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14900 from VampireFlower/assembler-fix\n\nAssembler: Fix crash from assembling malformed source', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8e7521c46eb674119038c9a5e19f103be0251ac8', 'type': 'new_dev_version'}
2026-10-02T10:29:36.478380	{'source': 'repomanager', 'hash': '24c80c5a32d9429bcd8e7b0b90d7b61763782009', 'branch': 'master', 'shortrev': '2609-19', 'author': 'JMC47', 'message': 'Merge pull request #14590 from jordan-woyak/mmu-256-mem2\n\nPowerPC/MMU: Change mask in DMA_LCToMemory and DMA_MemoryToLC functions to allow for a 256MiB MEM2.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/24c80c5a32d9429bcd8e7b0b90d7b61763782009', 'type': 'new_dev_version'}
2026-10-02T08:48:24.052107	{'source': 'repomanager', 'hash': '045c19b25636334865350d13da5f138bf7956bce', 'branch': 'master', 'shortrev': '2609-17', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14855 from JordanTheToaster/SDL-Has-Shoes-Now\n\nExternals/SDL: Update to release-3.4.16', 'url': 'https://github.com/dolphin-emu/dolphin/commit/045c19b25636334865350d13da5f138bf7956bce', 'type': 'new_dev_version'}
2026-10-02T08:47:28.805938	{'source': 'repomanager', 'hash': '8fe19d11187889de269f1fd01a23116f2de343ea', 'branch': 'master', 'shortrev': '2609-15', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14860 from JoshuaVandaele/inputsyntax-nodecimal\n\nInput Syntax: Add floor, ceil, round, and trunc functions', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8fe19d11187889de269f1fd01a23116f2de343ea', 'type': 'new_dev_version'}
2026-10-02T05:58:24.438620	{'source': 'repomanager', 'hash': '5390a61e521013738a75102daa43513d79423192', 'branch': 'master', 'shortrev': '2609-13', 'author': 'JMC47', 'message': 'Merge pull request #14880 from ICEREG1992/GBARouting\n\nIntegrated GBA Audio Routing', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5390a61e521013738a75102daa43513d79423192', 'type': 'new_dev_version'}
2026-10-01T20:38:02.927082	{'source': 'repomanager', 'hash': '048e6306b82b183d061ee33c4ee32d5e76f3f09a', 'branch': 'master', 'shortrev': '2609-11', 'author': 'JMC47', 'message': 'Merge pull request #14717 from SuperSamus/skylanders-swap-force-speed-hack\n\nGameSettings: Add speed hack for Skylanders: Swap Force', 'url': 'https://github.com/dolphin-emu/dolphin/commit/048e6306b82b183d061ee33c4ee32d5e76f3f09a', 'type': 'new_dev_version'}
2026-09-28T06:24:32.753974	{'source': 'repomanager', 'hash': '5102a0339c2177575378107b76541e47cc52122d', 'branch': 'master', 'shortrev': '2609-7', 'author': 'JosJuice', 'message': 'Merge pull request #14893 from tom-pratt/android-settings-crash\n\nFix android settings crash on API level 28 and lower', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5102a0339c2177575378107b76541e47cc52122d', 'type': 'new_dev_version'}
2026-09-27T20:00:05.026876	{'source': 'repomanager', 'hash': 'bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd', 'branch': 'master', 'shortrev': '2609-5', 'author': 'JosJuice', 'message': 'Merge pull request #14892 from JosJuice/android-abis\n\nAndroid: Set abiFilters for ndk', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bb3558a70ecb767ca59c23bbe06fb6bcb78cd3bd', 'type': 'new_dev_version'}
2026-09-24T21:42:43.885661	{'source': 'repomanager', 'hash': '465c652da1dc0b3048089701a1885084821c9574', 'branch': 'master', 'shortrev': '2609-3', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14887 from SuperSamus/statistics-unsigned-members\n\nVideoCommon/Statistics: Use unsigned int where appropriate', 'url': 'https://github.com/dolphin-emu/dolphin/commit/465c652da1dc0b3048089701a1885084821c9574', 'type': 'new_dev_version'}
2026-09-24T03:53:48.548769	{'source': 'repomanager', 'hash': '0d93fc035539f25790deca638d06ee3b3b45ee64', 'branch': 'master', 'shortrev': '2609-1', 'author': 'OatmealDome', 'message': "Merge branch 'release-prep-2609'", 'url': 'https://github.com/dolphin-emu/dolphin/commit/0d93fc035539f25790deca638d06ee3b3b45ee64', 'type': 'new_dev_version'}
2026-09-23T22:25:36.305976	{'source': 'repomanager', 'hash': 'f84df02055ab9610feec48e65648cac5a3c098fa', 'branch': 'release-prep-2609', 'shortrev': '2606-406', 'author': 'OatmealDome', 'message': 'ScmRevGen: Bump version to 2609', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f84df02055ab9610feec48e65648cac5a3c098fa', 'type': 'new_dev_version'}
2026-09-23T22:25:36.235618	{'source': 'repomanager', 'hash': 'd085f97001ca4cdd1adfc3d20695cb59967fab7f', 'branch': 'release-prep-2609', 'shortrev': '2606-405', 'author': 'OatmealDome', 'message': "Merge branch 'release-prep-2606a' into release-prep-2609", 'url': 'https://github.com/dolphin-emu/dolphin/commit/d085f97001ca4cdd1adfc3d20695cb59967fab7f', 'type': 'new_dev_version'}

Recent 'new_release_version' events

2026-09-24T03:09:29.731289	{'source': 'repomanager', 'hash': 'f84df02055ab9610feec48e65648cac5a3c098fa', 'tag': '2609', 'author': 'OatmealDome', 'type': 'new_release_version'}

Recent 'notification' events

2026-10-04T21:17:27.724797	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-win-dbg-x64]: \x1f\x0302https://dolphin.ci/#/builders/31/builds/10672\x03\x1f', 'type': 'notification'}
2026-10-04T21:16:35.216467	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-win-arm64]: \x1f\x0302https://dolphin.ci/#/builders/13/builds/10663\x03\x1f', 'type': 'notification'}
2026-10-04T21:14:57.612965	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14913 \x0304failed\x03 on builders [pr-android, pr-freebsd-x64, pr-osx-universal, pr-win-x64]: \x1f\x0302https://dolphin.ci/#/builders/7/builds/10683\x03\x1f', 'type': 'notification'}
2026-10-04T21:11:12.963560	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 opened pull request #14913: Common: Introduce MD5Context class and ComputeMD5 function to minimize mbedtls dependence. (\x0306master\x03...\x0306md5\x03): \x1f\x0302https://dolp.in/pr14913\x03\x1f', 'type': 'notification'}
2026-10-04T21:09:45.255256	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303a\ufeffcts-1631\x03 commented on #14912 (VideoCommon: validate restored FIFO pointers): \x1f\x0302https://dolp.in/pr14912#issuecomment-5984410233\x03\x1f', 'type': 'notification'}
2026-10-04T21:08:17.992240	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14912 \x0304failed\x03 on builders [default]: \x1f\x0302<no url>\x03\x1f', 'type': 'notification'}
2026-10-04T21:07:46.873902	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303a\ufeffcts-1631\x03 opened pull request #14912: VideoCommon: validate restored FIFO pointers (\x0306master\x03...\x0306savestate-fifo-pointer-validation\x03): \x1f\x0302https://dolp.in/pr14912\x03\x1f', 'type': 'notification'}
2026-10-04T21:06:31.013862	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303a\ufeffcts-1631\x03 commented on #14911 (NetPlay: reject oversized Wii save banners): \x1f\x0302https://dolp.in/pr14911#issuecomment-5984383370\x03\x1f', 'type': 'notification'}
2026-10-04T21:04:05.920313	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14911 \x0304failed\x03 on builders [default]: \x1f\x0302<no url>\x03\x1f', 'type': 'notification'}
2026-10-04T21:03:34.769402	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303a\ufeffcts-1631\x03 opened pull request #14911: NetPlay: reject oversized Wii save banners (\x0306master\x03...\x0306netplay-save-banner-validation\x03): \x1f\x0302https://dolp.in/pr14911\x03\x1f', 'type': 'notification'}
2026-10-04T20:42:23.270590	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303e\ufeffndercodezz\x03 commented on #14909 (WiimoteEmu: support relative input in Swing mappings): \x1f\x0302https://dolp.in/pr14909#issuecomment-5984189121\x03\x1f', 'type': 'notification'}
2026-10-04T20:39:34.610562	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14909 \x0304failed\x03 on builders [default]: \x1f\x0302<no url>\x03\x1f', 'type': 'notification'}
2026-10-04T20:39:04.987456	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303e\ufeffndercodezz\x03 edited pull request #14909: WiimoteEmu: support relative input in Swing mappings (\x0306master\x03...\x0306codex/mouse-wiimote-motion\x03): \x1f\x0302https://dolp.in/pr14909\x03\x1f', 'type': 'notification'}
2026-10-04T20:39:03.360191	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303e\ufeffndercodezz\x03 synchronized pull request #14909: WiimoteEmu: support relative input in Swing mappings (\x0306master\x03...\x0306codex/mouse-wiimote-motion\x03): \x1f\x0302https://dolp.in/pr14909\x03\x1f', 'type': 'notification'}
2026-10-04T20:33:14.605650	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14910 \x0304failed\x03 on builders [pr-win-dbg-x64]: \x1f\x0302https://dolphin.ci/#/builders/31/builds/10670\x03\x1f', 'type': 'notification'}
2026-10-04T20:27:45.108374	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14909 \x0304failed\x03 on builders [default]: \x1f\x0302<no url>\x03\x1f', 'type': 'notification'}
2026-10-04T20:27:16.051080	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303e\ufeffndercodezz\x03 edited pull request #14909: WiimoteEmu: support relative input in Swing mappings (\x0306master\x03...\x0306codex/mouse-wiimote-motion\x03): \x1f\x0302https://dolp.in/pr14909\x03\x1f', 'type': 'notification'}
2026-10-04T20:27:13.981022	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303e\ufeffndercodezz\x03 synchronized pull request #14909: WiimoteEmu: add optional mouse motion with pointer separation (\x0306master\x03...\x0306codex/mouse-wiimote-motion\x03): \x1f\x0302https://dolp.in/pr14909\x03\x1f', 'type': 'notification'}
2026-10-04T20:25:16.148276	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14910 \x0304failed\x03 on builders [pr-deb-dbg-x64, pr-win-arm64]: \x1f\x0302https://dolphin.ci/#/builders/13/builds/10661\x03\x1f', 'type': 'notification'}
2026-10-04T20:19:58.059385	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14910 \x0304failed\x03 on builders [pr-osx-universal]: \x1f\x0302https://dolphin.ci/#/builders/7/builds/10681\x03\x1f', 'type': 'notification'}
2026-10-04T20:18:26.374471	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14910 \x0304failed\x03 on builders [pr-flatpak-x64]: \x1f\x0302https://dolphin.ci/#/builders/43/builds/5810\x03\x1f', 'type': 'notification'}
2026-10-04T20:15:19.716861	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14910 \x0304failed\x03 on builders [pr-win-x64]: \x1f\x0302https://dolphin.ci/#/builders/2/builds/10664\x03\x1f', 'type': 'notification'}
2026-10-04T20:09:32.461096	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14910: WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls. (\x0306master\x03...\x0306motionplus-no-mbedtls\x03): \x1f\x0302https://dolp.in/pr14910\x03\x1f', 'type': 'notification'}
2026-10-04T20:07:14.868987	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 opened pull request #14910: WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls. (\x0306master\x03...\x0306motionplus-no-mbedtls\x03): \x1f\x0302https://dolp.in/pr14910\x03\x1f', 'type': 'notification'}
2026-10-04T19:06:49.140608	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffoshuaVandaele\x03 commented on #14902 (UICommon: Add Web Interface for streaming integrated GBAs.): \x1f\x0302https://dolp.in/pr14902#issuecomment-5983378818\x03\x1f', 'type': 'notification'}

Recent 'pull_request_fifoci_status' events

2026-10-04T21:10:12.900018	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14878, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:56:10.000481	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14910, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:52:39.071056	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14910, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:40:46.228401	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14910, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:39:50.922328	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14878, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:18:08.908737	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14878, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:14:21.936973	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14878, 'type': 'pull_request_fifoci_status'}
2026-10-04T20:07:19.654081	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14878, 'type': 'pull_request_fifoci_status'}
2026-10-04T16:05:49.175820	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T16:03:01.015152	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T15:53:33.487008	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T15:52:10.585445	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T15:39:19.338130	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:50:17.671856	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '74e7042e8f10a53b0013f6e6f85171b9e5899167', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:42:25.308221	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '74e7042e8f10a53b0013f6e6f85171b9e5899167', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:39:25.434994	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '74e7042e8f10a53b0013f6e6f85171b9e5899167', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:29:57.339948	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '74e7042e8f10a53b0013f6e6f85171b9e5899167', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:16:39.946551	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '35c58f314698844af9f39e2dfd5235fbe4e59991', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:15:41.057499	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '74e7042e8f10a53b0013f6e6f85171b9e5899167', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T12:06:00.535238	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '35c58f314698844af9f39e2dfd5235fbe4e59991', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T11:48:35.107628	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b66a8d56f2a528709702c6a805291b6097c2c5bf', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T11:47:49.662936	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b66a8d56f2a528709702c6a805291b6097c2c5bf', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T11:34:19.488983	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'b66a8d56f2a528709702c6a805291b6097c2c5bf', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T10:44:46.251487	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 13686, 'type': 'pull_request_fifoci_status'}
2026-10-04T10:39:54.610561	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'aac2e830a93fea36dc4049ca1b8933bc23db6809', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13686, 'type': 'pull_request_fifoci_status'}

Recent 'raw_bb_hook' events

2026-10-04T21:17:01.888700	{'source': 'webserver', 'raw': {'buildid': 191198, 'number': 5812, 'builderid': 43, 'buildrequestid': 191679, 'workerid': 13, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148614, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'workername': ['altair-flatpak', 'Worker'], 'buildnumber': [5812, 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'builderid': [43, 'Builder'], 'project': ['', 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/12883', 'SetPropertyFromCommand Step'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 191679, 'buildsetid': 43091, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5812'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:56.968270	{'source': 'webserver', 'raw': {'buildid': 191206, 'number': 10672, 'builderid': 31, 'buildrequestid': 191678, 'workerid': 4, 'masterid': 1, 'started_at': 1791148549, 'complete_at': 1791148604, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10672, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step'], 'warnings-count': [1, 'WarningCountingShellCommand'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191678, 'buildsetid': 43091, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1791148549, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/10672'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:23.451183	{'source': 'webserver', 'raw': {'buildid': 191205, 'number': 10664, 'builderid': 1, 'buildrequestid': 191669, 'workerid': 9, 'masterid': 1, 'started_at': 1791148439, 'complete_at': 1791148569, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'basedir': ['/buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [1, 'Builder'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'buildnumber': [10664, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14913/head', 'Build'], 'codebase': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191669, 'buildsetid': 43091, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1791148439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10664'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:19.849316	{'source': 'webserver', 'raw': {'buildid': 191197, 'number': 5753, 'builderid': 44, 'buildrequestid': 191680, 'workerid': 14, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148572, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'builderid': [44, 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [5753, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/12882', 'SetPropertyFromCommand Step'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 191680, 'buildsetid': 43091, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5753'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:04.431226	{'source': 'webserver', 'raw': {'buildid': 191204, 'number': 10663, 'builderid': 13, 'buildrequestid': 191674, 'workerid': 4, 'masterid': 1, 'started_at': 1791148404, 'complete_at': 1791148549, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-14913', 'Change'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10663, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 191674, 'buildsetid': 43091, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1791148404, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:16:03.790671	{'source': 'webserver', 'raw': {'buildid': 191206, 'number': 10672, 'builderid': 31, 'buildrequestid': 191678, 'workerid': 4, 'masterid': 1, 'started_at': 1791148549, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10672, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [31, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191678, 'buildsetid': 43091, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1791148549, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/10672'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:41.312003	{'source': 'webserver', 'raw': {'buildid': 191203, 'number': 10665, 'builderid': 27, 'buildrequestid': 191677, 'workerid': 10, 'masterid': 1, 'started_at': 1791148291, 'complete_at': 1791148440, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-ubu-x64', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'branchname': ['pr-14913', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-ubu-x64', 'Builder'], 'builderid': [27, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [10665, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191677, 'buildsetid': 43091, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1791148291, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1791148284, 'complete_at': 1791148440, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/10665'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:41.183126	{'source': 'webserver', 'raw': {'buildid': 191205, 'number': 10664, 'builderid': 1, 'buildrequestid': 191669, 'workerid': 9, 'masterid': 1, 'started_at': 1791148439, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'pr_id': [14913, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [1, 'Builder'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'buildnumber': [10664, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'workername': ['debian', 'Worker'], 'branch': ['refs/pull/14913/head', 'Build'], 'codebase': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191669, 'buildsetid': 43091, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1791148439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10664'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:41.104108	{'source': 'webserver', 'raw': {'buildid': 191199, 'number': 10663, 'builderid': 26, 'buildrequestid': 191676, 'workerid': 9, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148439, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'builderid': [26, 'Builder'], 'workername': ['debian', 'Worker'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'shortrev': ['61ee18', 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'project': ['', 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'buildnumber': [10663, 'Build'], 'codebase': ['', 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 191676, 'buildsetid': 43091, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:26.632883	{'source': 'webserver', 'raw': {'buildid': 191196, 'number': 10666, 'builderid': 2, 'buildrequestid': 191670, 'workerid': 4, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148404, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'buildername': ['pr-win-x64', 'Builder'], 'builderid': [2, 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'branchname': ['pr-14913', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [10666, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [1, 'WarningCountingShellCommand'], 'builddir': ['c:\\buildbot\\pr-win-x64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'sln_exists': ['false', 'SetPropertyFromCommand Step']}, 'buildrequest': {'buildrequestid': 191670, 'buildsetid': 43091, 'builderid': 2, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 2, 'name': 'pr-win-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/2/builds/10666'}, 'type': 'raw_bb_hook'}
2026-10-04T21:14:26.092271	{'source': 'webserver', 'raw': {'buildid': 191204, 'number': 10663, 'builderid': 13, 'buildrequestid': 191674, 'workerid': 4, 'masterid': 1, 'started_at': 1791148404, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [10663, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191674, 'buildsetid': 43091, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1791148404, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:13:59.863191	{'source': 'webserver', 'raw': {'buildid': 191202, 'number': 10670, 'builderid': 11, 'buildrequestid': 191673, 'workerid': 1, 'masterid': 1, 'started_at': 1791148285, 'complete_at': 1791148310, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'builderid': [11, 'Builder'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['freebsd', 'Worker'], 'branchname': ['pr-14913', 'Change'], 'buildnumber': [10670, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 191673, 'buildsetid': 43091, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1791148284, 'complete_at': 1791148310, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10670'}, 'type': 'raw_bb_hook'}
2026-10-04T21:13:56.471722	{'source': 'webserver', 'raw': {'buildid': 191200, 'number': 10669, 'builderid': 22, 'buildrequestid': 191675, 'workerid': 12, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148311, 'locks_duration_s': 0, 'complete': True, 'state_string': 'Gradle (failure)', 'results': 2, 'properties': {'branchname': ['pr-14913', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildername': ['pr-android', 'Builder'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build'], 'workername': ['android', 'Worker'], 'buildnumber': [10669, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'builderid': [22, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-android', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191675, 'buildsetid': 43091, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1791148284, 'complete_at': 1791148311, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 22, 'name': 'pr-android', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/22/builds/10669'}, 'type': 'raw_bb_hook'}
2026-10-04T21:13:54.883958	{'source': 'webserver', 'raw': {'buildid': 191195, 'number': 10668, 'builderid': 9, 'buildrequestid': 191672, 'workerid': 10, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148291, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14913', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'builderid': [9, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [10668, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['lint', 'Builder'], 'project': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/lint', 'Worker'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 191672, 'buildsetid': 43091, 'builderid': 9, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1791148284, 'complete_at': 1791148291, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 9, 'name': 'lint', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/9/builds/10668'}, 'type': 'raw_bb_hook'}
2026-10-04T21:13:54.534481	{'source': 'webserver', 'raw': {'buildid': 191201, 'number': 10683, 'builderid': 7, 'buildrequestid': 191671, 'workerid': 8, 'masterid': 1, 'started_at': 1791148284, 'complete_at': 1791148350, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed configure (failure)', 'results': 2, 'properties': {'shortrev': ['61ee18', 'Change'], 'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'project': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'builddir': ['/Users/ci/worker/base/pr-osx-universal', 'Worker'], 'pr_id': [14913, 'Change'], 'builderid': [7, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'got_revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'GitNoBranch'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-osx-universal', 'Builder'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildnumber': [10683, 'Build']}, 'buildrequest': {'buildrequestid': 191671, 'buildsetid': 43091, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1791148284, 'complete_at': 1791148350, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10683'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:58.613740	{'source': 'webserver', 'raw': {'buildid': 191203, 'number': 10665, 'builderid': 27, 'buildrequestid': 191677, 'workerid': 10, 'masterid': 1, 'started_at': 1791148291, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'branchname': ['pr-14913', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-ubu-x64', 'Builder'], 'builderid': [27, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [10665, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191677, 'buildsetid': 43091, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1791148291, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/10665'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:55.977474	{'source': 'webserver', 'raw': {'buildid': 191202, 'number': 10670, 'builderid': 11, 'buildrequestid': 191673, 'workerid': 1, 'masterid': 1, 'started_at': 1791148285, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'builderid': [11, 'Builder'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['freebsd', 'Worker'], 'branchname': ['pr-14913', 'Change'], 'buildnumber': [10670, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change']}, 'buildrequest': {'buildrequestid': 191673, 'buildsetid': 43091, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10670'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:54.936758	{'source': 'webserver', 'raw': {'buildid': 191196, 'number': 10666, 'builderid': 2, 'buildrequestid': 191670, 'workerid': 4, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'buildername': ['pr-win-x64', 'Builder'], 'builderid': [2, 'Builder'], 'workername': ['windows', 'Worker'], 'project': ['', 'Build'], 'branchname': ['pr-14913', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [10666, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191670, 'buildsetid': 43091, 'builderid': 2, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 2, 'name': 'pr-win-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/2/builds/10666'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:53.839123	{'source': 'webserver', 'raw': {'buildid': 191200, 'number': 10669, 'builderid': 22, 'buildrequestid': 191675, 'workerid': 12, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildername': ['pr-android', 'Builder'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build'], 'workername': ['android', 'Worker'], 'buildnumber': [10669, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'builderid': [22, 'Builder'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191675, 'buildsetid': 43091, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 22, 'name': 'pr-android', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/22/builds/10669'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:52.660349	{'source': 'webserver', 'raw': {'buildid': 191199, 'number': 10663, 'builderid': 26, 'buildrequestid': 191676, 'workerid': 9, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'builderid': [26, 'Builder'], 'workername': ['debian', 'Worker'], 'pr_id': [14913, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'shortrev': ['61ee18', 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'project': ['', 'Build'], 'buildnumber': [10663, 'Build'], 'codebase': ['', 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191676, 'buildsetid': 43091, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10663'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:52.052212	{'source': 'webserver', 'raw': {'buildid': 191195, 'number': 10668, 'builderid': 9, 'buildrequestid': 191672, 'workerid': 10, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'builderid': [9, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [10668, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['lint', 'Builder'], 'project': ['', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191672, 'buildsetid': 43091, 'builderid': 9, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 9, 'name': 'lint', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/9/builds/10668'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:51.376296	{'source': 'webserver', 'raw': {'buildid': 191201, 'number': 10683, 'builderid': 7, 'buildrequestid': 191671, 'workerid': 8, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['61ee18', 'Change'], 'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'project': ['', 'Build'], 'pr_id': [14913, 'Change'], 'builderid': [7, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-osx-universal', 'Builder'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildnumber': [10683, 'Build']}, 'buildrequest': {'buildrequestid': 191671, 'buildsetid': 43091, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/10683'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:16.708907	{'source': 'webserver', 'raw': {'buildid': 191198, 'number': 5812, 'builderid': 43, 'buildrequestid': 191679, 'workerid': 13, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'shortrev': ['61ee18', 'Change'], 'pr_id': [14913, 'Change'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'workername': ['altair-flatpak', 'Worker'], 'buildnumber': [5812, 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14913/head', 'Build'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'builderid': [43, 'Builder'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 191679, 'buildsetid': 43091, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5812'}, 'type': 'raw_bb_hook'}
2026-10-04T21:12:15.726642	{'source': 'webserver', 'raw': {'buildid': 191197, 'number': 5753, 'builderid': 44, 'buildrequestid': 191680, 'workerid': 14, 'masterid': 1, 'started_at': 1791148284, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14913', 'Change'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['61ee18', 'Change'], 'headrev': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Change'], 'pr_id': [14913, 'Change'], 'builderid': [44, 'Builder'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [5753, 'Build'], 'branch': ['refs/pull/14913/head', 'Build'], 'revision': ['61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build']}, 'buildrequest': {'buildrequestid': 191680, 'buildsetid': 43091, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1791148284, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1791148284, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43091, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1791148284, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12941, 'branch': 'refs/pull/14913/head', 'revision': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791148284, '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/5753'}, 'type': 'raw_bb_hook'}
2026-10-04T21:10:24.412144	{'source': 'webserver', 'raw': {'buildid': 191193, 'number': 5328, 'builderid': 41, 'buildrequestid': 191663, 'workerid': 5, 'masterid': 1, 'started_at': 1791148212, 'complete_at': 1791148213, 'locks_duration_s': 0, 'complete': True, 'state_string': 'update (failure)', 'results': 2, 'properties': {'headrev': ['3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'Trigger'], 'pr_id': [14910, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [41, 'Builder'], 'buildnumber': [5328, 'Build'], 'branch': ['refs/pull/14910/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'baserev': ['eb236466c4f0ec8bef619add0972353d3996fe6c', 'Change'], 'shortrev': ['3335bb', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'branchname': ['pr-14910', 'Trigger'], 'revision': ['3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'Build'], 'codebase': ['', 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-vk-lin-mesa', 'Worker']}, 'buildrequest': {'buildrequestid': 191663, 'buildsetid': 43087, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1791148212, 'claimed_by_masterid': 1, 'complete': True, 'results': 2, 'submitted_at': 1791145264, 'complete_at': 1791148213, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 43087, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1791145264, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 191167, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 12939, 'branch': 'refs/pull/14910/head', 'revision': '3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1791144446, 'patch': None}]}, 'parentbuild': {'buildid': 191167, 'number': 10663, 'builderid': 27, 'buildrequestid': 191645, 'workerid': 10, 'masterid': 1, 'started_at': 1791144451, 'complete_at': 1791145264, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 41, 'name': 'pr-fifoci-vk-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/41/builds/5328'}, 'type': 'raw_bb_hook'}

Recent 'raw_gh_hook' events

2026-10-04T21:11:12.962554	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14913, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14913', 'id': 4737653104, 'node_id': 'PR_kwDOALCn2M8AAAABGmLZcA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14913', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14913.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14913.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14913', 'number': 14913, 'state': 'open', 'locked': False, 'title': 'Common: Introduce MD5Context class and ComputeMD5 function to minimize mbedtls dependence.', '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 localizes `mbedtls/md5.h` inclusion to just Hash.cpp\r\n\r\nI'm trying to minimize our dependence on mbedtls in general.", 'created_at': '2026-10-04T21:11:10Z', 'updated_at': '2026-10-04T21:11:10Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14913/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14913/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/14913/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', 'head': {'label': 'jordan-woyak:md5', 'ref': 'md5', 'sha': '61ee186a4b9743c1de5ebfcbb60bcfe9be658f10', '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': '2026-06-27T21:22:47Z', 'pushed_at': '2026-10-04T21:07:35Z', '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': 527774, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 479, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 479, 'watchers': 15614, '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/14913'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14913'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14913'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14913/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14913/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/14913/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/61ee186a4b9743c1de5ebfcbb60bcfe9be658f10'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': 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': 4, 'additions': 65, 'deletions': 14, 'changed_files': 6}, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 479, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 479, 'watchers': 15614, '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'}
2026-10-04T21:09:45.255027	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'id': 5703322375, 'node_id': 'PR_kwDOALCn2M8AAAABGmKNGA', 'number': 14912, 'title': 'VideoCommon: validate restored FIFO pointers', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T21:07:44Z', 'updated_at': '2026-10-04T21:09:43Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.patch', 'merged_at': None}, 'body': 'Save states restore `FifoManager`\'s video buffer pointers through `PointerWrap::DoPointer`. The serialized offsets were not checked against `m_video_buffer`, so a crafted state could restore an out-of-range write pointer. `FifoManager::ReadDataFromFifo` would then copy gather-pipe data through that native pointer, causing an out-of-bounds write. Individually valid but reversed read and write pointers could also underflow FIFO length calculations.\n\nMake `PointerWrap::DoPointer` require the backing element count and reject offsets outside the array. `FifoManager::DoState` supplies `FIFO_SIZE` for both pointers and rejects a read pointer after the write pointer. The serialized state layout remains unchanged, and the valid one-past pointer is preserved.\n\nFixes: 0ae9e398c8e0 ("Rejigger some FIFO buffer variables to be more rational.")\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/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/14912/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984410233', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912#issuecomment-5984410233', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912', 'id': 5984410233, 'node_id': 'IC_kwDOALCn2M8AAAABZLLaeQ', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T21:09:43Z', 'updated_at': '2026-10-04T21:09:43Z', 'body': 'cc @comex', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984410233/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 478, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 478, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T21:07:46.872846	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14912, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912', 'id': 4737633560, 'node_id': 'PR_kwDOALCn2M8AAAABGmKNGA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14912', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14912.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912', 'number': 14912, 'state': 'open', 'locked': False, 'title': 'VideoCommon: validate restored FIFO pointers', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Save states restore `FifoManager`\'s video buffer pointers through `PointerWrap::DoPointer`. The serialized offsets were not checked against `m_video_buffer`, so a crafted state could restore an out-of-range write pointer. `FifoManager::ReadDataFromFifo` would then copy gather-pipe data through that native pointer, causing an out-of-bounds write. Individually valid but reversed read and write pointers could also underflow FIFO length calculations.\n\nMake `PointerWrap::DoPointer` require the backing element count and reject offsets outside the array. `FifoManager::DoState` supplies `FIFO_SIZE` for both pointers and rejects a read pointer after the write pointer. The serialized state layout remains unchanged, and the valid one-past pointer is preserved.\n\nFixes: 0ae9e398c8e0 ("Rejigger some FIFO buffer variables to be more rational.")\n', 'created_at': '2026-10-04T21:07:44Z', 'updated_at': '2026-10-04T21:07:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912/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/14912/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f5438ce0c37fd16235af6a054775cf9d3af15e5d', 'head': {'label': 'acts-1631:savestate-fifo-pointer-validation', 'ref': 'savestate-fifo-pointer-validation', 'sha': 'f5438ce0c37fd16235af6a054775cf9d3af15e5d', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1306115185, 'node_id': 'R_kgDOTdm8cQ', 'name': 'dolphin', 'full_name': 'acts-1631/dolphin', 'private': False, 'owner': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/acts-1631/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/acts-1631/dolphin', 'forks_url': 'https://api.github.com/repos/acts-1631/dolphin/forks', 'keys_url': 'https://api.github.com/repos/acts-1631/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/acts-1631/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/acts-1631/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/acts-1631/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/acts-1631/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/acts-1631/dolphin/events', 'assignees_url': 'https://api.github.com/repos/acts-1631/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/acts-1631/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/acts-1631/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/acts-1631/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/acts-1631/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/acts-1631/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/acts-1631/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/acts-1631/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/acts-1631/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/acts-1631/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/acts-1631/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/acts-1631/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/acts-1631/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/acts-1631/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/acts-1631/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/acts-1631/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/acts-1631/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/acts-1631/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/acts-1631/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/acts-1631/dolphin/merges', 'archive_url': 'https://api.github.com/repos/acts-1631/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/acts-1631/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/acts-1631/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/acts-1631/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/acts-1631/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/acts-1631/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/acts-1631/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/acts-1631/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/acts-1631/dolphin/deployments', 'created_at': '2026-07-20T01:24:19Z', 'updated_at': '2026-10-04T20:51:54Z', 'pushed_at': '2026-10-04T20:56:39Z', 'git_url': 'git://github.com/acts-1631/dolphin.git', 'ssh_url': 'git@github.com:acts-1631/dolphin.git', 'clone_url': 'https://github.com/acts-1631/dolphin.git', 'svn_url': 'https://github.com/acts-1631/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 523579, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 478, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 478, 'watchers': 15614, '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/14912'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14912'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14912/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14912/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/14912/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f5438ce0c37fd16235af6a054775cf9d3af15e5d'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': 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': 20, 'deletions': 5, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 478, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 478, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T21:06:31.013581	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'id': 5703291637, 'node_id': 'PR_kwDOALCn2M8AAAABGmIrcw', 'number': 14911, 'title': 'NetPlay: reject oversized Wii save banners', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T21:03:32Z', 'updated_at': '2026-10-04T21:06:28Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.patch', 'merged_at': None}, 'body': 'NetPlay Wii save synchronization reads `header.banner_size` from the host in `NetPlayClient::OnSyncSaveDataWii`. The existing bounded copy leaves an oversized value in the header, and `WiiSave::NandStorage::WriteHeader` later passes that value to `file->Write(header.banner, header.banner_size)`. A malicious host can therefore make a client read past the stack `Header` while writing the temporary NetPlay NAND.\n\nReject invalid packet extraction and banner sizes larger than `header.banner` before consuming the banner data. Valid save synchronization keeps the same wire format and behavior.\n\nFixes: 747e1e0d92ac ("NetPlay: Fix Wii save banner buffer overflow")\n', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/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/14911/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984383370', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911#issuecomment-5984383370', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911', 'id': 5984383370, 'node_id': 'IC_kwDOALCn2M8AAAABZLJxig', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T21:06:28Z', 'updated_at': '2026-10-04T21:06:28Z', 'body': 'cc @MrSynAckSter @JosJuice for input', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984383370/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 477, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 477, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T21:03:34.768656	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14911, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911', 'id': 4737608563, 'node_id': 'PR_kwDOALCn2M8AAAABGmIrcw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14911', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14911.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911', 'number': 14911, 'state': 'open', 'locked': False, 'title': 'NetPlay: reject oversized Wii save banners', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'NetPlay Wii save synchronization reads `header.banner_size` from the host in `NetPlayClient::OnSyncSaveDataWii`. The existing bounded copy leaves an oversized value in the header, and `WiiSave::NandStorage::WriteHeader` later passes that value to `file->Write(header.banner, header.banner_size)`. A malicious host can therefore make a client read past the stack `Header` while writing the temporary NetPlay NAND.\n\nReject invalid packet extraction and banner sizes larger than `header.banner` before consuming the banner data. Valid save synchronization keeps the same wire format and behavior.\n\nFixes: 747e1e0d92ac ("NetPlay: Fix Wii save banner buffer overflow")\n', 'created_at': '2026-10-04T21:03:32Z', 'updated_at': '2026-10-04T21:03:32Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911/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/14911/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c987640440cd9fda480af384aac7c554869a0cfb', 'head': {'label': 'acts-1631:netplay-save-banner-validation', 'ref': 'netplay-save-banner-validation', 'sha': 'c987640440cd9fda480af384aac7c554869a0cfb', 'user': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1306115185, 'node_id': 'R_kgDOTdm8cQ', 'name': 'dolphin', 'full_name': 'acts-1631/dolphin', 'private': False, 'owner': {'login': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/acts-1631/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/acts-1631/dolphin', 'forks_url': 'https://api.github.com/repos/acts-1631/dolphin/forks', 'keys_url': 'https://api.github.com/repos/acts-1631/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/acts-1631/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/acts-1631/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/acts-1631/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/acts-1631/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/acts-1631/dolphin/events', 'assignees_url': 'https://api.github.com/repos/acts-1631/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/acts-1631/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/acts-1631/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/acts-1631/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/acts-1631/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/acts-1631/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/acts-1631/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/acts-1631/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/acts-1631/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/acts-1631/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/acts-1631/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/acts-1631/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/acts-1631/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/acts-1631/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/acts-1631/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/acts-1631/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/acts-1631/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/acts-1631/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/acts-1631/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/acts-1631/dolphin/merges', 'archive_url': 'https://api.github.com/repos/acts-1631/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/acts-1631/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/acts-1631/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/acts-1631/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/acts-1631/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/acts-1631/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/acts-1631/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/acts-1631/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/acts-1631/dolphin/deployments', 'created_at': '2026-07-20T01:24:19Z', 'updated_at': '2026-10-04T20:51:54Z', 'pushed_at': '2026-10-04T20:56:39Z', 'git_url': 'git://github.com/acts-1631/dolphin.git', 'ssh_url': 'git@github.com:acts-1631/dolphin.git', 'clone_url': 'https://github.com/acts-1631/dolphin.git', 'svn_url': 'https://github.com/acts-1631/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 523579, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 477, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 477, 'watchers': 15614, '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/14911'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14911'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14911/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14911/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/14911/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/c987640440cd9fda480af384aac7c554869a0cfb'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': 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': 7, 'deletions': 1, 'changed_files': 1}, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 477, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 477, 'watchers': 15614, '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': 'acts-1631', 'id': 69813585, 'node_id': 'MDQ6VXNlcjY5ODEzNTg1', 'avatar_url': 'https://avatars.githubusercontent.com/u/69813585?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/acts-1631', 'html_url': 'https://github.com/acts-1631', 'followers_url': 'https://api.github.com/users/acts-1631/followers', 'following_url': 'https://api.github.com/users/acts-1631/following{/other_user}', 'gists_url': 'https://api.github.com/users/acts-1631/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/acts-1631/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/acts-1631/subscriptions', 'organizations_url': 'https://api.github.com/users/acts-1631/orgs', 'repos_url': 'https://api.github.com/users/acts-1631/repos', 'events_url': 'https://api.github.com/users/acts-1631/events{/privacy}', 'received_events_url': 'https://api.github.com/users/acts-1631/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:42:23.269737	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'id': 5701136651, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'number': 14909, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:42:21Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'merged_at': None}, 'body': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- **Additional manual test:** The PR author tested **Wii Sports Resort Swordplay** with the reworked mouse controls and reports that it plays very well. This is a separate successful manual test; it does not substitute for the pending Golf regression.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n\n", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/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/14909/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984189121', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#issuecomment-5984189121', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'id': 5984189121, 'node_id': 'IC_kwDOALCn2M8AAAABZK96wQ', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-10-04T20:42:21Z', 'updated_at': '2026-10-04T20:42:21Z', 'body': '@jordan-woyak Thanks for the review. I have pushed a rework following your suggested direction (3f3de25c70, with manual-test documentation in fe83d1acea).\n\n- The separate Mouse Motion group, state, and emulation path are removed. Relative movement now runs through the existing ControllerEmu::Force / Swing bindings, EmulateSwing, and MotionState.\n- WiimoteEmu no longer inspects backend names or applies backend-specific scaling. DInput and XInput2 expose relative mouse values on the same scale.\n- All six direction bindings, Motion Hold, and Recenter are ordinary configurable expressions, so the mode is not restricted to mouse inputs. Mouse-specific binding names are confined to a Qt convenience preset, following the existing mouse-pointing preset pattern; the backends provide a consistent side-button alias.\n\nThe distinction from existing Swing is input semantics: absolute Swing uses input as a target position and generates movement at configured speeds. The optional Relative Input mode instead treats input as displacement per update, preserving the travel and speed of a natural backswing/stroke. The original absolute mode remains the default.\n\nThe Windows x64 Release build succeeds, and all 1382 unit tests pass, including 29 Swing regression/integration tests. I manually tested the reworked mouse controls in **Wii Sports Resort Swordplay**, and they play very well. Golf passed with the previous prototype; I have not yet confirmed the Golf regression on this reworked build. Linux/X11 has not been built or tested locally.\n\nDoes this direction address your architectural concerns? I have left the review conversations open. Upstream CI is still blocked by the contributor trust gate, so a maintainer would need to authorize the build.\n', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5984189121/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, 'minimized': 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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:39:04.987107	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 14909, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- **Additional manual test:** The PR author tested **Wii Sports Resort Swordplay** with the reworked mouse controls and reports that it plays very well. This is a separate successful manual test; it does not substitute for the pending Golf regression.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n\n", 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:39:02Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'a68c83544a08ed2c537f175f343a41b7859fe549', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/fe83d1acea9893e5411503d6886241b90dc6b66b', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': 'fe83d1acea9893e5411503d6886241b90dc6b66b', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T20:39:00Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/fe83d1acea9893e5411503d6886241b90dc6b66b'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 4, 'additions': 917, 'deletions': 35, 'changed_files': 17}, 'changes': {'body': {'from': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n"}}, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:39:03.359232	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14909, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n", 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:39:01Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'a68c83544a08ed2c537f175f343a41b7859fe549', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/fe83d1acea9893e5411503d6886241b90dc6b66b', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': 'fe83d1acea9893e5411503d6886241b90dc6b66b', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T20:39:00Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/fe83d1acea9893e5411503d6886241b90dc6b66b'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 4, 'additions': 917, 'deletions': 35, 'changed_files': 17}, 'before': '3f3de25c702314e4b68eed7a0b6729743b343dcd', 'after': 'fe83d1acea9893e5411503d6886241b90dc6b66b', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:27:16.048298	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 14909, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: support relative input in Swing mappings', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "## Relative input for the existing Swing mappings\n\nSwing currently interprets its direction bindings as a target position and generates a movement using configured outward/return speeds. That does not directly preserve the travel and speed of a relative mouse gesture. This adds an optional **Relative Input** mode to the existing ControllerEmu::Force / Swing group, disabled by default. Existing position-based Swing mappings retain their behavior.\n\nIn relative mode, the same six configurable direction bindings supply displacement per update. Left/right and up/down drive a bounded arm rotation; forward/backward drive translation. Physical travel controls pose, and physical movement speed controls gyro and acceleration. Motion Hold separates gestures from pointer use; it and Recenter are ordinary editable bindings. An empty Motion Hold binding allows continuous motion, so this is usable with gamepad axes/buttons or other expression inputs as well as mice.\n\n### Implementation\n\n- Removes the prototype Mouse Motion group, internal fixed input references, MouseMotionState and independent EmulateMouseMotion path. Relative movement is integrated into **EmulateSwing**, using the existing **MotionState**, sensor/report pipeline and Swing configuration.\n- Force reads relative bindings without absolute-position reshaping or unit-radius clamping and provides overall/horizontal/vertical sensitivity. Relative input has explicit displacement semantics rather than guessing the device type.\n- Wii Remote emulation no longer inspects backend names, discovers mouse devices, rescales backend-specific values or hardcodes the new feature's mouse input/button names.\n- DInput and XInput2 expose relative mouse axes on the same count/8 scale. XInput2 reuses the existing per-input-channel RelativeInputState to preserve displacement across GUI/emulation polling. Both backends expose a consistent Mouse Side Button alias. Existing smoothed Axis and absolute Cursor inputs are unchanged; DInput clears stale relative samples after acquisition failure.\n- Qt provides **Use Mouse Controlled Swing**, following the existing mouse-pointing preset pattern. This assigns public Swing direction/modifier/recenter bindings and enables Relative Input; it imposes no mouse-only restriction on emulation. It requires relative mouse inputs, currently supported by DInput and XInput2.\n- The relative arm model retains the tested prototype's default scale (0.2 degrees/count), 50 cm arm, 20 ms rate smoothing, 20 rad/s cap, fixed axes and 85-degree bounds. Quaternion differences produce gyro consistent with the actual pose, and arm motion produces tangential/centripetal acceleration. Existing Swing Distance, Angle, Speed and Return Speed constrain the relative model. Nunchuk's shared Swing uses the same relative orientation.\n- IR and motion sensors share the relative Swing pose. Holding the modifier freezes the Point target; releasing it returns smoothly to pointing without full-arm acceleration. Input gating and update-gap checks discard stale displacement after focus changes/pauses.\n- Serializes the added MotionState fields and gesture flags and increments STATE_VERSION. Older savestates, including prototype savestates, are incompatible. Prototype Mouse Motion profile keys are removed; users apply the Swing preset and reapply any customized sensitivity.\n\nSetup and the manual regression checklist are in **docs/RelativeSwing.md**. There is no game-specific detection, report-format change or console calibration/MotionPlus protocol change. A two-axis mouse cannot independently measure roll or full six-degree-of-freedom motion. macOS/Wayland mouse presets and a Linux/X11 build have not been validated.\n\n### Validation\n\n- The PR author manually tested the previous working prototype in **Wii Sports Resort Golf**, completed a natural mouse backswing/stroke and successfully hit the ball. This establishes the prototype acceptance baseline; **the reworked Swing build still needs a fresh manual Golf regression test**.\n- Windows x64 MSVC Release build: DolphinQt and unit tests built successfully.\n- 29 Swing regression/integration tests pass. The prototype trajectories now exercise the public Force direction bindings and EmulateSwing, covering direction/intensity, fixed-axis bounds, reversal, closed paths, gyro consistency, recentering, pointer parity/stability and modifier transitions. Additional tests cover generic analog bindings, forward/backward translation, settings persistence and unchanged default absolute Swing returning to neutral.\n- Full available unit-test executable: 1382 tests pass.\n- Required clang-format 19.1.7 and git diff whitespace checks pass; the accidental FOV degree-symbol corruption has been removed from the final diff.\n\n### Upstream CI\n\nUpstream has not run builds because the contributor is not auto-trusted: `PR not built because endercodezz is not auto-trusted.` A maintainer needs to authorize the CI build. Local validation does not replace upstream Linux/platform checks.\n\n### AI assistance disclosure\n\nThe host-side relative Swing input mapping/motion synthesis, configuration and Qt preset, backend relative-input normalization/channel handling, save-state additions, regression tests and documentation were developed with AI assistance. Existing console report formats, calibration and MotionPlus protocol implementations were not changed. Per CONTRIBUTING.md, the submitting human contributor must review, understand and take responsibility for these changes.\n", 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:27:13Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f3de25c702314e4b68eed7a0b6729743b343dcd', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '3f3de25c702314e4b68eed7a0b6729743b343dcd', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T20:27:11Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f3de25c702314e4b68eed7a0b6729743b343dcd'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 3, 'additions': 915, 'deletions': 35, 'changed_files': 17}, 'changes': {'title': {'from': 'WiimoteEmu: add optional mouse motion with pointer separation'}}, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:27:13.979144	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14909, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T20:27:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f3de25c702314e4b68eed7a0b6729743b343dcd', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '3f3de25c702314e4b68eed7a0b6729743b343dcd', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T20:27:11Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f3de25c702314e4b68eed7a0b6729743b343dcd'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 3, 'additions': 915, 'deletions': 35, 'changed_files': 17}, 'before': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'after': '3f3de25c702314e4b68eed7a0b6729743b343dcd', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-10-04T20:09:32.453731	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14910, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910', 'id': 4737236629, 'node_id': 'PR_kwDOALCn2M8AAAABGlx-lQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14910', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14910.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14910.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910', 'number': 14910, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls.', '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 `magic` value was already hardcoded so there's no behavioral change.\r\nWe just now hardcode the results rather than the RNG input.", 'created_at': '2026-10-04T20:07:12Z', 'updated_at': '2026-10-04T20:09:31Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '2b79c24a8a29af478dc9772a0a6a242e595ce67c', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/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/14910/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', 'head': {'label': 'jordan-woyak:motionplus-no-mbedtls', 'ref': 'motionplus-no-mbedtls', 'sha': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', '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': '2026-06-27T21:22:47Z', 'pushed_at': '2026-10-04T20:09:29Z', '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': 527759, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14910'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14910'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/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/14910/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/bf21ff1fc4df82e92c9398eae036d1e655ac3ef6'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': 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': 40, 'deletions': 62, 'changed_files': 1}, 'before': '3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'after': 'bf21ff1fc4df82e92c9398eae036d1e655ac3ef6', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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'}
2026-10-04T20:07:14.868532	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14910, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910', 'id': 4737236629, 'node_id': 'PR_kwDOALCn2M8AAAABGlx-lQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14910', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14910.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14910.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910', 'number': 14910, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu/MotionPlus: Hardcode the challenge results to eliminate dependence on mbedtls.', '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 `magic` value was already hardcoded so there's no behavioral change.\r\nWe just now hardcode the results rather than the RNG input.", 'created_at': '2026-10-04T20:07:12Z', 'updated_at': '2026-10-04T20:07:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/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/14910/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3335bb80ceda8fbb64204a55b85adbf19d80f4f4', 'head': {'label': 'jordan-woyak:motionplus-no-mbedtls', 'ref': 'motionplus-no-mbedtls', 'sha': '3335bb80ceda8fbb64204a55b85adbf19d80f4f4', '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': '2026-06-27T21:22:47Z', 'pushed_at': '2026-10-04T20:07:04Z', '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': 527759, 'stargazers_count': 5, 'watchers_count': 5, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 5, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 5, 'open_issues': 2, 'watchers': 5, '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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/14910'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14910'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14910/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14910/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/14910/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3335bb80ceda8fbb64204a55b85adbf19d80f4f4'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': 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': 40, 'deletions': 62, 'changed_files': 1}, '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': '2026-10-04T19:55:07Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15614, 'watchers_count': 15614, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3286, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 476, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3286, 'open_issues': 476, 'watchers': 15614, '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'}
2026-10-04T19:06:49.140386	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'id': 5658953473, 'node_id': 'PR_kwDOALCn2M8AAAABGDMPMA', 'number': 14902, 'title': 'UICommon: Add Web Interface for streaming integrated GBAs.', '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)', 'archived_at': None, 'archived_by': None}, {'id': 221809816, 'node_id': 'MDU6TGFiZWwyMjE4MDk4MTY=', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/RFC', 'name': 'RFC', 'color': 'FF6D00', 'default': False, 'description': 'Request for comments', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-10-01T07:59:38Z', 'updated_at': '2026-10-04T19:06:47Z', 'closed_at': None, 'assignee': None, 'author_association': 'MEMBER', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14902', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14902.patch', 'merged_at': None}, 'body': 'This PR adds a web server to Dolphin for control of integrated GBAs.\r\n\r\n<img width="2560" height="1440" alt="image" src="https://github.com/user-attachments/assets/868f6f67-917f-40d7-a150-9e570bc77954" />\r\n\r\nThere are many future possibilities, changing settings, launching games, streaming the main window, etc. \r\nHowever, the current only feature is streaming the integrated GBAs.\r\n\r\nThere\'s no sort of authentication implemented right now.\r\nMultiple clients can connect to the same GBA (they fight over the latest button state).\r\n\r\nConnecting causes the relevant GBA window on the host-side to hide itself and audio to no longer play locally.\r\n\r\nThe main use case is playing Four Swords or Crystal Chronicles, with the GBA screens streamed to mobile devices over the local network.\r\nThis already works well.\r\n\r\nlibavcodec is used to encode to H264/Opus and stream to web browsers using some additional dependencies:\r\n- [cpp-httplib](https://github.com/yhirose/cpp-httplib) for a HTTP and WebSocket server.\r\n- [libdatachannel](https://github.com/paullouisageneau/libdatachannel) for WebRTC\r\n\r\nBoth of these dependencies require C++ exceptions.\r\nI\'ve enabled exceptions for only the required Dolphin source files.\r\n\r\nThe web server hosts files from `Sys/WebUI`\r\nI\'ve also included some 3rd party libraries there in `Sys/WebUI/deps`\r\n- [Notyf](https://github.com/caroso1222/notyf) for "toast" messages.\r\n- [OmniPad](https://github.com/WizardOfXerox/OmniPad) for touch controls.\r\n\r\nThe web client code I\'ve written  is bad and I\'m hoping someone more interested in that side of things wants to re-write all that html/js/css stuff at some point.\r\nThat probably could be done in a future PR, things are working fine as-is, but it\'s ugly (visually and code-wise).\r\n\r\nlibdatachannel has a [bug](https://github.com/paullouisageneau/libdatachannel/issues/1647) with a pending fix that requires `std::locale::global(std::locale::classic());`.\r\nIt\'s only used when a client connects.\r\nSo.. streaming with the web interface will currently mess with locales.\r\nHopefully that bug will be fixed soon, otherwise we could use a clone that has the fix.\r\n\r\nI\'ve only tested building on Linux.\r\nI have almost no clue what I am doing with CMake.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 5, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5983378818', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14902#issuecomment-5983378818', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14902', 'id': 5983378818, 'node_id': 'IC_kwDOALCn2M8AAAABZKMdgg', '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': '2026-10-04T19:06:47Z', 'updated_at': '2026-10-04T19:06:47Z', 'body': "If needed, I have a branch which tries to deal with mbedtls' symbol conflicts with newer version here: https://github.com/JoshuaVandaele/dolphin/commits/dependency-galore/. It's an abandoned attempt at updating curl to a newer version against mbedtls 4, but the first commit (`Externals: Rename MbedTLS to MbedTLS2 to avoid symbol conflicts with newer versions`) may be of use", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5983378818/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, 'minimized': 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': '2026-10-04T18:59:26Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15613, 'watchers_count': 15613, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15613, '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': 'raw_gh_hook'}
2026-10-04T18:50:50.609542	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996', 'pull_request_review_id': 5407663140, 'id': 4178867996, 'node_id': 'PRRC_kwDOALCn2M75FHcc', 'diff_hunk': '@@ -1,9 +1,9 @@\n // Copyright 2017 Dolphin Emulator Project\n // SPDX-License-Identifier: GPL-2.0-or-later\n \n-#include "AudioCommon/SurroundDecoder.h"\n+#include "SurroundDecoder.h"', 'path': 'Source/Core/AudioCommon/SurroundDecoder/SurroundDecoder.cpp', 'commit_id': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'original_commit_id': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', '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': 'Please keep the `AudioCommon/` part in all these include paths that changed.', 'created_at': '2026-10-04T18:50:47Z', 'updated_at': '2026-10-04T18:50:47Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4178867996', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#discussion_r4178867996'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178867996/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': 4, 'original_line': 4, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 5, 'position': 5, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'id': 2527086434, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'number': 13686, 'state': 'open', 'locked': False, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T15:29:28Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3b72982ec03c0fa165a9c5fcb0fbf5001c327e4b', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/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/13686/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'head': {'label': 'tygyh:AudioCommon/Integrate-FreeSurround-partially', 'ref': 'AudioCommon/Integrate-FreeSurround-partially', 'sha': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 829372497, 'node_id': 'R_kgDOMW84UQ', 'name': 'dolphin', 'full_name': 'tygyh/dolphin', 'private': False, 'owner': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/tygyh/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/tygyh/dolphin', 'forks_url': 'https://api.github.com/repos/tygyh/dolphin/forks', 'keys_url': 'https://api.github.com/repos/tygyh/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/tygyh/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/tygyh/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/tygyh/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/tygyh/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/tygyh/dolphin/events', 'assignees_url': 'https://api.github.com/repos/tygyh/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/tygyh/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/tygyh/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/tygyh/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/tygyh/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/tygyh/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/tygyh/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/tygyh/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/tygyh/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/tygyh/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/tygyh/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/tygyh/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/tygyh/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/tygyh/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/tygyh/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/tygyh/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/tygyh/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/tygyh/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/tygyh/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/tygyh/dolphin/merges', 'archive_url': 'https://api.github.com/repos/tygyh/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/tygyh/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/tygyh/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/tygyh/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/tygyh/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/tygyh/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/tygyh/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/tygyh/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/tygyh/dolphin/deployments', 'created_at': '2024-07-16T09:47:58Z', 'updated_at': '2026-10-04T09:31:43Z', 'pushed_at': '2026-10-04T15:29:27Z', 'git_url': 'git://github.com/tygyh/dolphin.git', 'ssh_url': 'git@github.com:tygyh/dolphin.git', 'clone_url': 'https://github.com/tygyh/dolphin.git', 'svn_url': 'https://github.com/tygyh/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 520248, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/13686'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/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/13686/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/8eb6f70088dc6da5682bbf26abb17812348bb3a3'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:50:50.608620	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5407663140, 'node_id': 'PRR_kwDOALCn2M8AAAABQlJkJA', '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': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686#pullrequestreview-5407663140', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686#pullrequestreview-5407663140'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686'}}, 'submitted_at': '2026-10-04T18:50:47Z', 'updated_at': '2026-10-04T18:50:47Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686', 'id': 2527086434, 'node_id': 'PR_kwDOALCn2M6WoEdi', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13686', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13686.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686', 'number': 13686, 'state': 'open', 'locked': False, 'title': 'AudioCommon: Integrate FreeSurround partially', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'As explained [here](https://github.com/dolphin-emu/dolphin/pull/13194#issuecomment-2888818924), this takes the part of FreeSurround we use and removes the rest.\r\n\r\nTo recap the discussion in #13194, FreeSurround has been abandoned for over 10 years and only a small part of it is used in Dolphin. Instead of maintaining it as was attempted in that PR I proposed just integrating what we need.', 'created_at': '2025-05-18T17:45:56Z', 'updated_at': '2026-10-04T15:29:28Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '3b72982ec03c0fa165a9c5fcb0fbf5001c327e4b', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/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/13686/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'head': {'label': 'tygyh:AudioCommon/Integrate-FreeSurround-partially', 'ref': 'AudioCommon/Integrate-FreeSurround-partially', 'sha': '8eb6f70088dc6da5682bbf26abb17812348bb3a3', 'user': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 829372497, 'node_id': 'R_kgDOMW84UQ', 'name': 'dolphin', 'full_name': 'tygyh/dolphin', 'private': False, 'owner': {'login': 'tygyh', 'id': 32486062, 'node_id': 'MDQ6VXNlcjMyNDg2MDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/32486062?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/tygyh', 'html_url': 'https://github.com/tygyh', 'followers_url': 'https://api.github.com/users/tygyh/followers', 'following_url': 'https://api.github.com/users/tygyh/following{/other_user}', 'gists_url': 'https://api.github.com/users/tygyh/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/tygyh/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/tygyh/subscriptions', 'organizations_url': 'https://api.github.com/users/tygyh/orgs', 'repos_url': 'https://api.github.com/users/tygyh/repos', 'events_url': 'https://api.github.com/users/tygyh/events{/privacy}', 'received_events_url': 'https://api.github.com/users/tygyh/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/tygyh/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/tygyh/dolphin', 'forks_url': 'https://api.github.com/repos/tygyh/dolphin/forks', 'keys_url': 'https://api.github.com/repos/tygyh/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/tygyh/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/tygyh/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/tygyh/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/tygyh/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/tygyh/dolphin/events', 'assignees_url': 'https://api.github.com/repos/tygyh/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/tygyh/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/tygyh/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/tygyh/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/tygyh/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/tygyh/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/tygyh/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/tygyh/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/tygyh/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/tygyh/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/tygyh/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/tygyh/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/tygyh/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/tygyh/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/tygyh/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/tygyh/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/tygyh/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/tygyh/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/tygyh/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/tygyh/dolphin/merges', 'archive_url': 'https://api.github.com/repos/tygyh/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/tygyh/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/tygyh/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/tygyh/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/tygyh/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/tygyh/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/tygyh/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/tygyh/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/tygyh/dolphin/deployments', 'created_at': '2024-07-16T09:47:58Z', 'updated_at': '2026-10-04T09:31:43Z', 'pushed_at': '2026-10-04T15:29:27Z', 'git_url': 'git://github.com/tygyh/dolphin.git', 'ssh_url': 'git@github.com:tygyh/dolphin.git', 'clone_url': 'https://github.com/tygyh/dolphin.git', 'svn_url': 'https://github.com/tygyh/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 520248, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/13686'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13686'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13686/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13686/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/13686/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/8eb6f70088dc6da5682bbf26abb17812348bb3a3'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:36:13.728798	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873', 'pull_request_review_id': 5407591549, 'id': 4178821873, 'node_id': 'PRRC_kwDOALCn2M75E8Lx', 'diff_hunk': '@@ -191,6 +195,36 @@ Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedContro\n   return EmulatedControllerToJava(env, Wiimote::GetConfig()->GetController(controller_index));\n }\n \n+JNIEXPORT jobject JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getHotkeys(\n+    JNIEnv* env, jclass)\n+{\n+  return EmulatedControllerToJava(env, HotkeyManagerEmu::GetConfig()->GetController(0));\n+}\n+\n+JNIEXPORT jintArray JNICALL\n+Java_org_dolphinemu_dolphinemu_features_input_model_controlleremu_EmulatedController_getSupportedHotkeyIndices(\n+    JNIEnv* env, jclass)\n+{\n+  auto* const hotkeys =\n+      static_cast<HotkeyManager*>(HotkeyManagerEmu::GetConfig()->GetController(0));\n+  const std::vector<int>& supported = HotkeyScheduler::GetSupportedHotkeys();\n+\n+  std::vector<jint> indices;\n+  indices.reserve(supported.size() * 2);\n+  for (const int hotkey : supported)\n+  {\n+    const int group = hotkeys->FindGroupByID(hotkey);\n+    indices.push_back(group);\n+    indices.push_back(hotkeys->GetIndexForGroup(group, hotkey));\n+  }\n+\n+  const jsize size = static_cast<jsize>(indices.size());\n+  jintArray result = env->NewIntArray(size);\n+  env->SetIntArrayRegion(result, 0, size, indices.data());', 'path': 'Source/Android/jni/Input/EmulatedController.cpp', 'commit_id': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'original_commit_id': '7816565b8a3913665e24816b0768b59087da3e1a', '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': "Sorry, I must have gotten it mixed up.\r\n\r\nSince int is a primitive type, the `SpanToJObjectArray` function that `SpanToJStringArray` is build on isn't relevant, so feel free to keep this as it is.", 'created_at': '2026-10-04T18:36:11Z', 'updated_at': '2026-10-04T18:36:12Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4178821873', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878#discussion_r4178821873'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178821873/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': 224, 'original_line': 224, 'side': 'RIGHT', 'in_reply_to_id': 4169009408, 'author_association': 'MEMBER', 'original_position': 53, 'position': 53, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', 'id': 4572150680, 'node_id': 'PR_kwDOALCn2M8AAAABEIV7mA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14878.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14878.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878', 'number': 14878, 'state': 'open', 'locked': False, 'title': 'Android: Add global hotkeys', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'New global Hotkeys section.\r\n\r\nOnly a subset of the Desktop hotkeys is added for now:\r\n\r\n- Take Screenshot\r\n- Toggle turbo Mode\r\n- Inc/Dec Emulation Speed\r\n- Inc/Dec Internal resolution\r\n- All the save/load state Hotkeys\r\n\r\n<img width="540" height="1200" alt="Screenshot_20260918_205623" src="https://github.com/user-attachments/assets/4178a639-844f-484e-b2b5-a05bf4ef87a0" />\r\n<img width="540" height="1200" alt="Screenshot_20260918_205652" src="https://github.com/user-attachments/assets/bad2f7e4-bdb3-4f71-bbc3-c9bfae4996dc" />\r\n', 'created_at': '2026-09-18T19:00:59Z', 'updated_at': '2026-10-04T13:53:17Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5f5e0d5609d8a8a7476f3ad73824ebbd0b5e6708', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/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/14878/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'head': {'label': 'vhoxha08:add-global-hotkeys-android', 'ref': 'add-global-hotkeys-android', 'sha': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1368452554, 'node_id': 'R_kgDOUZDtyg', 'name': 'dolphin', 'full_name': 'vhoxha08/dolphin', 'private': False, 'owner': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/vhoxha08/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/vhoxha08/dolphin', 'forks_url': 'https://api.github.com/repos/vhoxha08/dolphin/forks', 'keys_url': 'https://api.github.com/repos/vhoxha08/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vhoxha08/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vhoxha08/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/vhoxha08/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vhoxha08/dolphin/events', 'assignees_url': 'https://api.github.com/repos/vhoxha08/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vhoxha08/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vhoxha08/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vhoxha08/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vhoxha08/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/vhoxha08/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/vhoxha08/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/vhoxha08/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/vhoxha08/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/vhoxha08/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vhoxha08/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vhoxha08/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vhoxha08/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vhoxha08/dolphin/merges', 'archive_url': 'https://api.github.com/repos/vhoxha08/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vhoxha08/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vhoxha08/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vhoxha08/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vhoxha08/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vhoxha08/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/vhoxha08/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vhoxha08/dolphin/deployments', 'created_at': '2026-09-13T14:15:46Z', 'updated_at': '2026-09-18T21:20:31Z', 'pushed_at': '2026-10-04T13:52:22Z', 'git_url': 'git://github.com/vhoxha08/dolphin.git', 'ssh_url': 'git@github.com:vhoxha08/dolphin.git', 'clone_url': 'https://github.com/vhoxha08/dolphin.git', 'svn_url': 'https://github.com/vhoxha08/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 517022, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'ee018d00e60b9eb727489908a8daec5c537f44a8', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14878'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/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/14878/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a7a53edf4a88f701c0d1b45ef3ee706c29712d97'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:36:13.726966	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5407591549, 'node_id': 'PRR_kwDOALCn2M8AAAABQlFMfQ', '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': '7816565b8a3913665e24816b0768b59087da3e1a', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878#pullrequestreview-5407591549', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878#pullrequestreview-5407591549'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878'}}, 'submitted_at': '2026-10-04T18:36:11Z', 'updated_at': '2026-10-04T18:36:11Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878', 'id': 4572150680, 'node_id': 'PR_kwDOALCn2M8AAAABEIV7mA', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14878', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14878.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14878.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878', 'number': 14878, 'state': 'open', 'locked': False, 'title': 'Android: Add global hotkeys', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'New global Hotkeys section.\r\n\r\nOnly a subset of the Desktop hotkeys is added for now:\r\n\r\n- Take Screenshot\r\n- Toggle turbo Mode\r\n- Inc/Dec Emulation Speed\r\n- Inc/Dec Internal resolution\r\n- All the save/load state Hotkeys\r\n\r\n<img width="540" height="1200" alt="Screenshot_20260918_205623" src="https://github.com/user-attachments/assets/4178a639-844f-484e-b2b5-a05bf4ef87a0" />\r\n<img width="540" height="1200" alt="Screenshot_20260918_205652" src="https://github.com/user-attachments/assets/bad2f7e4-bdb3-4f71-bbc3-c9bfae4996dc" />\r\n', 'created_at': '2026-09-18T19:00:59Z', 'updated_at': '2026-10-04T13:53:17Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5f5e0d5609d8a8a7476f3ad73824ebbd0b5e6708', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/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/14878/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'head': {'label': 'vhoxha08:add-global-hotkeys-android', 'ref': 'add-global-hotkeys-android', 'sha': 'a7a53edf4a88f701c0d1b45ef3ee706c29712d97', 'user': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1368452554, 'node_id': 'R_kgDOUZDtyg', 'name': 'dolphin', 'full_name': 'vhoxha08/dolphin', 'private': False, 'owner': {'login': 'vhoxha08', 'id': 5047177, 'node_id': 'MDQ6VXNlcjUwNDcxNzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5047177?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/vhoxha08', 'html_url': 'https://github.com/vhoxha08', 'followers_url': 'https://api.github.com/users/vhoxha08/followers', 'following_url': 'https://api.github.com/users/vhoxha08/following{/other_user}', 'gists_url': 'https://api.github.com/users/vhoxha08/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/vhoxha08/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/vhoxha08/subscriptions', 'organizations_url': 'https://api.github.com/users/vhoxha08/orgs', 'repos_url': 'https://api.github.com/users/vhoxha08/repos', 'events_url': 'https://api.github.com/users/vhoxha08/events{/privacy}', 'received_events_url': 'https://api.github.com/users/vhoxha08/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/vhoxha08/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/vhoxha08/dolphin', 'forks_url': 'https://api.github.com/repos/vhoxha08/dolphin/forks', 'keys_url': 'https://api.github.com/repos/vhoxha08/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/vhoxha08/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/vhoxha08/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/vhoxha08/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/vhoxha08/dolphin/events', 'assignees_url': 'https://api.github.com/repos/vhoxha08/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/vhoxha08/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/vhoxha08/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/vhoxha08/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/vhoxha08/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/vhoxha08/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/vhoxha08/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/vhoxha08/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/vhoxha08/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/vhoxha08/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/vhoxha08/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/vhoxha08/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/vhoxha08/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/vhoxha08/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/vhoxha08/dolphin/merges', 'archive_url': 'https://api.github.com/repos/vhoxha08/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/vhoxha08/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/vhoxha08/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/vhoxha08/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/vhoxha08/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/vhoxha08/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/vhoxha08/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/vhoxha08/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/vhoxha08/dolphin/deployments', 'created_at': '2026-09-13T14:15:46Z', 'updated_at': '2026-09-18T21:20:31Z', 'pushed_at': '2026-10-04T13:52:22Z', 'git_url': 'git://github.com/vhoxha08/dolphin.git', 'ssh_url': 'git@github.com:vhoxha08/dolphin.git', 'clone_url': 'https://github.com/vhoxha08/dolphin.git', 'svn_url': 'https://github.com/vhoxha08/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 517022, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'ee018d00e60b9eb727489908a8daec5c537f44a8', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14878'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14878'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14878/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14878/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/14878/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a7a53edf4a88f701c0d1b45ef3ee706c29712d97'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:30:21.186897	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326', 'pull_request_review_id': 5407532661, 'id': 4178803326, 'node_id': 'PRRC_kwDOALCn2M75E3p-', 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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 existing `Swing` mappings are already supposed to simulate a Wii Remote movement in an outstretched arm, though admittedly the behavior could be improved.\n\nWhat exactly is this new feature supposed to do differently than the `Swing` mappings?\n\nI really think we should just improve the `Swing` mappings which are designed to work with mouse or gamepad or whatever else.', 'created_at': '2026-10-04T18:30:16Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178803326', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178803326'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178803326/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': 82, 'original_line': 82, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 33, 'position': 33, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T16:35:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T16:35:23Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:30:21.151688	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921', 'pull_request_review_id': 5407532661, 'id': 4178790921, 'node_id': 'PRRC_kwDOALCn2M75E0oJ', 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "\n+                       "Move toward yourself to swing down, away to swing up. "\n+                       "Hold a side mouse button for motion; otherwise move the pointer. "\n+                       "Hold the middle mouse button or R to recenter. "\n+                       "Higher sensitivity needs less mouse movement for a swing. "\n+                       "This does not affect the pointer."),\n+                _trans("Motion Sensitivity")},\n+               100, 1, 400);\n+    AddSetting(&m_horizontal_sensitivity,\n+               {_trans("Horizontal Sensitivity"), _trans("%"),\n+                _trans("Multiplier for left/right mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+    AddSetting(&m_vertical_sensitivity,\n+               {_trans("Vertical Sensitivity"), _trans("%"),\n+                _trans("Multiplier for upward/downward mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+  }\n+\n+  void UpdateReferences(ciface::ExpressionParser::ControlEnvironment& env) override\n+  {\n+    m_last_update = {};\n+    std::string device_name;\n+    m_scale = 1;\n+    int side_button = 3;\n+    for (const auto& device : g_controller_interface.GetAllDevices())\n+    {\n+      if ((device->GetSource() == "DInput" || device->GetSource() == "XInput2") &&\n+          device->FindInput("RelativeMouse X+") && device->FindInput("RelativeMouse Y+"))\n+      {\n+        device_name = device->GetQualifiedName();\n+        // XInput2 exposes relative movement in units of eight counts, unlike DInput.\n+        const bool is_x11 = device->GetSource() == "XInput2";', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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': "These changes are demonstrating a poor separation of concerns.\ne.g. `WiimoteEmu` shouldn't be checking and scaling things based on the backend name.\nThe backends should just return consistent values.", 'created_at': '2026-10-04T18:26:06Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178790921', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178790921'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178790921/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': 115, 'original_line': 115, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 66, 'position': 66, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T16:35:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T16:35:23Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:30:21.151065	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792', 'pull_request_review_id': 5407532661, 'id': 4178798792, 'node_id': 'PRRC_kwDOALCn2M75E2jI', 'diff_hunk': '@@ -64,6 +66,121 @@ static const u16 dpad_bitmasks[] = {Wiimote::PAD_UP, Wiimote::PAD_DOWN, Wiimote:\n static const u16 dpad_sideways_bitmasks[] = {Wiimote::PAD_RIGHT, Wiimote::PAD_LEFT, Wiimote::PAD_UP,\n                                              Wiimote::PAD_DOWN};\n \n+// Fixed internal references reuse device discovery, input gating and per-channel mouse deltas.\n+// They are deliberately not direction bindings in the controller configuration.\n+class MouseMotion final : public ControllerEmu::ControlGroup\n+{\n+public:\n+  MouseMotion()\n+      : ControlGroup("Mouse Motion", _trans("Mouse Motion"), ControllerEmu::GroupType::Other,\n+                     DefaultValue::Disabled)\n+  {\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Motion Hold"));\n+    AddInput(ControllerEmu::Translatability::Translate, _trans("Recenter"));\n+    AddSetting(&m_sensitivity,\n+               {_trans("Sensitivity"), _trans("%"),\n+                _trans("Use relative mouse movement as Wii Remote motion (Windows and X11). "\n+                       "Move toward yourself to swing down, away to swing up. "\n+                       "Hold a side mouse button for motion; otherwise move the pointer. "\n+                       "Hold the middle mouse button or R to recenter. "\n+                       "Higher sensitivity needs less mouse movement for a swing. "\n+                       "This does not affect the pointer."),\n+                _trans("Motion Sensitivity")},\n+               100, 1, 400);\n+    AddSetting(&m_horizontal_sensitivity,\n+               {_trans("Horizontal Sensitivity"), _trans("%"),\n+                _trans("Multiplier for left/right mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+    AddSetting(&m_vertical_sensitivity,\n+               {_trans("Vertical Sensitivity"), _trans("%"),\n+                _trans("Multiplier for upward/downward mouse motion. "\n+                       "100% uses Motion Sensitivity unchanged; 200% doubles it.")},\n+               100, 1, 400);\n+  }\n+\n+  void UpdateReferences(ciface::ExpressionParser::ControlEnvironment& env) override\n+  {\n+    m_last_update = {};\n+    std::string device_name;\n+    m_scale = 1;\n+    int side_button = 3;\n+    for (const auto& device : g_controller_interface.GetAllDevices())\n+    {\n+      if ((device->GetSource() == "DInput" || device->GetSource() == "XInput2") &&\n+          device->FindInput("RelativeMouse X+") && device->FindInput("RelativeMouse Y+"))\n+      {\n+        device_name = device->GetQualifiedName();\n+        // XInput2 exposes relative movement in units of eight counts, unlike DInput.\n+        const bool is_x11 = device->GetSource() == "XInput2";\n+        m_scale = is_x11 ? 8.f : 1.f;\n+        side_button = is_x11 ? 8 : 3;\n+        break;\n+      }\n+    }\n+\n+    constexpr std::array names{"RelativeMouse X+", "RelativeMouse X-", "RelativeMouse Y+",', 'path': 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'original_commit_id': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', '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 is using hardcoded button input names. Locking a new feature to mouse inputs and not gamepad inputs seems like an unnecessary limitation.\n', 'created_at': '2026-10-04T18:28:42Z', 'updated_at': '2026-10-04T18:30:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178798792', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#discussion_r4178798792'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4178798792/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': 122, 'original_line': 122, 'side': 'RIGHT', 'author_association': 'MEMBER', 'original_position': 73, 'position': 73, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T16:35:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T16:35:23Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:30:21.149262	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5407532661, 'node_id': 'PRR_kwDOALCn2M8AAAABQlBmdQ', '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': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909#pullrequestreview-5407532661', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909#pullrequestreview-5407532661'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909'}}, 'submitted_at': '2026-10-04T18:30:18Z', 'updated_at': '2026-10-04T18:30:18Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T16:35:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '6ef60e9eb798d95657899b373edd56525e2d2d94', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T16:35:23Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 518377, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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'}
2026-10-04T18:15:37.777774	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410', 'id': 3973085501, 'node_id': 'PR_kwDOALCn2M7FZA6t', 'number': 14410, 'title': 'AMMediaboard: Fix setsockopt timeout parameters', '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, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-02-21T23:48:02Z', 'updated_at': '2026-10-04T18:15:35Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14410', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14410.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14410.patch', 'merged_at': None}, 'body': 'This PR fixes `setsockopt` returning 22 (EINVAL) when setting timeout values.\r\n\r\nReady to be reviewed and tested.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410/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/14410/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982957970', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14410#issuecomment-5982957970', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14410', 'id': 5982957970, 'node_id': 'IC_kwDOALCn2M8AAAABZJyxkg', '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': '2026-10-04T18:15:35Z', 'updated_at': '2026-10-04T18:15:35Z', 'body': "I can't test this in windows, but I don't think this made things worse.  Sometimes the games don't want to connect, but that also happens in master.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982957970/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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': 'raw_gh_hook'}
2026-10-04T18:11:39.314239	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404', 'id': 3970281047, 'node_id': 'PR_kwDOALCn2M7FQVnJ', 'number': 14404, 'title': 'AMMediaboard: Update closesocket error code approriately', '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, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-02-20T20:36:13Z', 'updated_at': '2026-10-04T18:11:37Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14404', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14404.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14404.patch', 'merged_at': None}, 'body': "~This change is part of https://github.com/dolphin-emu/dolphin/pull/14399.~ _Trying https://github.com/dolphin-emu/dolphin/pull/14404#discussion_r2835513014 instead._\r\n\r\nBased on these log messages, Mario Kart seems to keep trying to close the fd if the operation failed:\r\n```\r\n48:26:096 Core/HW/DVD/AMMediaboard.cpp:735 I[AMMB_NET]: NetDIMMConnect: connect( 125(4), (2,127.0.0.1:5038) ):-1 (10035)\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 123(2) ):0\r\n48:26:113 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 124(3) ):0\r\n48:26:114 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( 125(4) ):0\r\n48:26:130 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:146 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:163 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n48:26:180 Core/HW/DVD/AMMediaboard.cpp:1028 N[AMMB_NET]: GC-AM: closesocket( -1(1) ):-1\r\n```\r\n\r\nThe socket fd=1 is probably related to the [race mentioned here](https://github.com/dolphin-emu/dolphin/pull/14400). The game tried to call `accept` on the socket fd=1 but failed because the socket wasn't created. Then, it tried to close the socket.\r\n\r\nReady to be reviewed & tested.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404/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/14404/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982925106', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14404#issuecomment-5982925106', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14404', 'id': 5982925106, 'node_id': 'IC_kwDOALCn2M8AAAABZJwxMg', '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': '2026-10-04T18:11:36Z', 'updated_at': '2026-10-04T18:11:36Z', 'body': 'As far as I can tell, this does not break either Mario Kart GP game from connecting over a network.  I do not see the log messages referenced across a single race session.  Mario Kart GP2 also saw the other cabinet, but I did not test a full race.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982925106/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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': 'raw_gh_hook'}
2026-10-04T18:05:51.312380	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397', 'id': 3962584811, 'node_id': 'PR_kwDOALCn2M7E2-3z', 'number': 14397, 'title': 'AMMediaboard: Change accept non-blocking logic', '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, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-02-19T11:58:22Z', 'updated_at': '2026-10-04T18:05:49Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'issue_field_values': [], 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14397', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14397.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14397.patch', 'merged_at': None}, 'body': "This PR changes the non-blocking logic to something similar to what was done with the `connect` command.\r\n\r\nThe main issue with `poll` is that it doesn't catch many edge cases such as invalid parameters and sometimes we reported them as being timeout errors instead of proper errors.\r\n\r\nLike https://github.com/dolphin-emu/dolphin/pull/14395, because the logic was changed, this will need to be properly tested before being merged.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397/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/14397/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982877550', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14397#issuecomment-5982877550', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14397', 'id': 5982877550, 'node_id': 'IC_kwDOALCn2M8AAAABZJt3bg', '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': '2026-10-04T18:05:49Z', 'updated_at': '2026-10-04T18:05:49Z', 'body': 'As far as I can tell, Both Mario Kart GP and Avalon have no changed behavior from this and still connect over the network.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5982877550/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, 'minimized': 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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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': 'raw_gh_hook'}
2026-10-04T16:35:28.175853	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 14909, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909', 'id': 4735865502, 'node_id': 'PR_kwDOALCn2M8AAAABGkeSng', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14909', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14909.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909', 'number': 14909, 'state': 'open', 'locked': False, 'title': 'WiimoteEmu: add optional mouse motion with pointer separation', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- Full available unit-test executable passed: **1378 tests from 54 suites**, including 25 MouseMotion and MouseMotionPointerTest tests covering direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting checked with the required clang-format 19.1.7; git diff whitespace checks passed.\n- Cleanup restores the original degree symbols in the existing horizontal/vertical FOV settings; no motion behavior changes or unrelated refactoring.\n- **Manual acceptance test passed:** The PR author tested the current Windows build in Wii Sports Resort Golf with Mouse Motion enabled, performed a complete mouse swing, and successfully hit the ball. No individual Swing, Tilt, or Shake direction bindings were needed.\n- X11 behavior has not been built or tested on Linux.\n\n## Upstream CI\n\nThe initial status is a trust gate, not a compilation or test failure: `PR not built because endercodezz is not auto-trusted.` No upstream build was started. A maintainer needs to authorize the CI build; local build/test results are listed above.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n', 'created_at': '2026-10-04T16:25:44Z', 'updated_at': '2026-10-04T16:35:25Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '41d2df5c00c928a78e89dbd740b2a536719742f1', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'head': {'label': 'endercodezz:codex/mouse-wiimote-motion', 'ref': 'codex/mouse-wiimote-motion', 'sha': '7b26d7ecfcc35ff36abd440c62854d416977c2a9', 'user': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1404419038, 'node_id': 'R_kgDOU7W73g', 'name': 'dolphin', 'full_name': 'endercodezz/dolphin', 'private': False, 'owner': {'login': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/endercodezz/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/endercodezz/dolphin', 'forks_url': 'https://api.github.com/repos/endercodezz/dolphin/forks', 'keys_url': 'https://api.github.com/repos/endercodezz/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/endercodezz/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/endercodezz/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/endercodezz/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/endercodezz/dolphin/events', 'assignees_url': 'https://api.github.com/repos/endercodezz/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/endercodezz/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/endercodezz/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/endercodezz/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/endercodezz/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/endercodezz/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/endercodezz/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/endercodezz/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/endercodezz/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/endercodezz/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/endercodezz/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/endercodezz/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/endercodezz/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/endercodezz/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/endercodezz/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/endercodezz/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/endercodezz/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/endercodezz/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/endercodezz/dolphin/merges', 'archive_url': 'https://api.github.com/repos/endercodezz/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/endercodezz/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/endercodezz/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/endercodezz/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/endercodezz/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/endercodezz/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/endercodezz/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/endercodezz/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/endercodezz/dolphin/deployments', 'created_at': '2026-10-04T13:08:09Z', 'updated_at': '2026-10-04T13:08:09Z', 'pushed_at': '2026-10-04T16:35:23Z', 'git_url': 'git://github.com/endercodezz/dolphin.git', 'ssh_url': 'git@github.com:endercodezz/dolphin.git', 'clone_url': 'https://github.com/endercodezz/dolphin.git', 'svn_url': 'https://github.com/endercodezz/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 561316, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': False, '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, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', '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': 'eb236466c4f0ec8bef619add0972353d3996fe6c', '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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/14909'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14909'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14909/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14909/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/14909/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/7b26d7ecfcc35ff36abd440c62854d416977c2a9'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': 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': 2, 'additions': 790, 'deletions': 16, 'changed_files': 11}, 'changes': {'body': {'from': '# Optional mouse motion for an emulated Wii Remote\n\nStandard mouse pointer controls do not provide the motion needed for gestures such as a golf swing. This adds an optional Mouse Motion group under Motion Simulation, disabled by default, using the existing input references and motion/report pipeline.\n\nOrdinary movement continues to control the pointer. Holding either automatically bound side mouse button converts relative mouse travel into a bounded Wii Remote pose: away/toward the user moves up/down, and left/right moves sideways. Movement speed determines angular velocity and arm acceleration, which feed the existing accelerometer and MotionPlus paths. No directional Swing, Tilt, or Shake bindings or game-specific detection are needed.\n\nThe group provides editable Motion Hold and Recenter bindings plus overall, horizontal, and vertical sensitivity. Fixed axes prevent accumulated roll and inverted directions; IR and gyro share the same pose. Pointer navigation avoids full-arm acceleration, and releasing the modifier returns smoothly to pointing. Stale relative input is discarded after input gating or a long update gap, and DInput clears relative samples after acquisition failures.\n\n## Scope and compatibility\n\n- Reuses existing ControlGroup settings/profile persistence, InputReference device handling, Point simulation, quaternion helpers, and sensor report generation.\n- Relative mouse input is supported by DInput on Windows and XInput2 on X11. macOS and Wayland are not implemented.\n- A two-axis mouse cannot supply independent roll or full six-degree-of-freedom motion; this mode synthesizes a consistent virtual arm movement.\n- Existing MotionPlus attachment settings still apply. No report format, calibration, or MotionPlus protocol implementation changes.\n- Serializes the new motion state and increments STATE_VERSION; older savestates are incompatible.\n- Setup, implementation details, and a manual Wii Sports Resort Golf checklist are in docs/MouseMotion.md.\n\n## Validation\n\n- Windows x64 Release build with MSVC, including DolphinQt and unit tests.\n- 25 MouseMotion and MouseMotionPointerTest tests cover direction, speed, reversals, bounded rotation, closed paths, gyro consistency, recentering, pointer parity, pointer stability, and modifier transitions.\n- Dolphin executable startup checked with --version.\n- Formatting and git diff whitespace checks passed.\n- Manual feedback from the user reports the expected motion/pointer separation. A successful ball hit in Wii Sports Resort Golf has not been independently verified; the user is performing the game acceptance test.\n- X11 behavior has not been built or tested on Linux.\n\n## AI assistance disclosure\n\nThe new host-side mouse input mapping and motion synthesis, configuration/UI additions, save-state additions, DInput stale-sample fix, regression tests, and documentation were developed with AI assistance. The existing console report, calibration, and MotionPlus protocol implementations were not changed. This disclosure follows CONTRIBUTING.md; the submitting contributor must review and understand the changes and take responsibility for them.\n'}}, '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': '2026-10-04T15:23:34Z', 'pushed_at': '2026-10-04T05:19: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': 561316, 'stargazers_count': 15612, 'watchers_count': 15612, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3287, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 475, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 3287, 'open_issues': 475, 'watchers': 15612, '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': 'endercodezz', 'id': 156020274, 'node_id': 'U_kgDOCUyuMg', 'avatar_url': 'https://avatars.githubusercontent.com/u/156020274?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/endercodezz', 'html_url': 'https://github.com/endercodezz', 'followers_url': 'https://api.github.com/users/endercodezz/followers', 'following_url': 'https://api.github.com/users/endercodezz/following{/other_user}', 'gists_url': 'https://api.github.com/users/endercodezz/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/endercodezz/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/endercodezz/subscriptions', 'organizations_url': 'https://api.github.com/users/endercodezz/orgs', 'repos_url': 'https://api.github.com/users/endercodezz/repos', 'events_url': 'https://api.github.com/users/endercodezz/events{/privacy}', 'received_events_url': 'https://api.github.com/users/endercodezz/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}