Status for Dolphin Central

Recent events

2026-11-02T23:08:54.728433	{'source': 'webserver', 'raw': {'buildid': 196017, 'number': 5539, 'builderid': 41, 'buildrequestid': 196479, 'workerid': 5, 'masterid': 1, 'started_at': 1793660928, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14962', 'Trigger'], 'pr_id': [14962, 'Trigger'], 'builderid': [41, 'Builder'], 'revision': ['f1b323ed0d893f7d3f30e810558d0910441cde31', 'Build'], 'baserev': ['833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['f1b323ed0d893f7d3f30e810558d0910441cde31', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildnumber': [5539, 'Build'], 'codebase': ['', 'Build'], 'shortrev': ['f1b323', 'Trigger'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'branch': ['refs/pull/14962/head', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196479, 'buildsetid': 44014, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1793660928, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793641049, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44014, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793641049, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195876, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13216, 'branch': 'refs/pull/14962/head', 'revision': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793639524, 'patch': None}]}, 'parentbuild': {'buildid': 195876, 'number': 10896, 'builderid': 27, 'buildrequestid': 196455, 'workerid': 10, 'masterid': 1, 'started_at': 1793639532, 'complete_at': 1793641049, '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/5539'}, 'type': 'raw_bb_hook'}
2026-11-02T23:07:53.361337	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T23:07:51.593299	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T23:05:19.804756	{'source': 'webserver', 'raw': {'buildid': 196016, 'number': 9557, 'builderid': 35, 'buildrequestid': 196595, 'workerid': 5, 'masterid': 1, 'started_at': 1793660719, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14967', 'Trigger'], 'pr_id': [14967, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [9557, 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/14967/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'shortrev': ['f9913a', 'Trigger'], 'builderid': [35, 'Builder'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196595, 'buildsetid': 44033, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793660719, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652052, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44033, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652052, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195970, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 195970, 'number': 10901, 'builderid': 27, 'buildrequestid': 196558, 'workerid': 10, 'masterid': 1, 'started_at': 1793651614, 'complete_at': 1793652052, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9557'}, 'type': 'raw_bb_hook'}
2026-11-02T23:04:59.897717	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T23:04:59.573529	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T23:02:51.592932	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T23:02:49.973099	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:57:49.972603	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:57:48.362808	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:55:49.573533	{'source': 'webserver', 'raw': {'buildid': 196015, 'number': 9556, 'builderid': 35, 'buildrequestid': 196578, 'workerid': 5, 'masterid': 1, 'started_at': 1793660138, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14973', 'Trigger'], 'shortrev': ['6edc53', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'branch': ['refs/pull/14973/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'project': ['', 'Build'], 'headrev': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Trigger'], 'pr_id': [14973, 'Trigger'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'buildnumber': [9556, 'Build'], 'revision': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Build']}, 'buildrequest': {'buildrequestid': 196578, 'buildsetid': 44031, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793660138, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793651606, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44031, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793651606, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195954, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13221, 'branch': 'refs/pull/14973/head', 'revision': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650044, 'patch': None}]}, 'parentbuild': {'buildid': 195954, 'number': 10900, 'builderid': 27, 'buildrequestid': 196544, 'workerid': 10, 'masterid': 1, 'started_at': 1793650050, 'complete_at': 1793651606, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9556'}, 'type': 'raw_bb_hook'}
2026-11-02T22:55:39.408282	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14774, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:55:38.678046	{'source': 'webserver', 'raw': {'buildid': 196014, 'number': 9555, 'builderid': 35, 'buildrequestid': 196519, 'workerid': 5, 'masterid': 1, 'started_at': 1793659448, 'complete_at': 1793660138, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14774, 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'got_revision': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'GitNoBranch'], 'headrev': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'branch': ['refs/pull/14774/head', 'Build'], 'codebase': ['', 'Build'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: sepalani)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'branchname': ['pr-14774', 'Trigger'], 'shortrev': ['3b4071', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [35, 'Builder'], 'buildnumber': [9555, 'Build'], 'repository': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'warnings-count': [4, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196519, 'buildsetid': 44023, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793659448, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793646188, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44023, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793646188, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195920, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13219, 'branch': 'refs/pull/14774/head', 'revision': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793644585, 'patch': None}]}, 'parentbuild': {'buildid': 195920, 'number': 10899, 'builderid': 27, 'buildrequestid': 196510, 'workerid': 10, 'masterid': 1, 'started_at': 1793644592, 'complete_at': 1793646188, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9555'}, 'type': 'raw_bb_hook'}
2026-11-02T22:54:59.573304	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T22:54:59.260080	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:52:48.362398	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:52:46.621532	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:50:02.711069	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14819, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:50:01.977862	{'source': 'webserver', 'raw': {'buildid': 196013, 'number': 9247, 'builderid': 21, 'buildrequestid': 196605, 'workerid': 8, 'masterid': 1, 'started_at': 1793659154, 'complete_at': 1793659801, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14819', 'Trigger'], 'shortrev': ['814e11', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'branch': ['refs/pull/14819/head', 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'builddir': ['/Users/ci/worker/base/pr-fifoci-mtl-osx-m1', 'Worker'], 'pr_id': [14819, 'Trigger'], 'builderid': [21, 'Builder'], 'buildnumber': [9247, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'warnings-count': [114, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196605, 'buildsetid': 44039, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1793659154, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1793658495, 'complete_at': 1793659801, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44039, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793658495, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196009, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9247'}, 'type': 'raw_bb_hook'}
2026-11-02T22:47:46.621092	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:47:44.978338	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:47:29.124013	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6590433062\x03\x1f', 'type': 'notification'}
2026-11-02T22:47:29.123471	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T22:47:27Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6590433062, 'node_id': 'IC_kwDOALCn2M8AAAABiNIHJg', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T22:47:27Z', 'updated_at': '2026-11-02T22:47:27Z', 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T22:47:29.123420	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'safe_author': True, 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T22:47:27Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6590433062, 'node_id': 'IC_kwDOALCn2M8AAAABiNIHJg', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T22:47:27Z', 'updated_at': '2026-11-02T22:47:27Z', 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T22:44:59.259859	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}

Recent 'build_status' events

2026-11-02T22:28:18.168328	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-osx-universal', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/10921', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T22:15:28.839621	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-osx-universal', 'pr': 14819, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/10921', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T21:53:51.638659	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-osx-universal', 'pr': 14967, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/10920', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T21:40:11.282246	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-osx-universal', 'pr': 14967, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/10920', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T21:18:26.020540	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'shortrev': '6edc53', 'service': 'pr-osx-universal', 'pr': 14973, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/10919', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T21:17:31.963695	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-dbg-x64', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/10910', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:15:28.912496	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-dbg-x64', 'pr': 14819, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/10910', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:15:28.173775	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-win-dbg-x64', 'pr': 14967, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/10909', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:11:56.970620	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-win-dbg-x64', 'pr': 14967, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/10909', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:11:56.245839	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'shortrev': '6edc53', 'service': 'pr-win-dbg-x64', 'pr': 14973, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/10908', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:11:43.506229	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-deb-dbg-x64', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/10901', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-02T21:09:07.311421	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-deb-dbg-x64', 'pr': 14819, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/10901', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-02T21:09:06.347240	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-deb-dbg-x64', 'pr': 14967, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/10900', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-02T21:05:17.013398	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'shortrev': '6edc53', 'service': 'pr-osx-universal', 'pr': 14973, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/10919', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2026-11-02T21:05:07.150743	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-x64', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/10903', 'description': 'Build succeeded on builder pr-win-x64', 'type': 'build_status'}
2026-11-02T21:05:06.144777	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'shortrev': '6edc53', 'service': 'pr-win-dbg-x64', 'pr': 14973, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/10908', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-11-02T21:02:48.800165	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-x64', 'pr': 14819, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/10903', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2026-11-02T21:02:48.102725	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-win-x64', 'pr': 14967, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/10902', 'description': 'Build succeeded on builder pr-win-x64', 'type': 'build_status'}
2026-11-02T21:02:24.905139	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-deb-dbg-x64', 'pr': 14967, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/10900', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-02T21:02:24.105180	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'shortrev': '6edc53', 'service': 'pr-deb-dbg-x64', 'pr': 14973, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/10899', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-11-02T20:58:09.414506	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-arm64', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/10901', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2026-11-02T20:58:08.469174	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-win-x64', 'pr': 14967, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/10902', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2026-11-02T20:54:45.711902	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-win-arm64', 'pr': 14819, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/10901', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}
2026-11-02T20:54:44.935278	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'shortrev': 'f9913a', 'service': 'pr-win-arm64', 'pr': 14967, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/10900', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2026-11-02T20:51:39.253493	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'shortrev': '814e11', 'service': 'pr-android', 'pr': 14819, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/10908', 'description': 'Build succeeded on builder pr-android', 'type': 'build_status'}

Recent 'command_message' events

2026-11-02T17:11:49.601973	{'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14962', 'type': 'command_message'}
2026-11-02T01:43:57.146928	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14969', 'type': 'command_message'}
2026-11-02T01:38:36.056172	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14968', 'type': 'command_message'}

Recent 'dev_wark' events

2026-11-02T01:43:57.146980	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-11-02T01:38:36.056200	{'source': 'discord', 'accepted': True, 'type': 'dev_wark'}

Recent 'gh_issue_comment' events

2026-11-02T22:47:29.123420	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'safe_author': True, 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T22:47:27Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6590433062, 'node_id': 'IC_kwDOALCn2M8AAAABiNIHJg', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T22:47:27Z', 'updated_at': '2026-11-02T22:47:27Z', 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T22:24:17.045576	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'dolphin-ci[bot]', 'action': 'deleted', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-5381247818', '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/9bcbc6ce18a3c4eb9f4a6d8547c1e1f21c50d64b/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||mtl-osx-m1|mvk-osx-m1|\n|-|-|-|\n|DKCR-Char|[❌ fail](https://fifo.ci/compare/16387127-16342289/)|[❌ fail](https://fifo.ci/compare/16386845-16342148/)|\n|DKCR-fast-depth|[❌ fail](https://fifo.ci/compare/16387148-16342310/)|[❌ fail](https://fifo.ci/compare/16386866-16342169/)|\n|MaS-LOG-wiimote|[❌ fail](https://fifo.ci/compare/16387165-16342327/)|[❌ fail](https://fifo.ci/compare/16386883-16342186/)|\n|ab11-homebrew|[❌ fail](https://fifo.ci/compare/16387153-16342315/)|[❌ fail](https://fifo.ci/compare/16386871-16342174/)|\n|aeon-charge-attack|[❌ fail](https://fifo.ci/compare/16387133-16342295/)|[❌ fail](https://fifo.ci/compare/16386851-16342154/)|\n|bk-tev|[❌ fail](https://fifo.ci/compare/16387175-16342337/)|[❌ fail](https://fifo.ci/compare/16386893-16342196/)|\n|burnout2-vehicletextures|[❌ fail](https://fifo.ci/compare/16387170-16342332/)|[❌ fail](https://fifo.ci/compare/16386888-16342191/)|\n|chibi-robo-fastdepth|[❌ fail](https://fifo.ci/compare/16387109-16342271/)|[❌ fail](https://fifo.ci/compare/16386827-16342130/)|\n|chibi-robo-zfighting|[❌ fail](https://fifo.ci/compare/16387075-16342237/)|[❌ fail](https://fifo.ci/compare/16386793-16342096/)|\n|custom-brawl-char|[❌ fail](https://fifo.ci/compare/16387135-16342297/)|[❌ fail](https://fifo.ci/compare/16386853-16342156/)|\n|dbz-depth|[❌ fail](https://fifo.ci/compare/16387107-16342269/)|[❌ fail](https://fifo.ci/compare/16386825-16342128/)|\n|default-depth-range|[❌ fail](https://fifo.ci/compare/16387202-16342364/)|[❌ fail](https://fifo.ci/compare/16386920-16342223/)|\n|djfny-menu|[❌ fail](https://fifo.ci/compare/16387111-16342273/)|[❌ fail](https://fifo.ci/compare/16386829-16342132/)|\n|djhero2-blend|[❌ fail](https://fifo.ci/compare/16387174-16342336/)|[❌ fail](https://fifo.ci/compare/16386892-16342195/)|\n|ea-pink|[❌ fail](https://fifo.ci/compare/16387187-16342349/)|[❌ fail](https://fifo.ci/compare/16386905-16342208/)|\n|ea-vp6|[❌ fail](https://fifo.ci/compare/16387093-16342255/)|[❌ fail](https://fifo.ci/compare/16386811-16342114/)|\n|ed-updated|[❌ fail](https://fifo.ci/compare/16387143-16342305/)|[❌ fail](https://fifo.ci/compare/16386861-16342164/)|\n|et-vid|[❌ fail](https://fifo.ci/compare/16387158-16342320/)|[❌ fail](https://fifo.ci/compare/16386876-16342179/)|\n|f-zero-rain|[❌ fail](https://fifo.ci/compare/16387141-16342303/)|[❌ fail](https://fifo.ci/compare/16386859-16342162/)|\n|fifa-street|[❌ fail](https://fifo.ci/compare/16387104-16342266/)|[❌ fail](https://fifo.ci/compare/16386822-16342125/)|\n|find-mii|[❌ fail](https://fifo.ci/compare/16387115-16342277/)|[❌ fail](https://fifo.ci/compare/16386833-16342136/)|\n|fishing-resort-map|[❌ fail](https://fifo.ci/compare/16387163-16342325/)|[❌ fail](https://fifo.ci/compare/16386881-16342184/)|\n|fog-adj|[❌ fail](https://fifo.ci/compare/16387082-16342244/)|[❌ fail](https://fifo.ci/compare/16386800-16342103/)|\n|fortune-street|[❌ fail](https://fifo.ci/compare/16387094-16342256/)|[❌ fail](https://fifo.ci/compare/16386812-16342115/)|\n|fortune-street-fog|[❌ fail](https://fifo.ci/compare/16387074-16342236/)|[❌ fail](https://fifo.ci/compare/16386792-16342095/)|\n|fortune-street-white-box|[❌ fail](https://fifo.ci/compare/16387096-16342258/)|[❌ fail](https://fifo.ci/compare/16386814-16342117/)|\n|fsa-layers|[❌ fail](https://fifo.ci/compare/16387119-16342281/)|[❌ fail](https://fifo.ci/compare/16386837-16342140/)|\n|goldeneye-depth|[❌ fail](https://fifo.ci/compare/16387138-16342300/)|[❌ fail](https://fifo.ci/compare/16386856-16342159/)|\n|gormiti|[❌ fail](https://fifo.ci/compare/16387185-16342347/)|[❌ fail](https://fifo.ci/compare/16386903-16342206/)|\n|gx-points|[❌ fail](https://fifo.ci/compare/16387211-16342373/)|[❌ fail](https://fifo.ci/compare/16386929-16342232/)|\n|hb-discgolf|[❌ fail](https://fifo.ci/compare/16387160-16342322/)|[❌ fail](https://fifo.ci/compare/16386878-16342181/)|\n|hotwheels-shadows|[❌ fail](https://fifo.ci/compare/16387209-16342371/)|[❌ fail](https://fifo.ci/compare/16386927-16342230/)|\n|inverted-depth-range|[❌ fail](https://fifo.ci/compare/16387204-16342366/)|[❌ fail](https://fifo.ci/compare/16386922-16342225/)|\n|jb-shadow|[❌ fail](https://fifo.ci/compare/16387190-16342352/)|[❌ fail](https://fifo.ci/compare/16386908-16342211/)|\n|jd2-fmv|[❌ fail](https://fifo.ci/compare/16387178-16342340/)|[❌ fail](https://fifo.ci/compare/16386896-16342199/)|\n|jj-awae-mirrored|[❌ fail](https://fifo.ci/compare/16387169-16342331/)|[❌ fail](https://fifo.ci/compare/16386887-16342190/)|\n|kirby-logicop|[❌ fail](https://fifo.ci/compare/16387196-16342358/)|[❌ fail](https://fifo.ci/compare/16386914-16342217/)|\n|kirby-shadows|[❌ fail](https://fifo.ci/compare/16387083-16342245/)|[❌ fail](https://fifo.ci/compare/16386801-16342104/)|\n|last-story-shadows|[❌ fail](https://fifo.ci/compare/16387167-16342329/)|[❌ fail](https://fifo.ci/compare/16386885-16342188/)|\n|lego-star-wars-crane-shadow|[❌ fail](https://fifo.ci/compare/16387150-16342312/)|[❌ fail](https://fifo.ci/compare/16386868-16342171/)|\n|lesson08|[❌ fail](https://fifo.ci/compare/16387157-16342319/)|[❌ fail](https://fifo.ci/compare/16386875-16342178/)|\n|line-width-test|[❌ fail](https://fifo.ci/compare/16387079-16342241/)|[❌ fail](https://fifo.ci/compare/16386797-16342100/)|\n|lit-cached-normal|[❌ fail](https://fifo.ci/compare/16387206-16342368/)|[❌ fail](https://fifo.ci/compare/16386924-16342227/)|\n|lm-mario-portrait|[❌ fail](https://fifo.ci/compare/16387179-16342341/)|[❌ fail](https://fifo.ci/compare/16386897-16342200/)|\n|luigi-shadows|[❌ fail](https://fifo.ci/compare/16387084-16342246/)|[❌ fail](https://fifo.ci/compare/16386802-16342105/)|\n|major-minor|[❌ fail](https://fifo.ci/compare/16387184-16342346/)|[❌ fail](https://fifo.ci/compare/16386902-16342205/)|\n|mario-baseball-shadows|[❌ fail](https://fifo.ci/compare/16387162-16342324/)|[❌ fail](https://fifo.ci/compare/16386880-16342183/)|\n|mario-golf-oob|[❌ fail](https://fifo.ci/compare/16387193-16342355/)|[❌ fail](https://fifo.ci/compare/16386911-16342214/)|\n|mario-golf-vertex-expansion|[❌ fail](https://fifo.ci/compare/16387208-16342370/)|[❌ fail](https://fifo.ci/compare/16386926-16342229/)|\n|mario-sluggers-bar|[❌ fail](https://fifo.ci/compare/16387099-16342261/)|[❌ fail](https://fifo.ci/compare/16386817-16342120/)|\n|mario-tennis-menu|[❌ fail](https://fifo.ci/compare/16387098-16342260/)|[❌ fail](https://fifo.ci/compare/16386816-16342119/)|\n|megaman-heat|[❌ fail](https://fifo.ci/compare/16387103-16342265/)|[❌ fail](https://fifo.ci/compare/16386821-16342124/)|\n|melee-depth|[❌ fail](https://fifo.ci/compare/16387139-16342301/)|[❌ fail](https://fifo.ci/compare/16386857-16342160/)|\n|melee-lighting|[❌ fail](https://fifo.ci/compare/16387073-16342235/)|[❌ fail](https://fifo.ci/compare/16386791-16342094/)|\n|metroid-visor|[❌ fail](https://fifo.ci/compare/16387149-16342311/)|[❌ fail](https://fifo.ci/compare/16386867-16342170/)|\n|mii-channel|[❌ fail](https://fifo.ci/compare/16387114-16342276/)|[❌ fail](https://fifo.ci/compare/16386832-16342135/)|\n|milotic-texture|[❌ fail](https://fifo.ci/compare/16387118-16342280/)|[❌ fail](https://fifo.ci/compare/16386836-16342139/)|\n|mini-ninjas|[❌ fail](https://fifo.ci/compare/16387085-16342247/)|[❌ fail](https://fifo.ci/compare/16386803-16342106/)|\n|mkdd-babypark|[❌ fail](https://fifo.ci/compare/16387166-16342328/)|[❌ fail](https://fifo.ci/compare/16386884-16342187/)|\n|mkdd-efb|[❌ fail](https://fifo.ci/compare/16387086-16342248/)|[❌ fail](https://fifo.ci/compare/16386804-16342107/)|\n|mkw-bridge|[❌ fail](https://fifo.ci/compare/16387177-16342339/)|[❌ fail](https://fifo.ci/compare/16386895-16342198/)|\n|mkw-flags|[❌ fail](https://fifo.ci/compare/16387195-16342357/)|[❌ fail](https://fifo.ci/compare/16386913-16342216/)|\n|mkwii-bluebox|[❌ fail](https://fifo.ci/compare/16387087-16342249/)|[❌ fail](https://fifo.ci/compare/16386805-16342108/)|\n|mmx-light|[❌ fail](https://fifo.ci/compare/16387171-16342333/)|[❌ fail](https://fifo.ci/compare/16386889-16342192/)|\n|monkeyball-fuse|[❌ fail](https://fifo.ci/compare/16387102-16342264/)|[❌ fail](https://fifo.ci/compare/16386820-16342123/)|\n|mp2-scanner|[❌ fail](https://fifo.ci/compare/16387172-16342334/)|[❌ fail](https://fifo.ci/compare/16386890-16342193/)|\n|mp3-bloom|[❌ fail](https://fifo.ci/compare/16387164-16342326/)|[❌ fail](https://fifo.ci/compare/16386882-16342185/)|\n|mp4-vertexcache|[❌ fail](https://fifo.ci/compare/16387194-16342356/)|[❌ fail](https://fifo.ci/compare/16386912-16342215/)|\n|mp7-text|[❌ fail](https://fifo.ci/compare/16387116-16342278/)|[❌ fail](https://fifo.ci/compare/16386834-16342137/)|\n|mp8-widescreen|[❌ fail](https://fifo.ci/compare/16387192-16342354/)|[❌ fail](https://fifo.ci/compare/16386910-16342213/)|\n|mtennis-zfreeze|[❌ fail](https://fifo.ci/compare/16387101-16342263/)|[❌ fail](https://fifo.ci/compare/16386819-16342122/)|\n|my-word-coach|[❌ fail](https://fifo.ci/compare/16387113-16342275/)|[❌ fail](https://fifo.ci/compare/16386831-16342134/)|\n|nddemo-bumpmapping|[❌ fail](https://fifo.ci/compare/16387124-16342286/)|[❌ fail](https://fifo.ci/compare/16386842-16342145/)|\n|nddemo-lighting|[❌ fail](https://fifo.ci/compare/16387145-16342307/)|[❌ fail](https://fifo.ci/compare/16386863-16342166/)|\n|nes-vc|[❌ fail](https://fifo.ci/compare/16387142-16342304/)|[❌ fail](https://fifo.ci/compare/16386860-16342163/)|\n|nfsu-purplerect|[❌ fail](https://fifo.ci/compare/16387088-16342250/)|[❌ fail](https://fifo.ci/compare/16386806-16342109/)|\n|nfsu-reflections|[❌ fail](https://fifo.ci/compare/16387078-16342240/)|[❌ fail](https://fifo.ci/compare/16386796-16342099/)|\n|nhl-slap|[❌ fail](https://fifo.ci/compare/16387173-16342335/)|[❌ fail](https://fifo.ci/compare/16386891-16342194/)|\n|nintendo-channel|[❌ fail](https://fifo.ci/compare/16387182-16342344/)|[❌ fail](https://fifo.ci/compare/16386900-16342203/)|\n|nsmbw-coins|[❌ fail](https://fifo.ci/compare/16387131-16342293/)|[❌ fail](https://fifo.ci/compare/16386849-16342152/)|\n|nsmbw-intro|[❌ fail](https://fifo.ci/compare/16387080-16342242/)|[❌ fail](https://fifo.ci/compare/16386798-16342101/)|\n|oversized-depth-range|[❌ fail](https://fifo.ci/compare/16387205-16342367/)|[❌ fail](https://fifo.ci/compare/16386923-16342226/)|\n|pbr-sfx|[❌ fail](https://fifo.ci/compare/16387191-16342353/)|[❌ fail](https://fifo.ci/compare/16386909-16342212/)|\n|pm-hc-jp|[❌ fail](https://fifo.ci/compare/16387126-16342288/)|[❌ fail](https://fifo.ci/compare/16386844-16342147/)|\n|pokemon-channel-tv|[❌ fail](https://fifo.ci/compare/16387201-16342363/)|[❌ fail](https://fifo.ci/compare/16386919-16342222/)|\n|puzzle-collection|[❌ fail](https://fifo.ci/compare/16387121-16342283/)|[❌ fail](https://fifo.ci/compare/16386839-16342142/)|\n|pw-black-bars|[❌ fail](https://fifo.ci/compare/16387117-16342279/)|[❌ fail](https://fifo.ci/compare/16386835-16342138/)|\n|quake-gx|[❌ fail](https://fifo.ci/compare/16387197-16342359/)|[❌ fail](https://fifo.ci/compare/16386915-16342218/)|\n|rs2-bumpmapping|[❌ fail](https://fifo.ci/compare/16387155-16342317/)|[❌ fail](https://fifo.ci/compare/16386873-16342176/)|\n|rs2-glass|[❌ fail](https://fifo.ci/compare/16387106-16342268/)|[❌ fail](https://fifo.ci/compare/16386824-16342127/)|\n|rs2-skybox|[❌ fail](https://fifo.ci/compare/16387123-16342285/)|[❌ fail](https://fifo.ci/compare/16386841-16342144/)|\n|rs2-zfreeze|[❌ fail](https://fifo.ci/compare/16387089-16342251/)|[❌ fail](https://fifo.ci/compare/16386807-16342110/)|\n|rs3-bumpmapping|[❌ fail](https://fifo.ci/compare/16387156-16342318/)|[❌ fail](https://fifo.ci/compare/16386874-16342177/)|\n|rs3-skybox2|[❌ fail](https://fifo.ci/compare/16387168-16342330/)|[❌ fail](https://fifo.ci/compare/16386886-16342189/)|\n|sadx-ui|[❌ fail](https://fifo.ci/compare/16387108-16342270/)|[❌ fail](https://fifo.ci/compare/16386826-16342129/)|\n|sf-assault-flashing|[❌ fail](https://fifo.ci/compare/16387077-16342239/)|[❌ fail](https://fifo.ci/compare/16386795-16342098/)|\n|sfa-shadows|[❌ fail](https://fifo.ci/compare/16387152-16342314/)|[❌ fail](https://fifo.ci/compare/16386870-16342173/)|\n|shadow-eyes|[❌ fail](https://fifo.ci/compare/16387183-16342345/)|[❌ fail](https://fifo.ci/compare/16386901-16342204/)|\n|simpsons-game|[❌ fail](https://fifo.ci/compare/16387154-16342316/)|[❌ fail](https://fifo.ci/compare/16386872-16342175/)|\n|smb-mirror|[❌ fail](https://fifo.ci/compare/16387176-16342338/)|[❌ fail](https://fifo.ci/compare/16386894-16342197/)|\n|smg-marioeyes|[❌ fail](https://fifo.ci/compare/16387090-16342252/)|[❌ fail](https://fifo.ci/compare/16386808-16342111/)|\n|smg-mmg|[❌ fail](https://fifo.ci/compare/16387186-16342348/)|[❌ fail](https://fifo.ci/compare/16386904-16342207/)|\n|smg-roar|[❌ fail](https://fifo.ci/compare/16387189-16342351/)|[❌ fail](https://fifo.ci/compare/16386907-16342210/)|\n|smg2-fog|[❌ fail](https://fifo.ci/compare/16387097-16342259/)|[❌ fail](https://fifo.ci/compare/16386815-16342118/)|\n|sms-bubbles|[❌ fail](https://fifo.ci/compare/16387076-16342238/)|[❌ fail](https://fifo.ci/compare/16386794-16342097/)|\n|sms-coconut-drinks|[❌ fail](https://fifo.ci/compare/16387200-16342362/)|[❌ fail](https://fifo.ci/compare/16386918-16342221/)|\n|sms-gc|[❌ fail](https://fifo.ci/compare/16387128-16342290/)|[❌ fail](https://fifo.ci/compare/16386846-16342149/)|\n|sms-water|[❌ fail](https://fifo.ci/compare/16387159-16342321/)|[❌ fail](https://fifo.ci/compare/16386877-16342180/)|\n|soa-black|[❌ fail](https://fifo.ci/compare/16387105-16342267/)|[❌ fail](https://fifo.ci/compare/16386823-16342126/)|\n|sonic-riders-blur|[❌ fail](https://fifo.ci/compare/16387161-16342323/)|[❌ fail](https://fifo.ci/compare/16386879-16342182/)|\n|sonic-riders-zg-4p|[❌ fail](https://fifo.ci/compare/16387188-16342350/)|[❌ fail](https://fifo.ci/compare/16386906-16342209/)|\n|soniccolors-mm|[❌ fail](https://fifo.ci/compare/16387130-16342292/)|[❌ fail](https://fifo.ci/compare/16386848-16342151/)|\n|sonicriderszg-gb|[❌ fail](https://fifo.ci/compare/16387129-16342291/)|[❌ fail](https://fifo.ci/compare/16386847-16342150/)|\n|spider-man-inverted-depth|[❌ fail](https://fifo.ci/compare/16387203-16342365/)|[❌ fail](https://fifo.ci/compare/16386921-16342224/)|\n|spyro-bloom|[❌ fail](https://fifo.ci/compare/16387125-16342287/)|[❌ fail](https://fifo.ci/compare/16386843-16342146/)|\n|spyro-depth|[❌ fail](https://fifo.ci/compare/16387146-16342308/)|[❌ fail](https://fifo.ci/compare/16386864-16342167/)|\n|ss-map|[❌ fail](https://fifo.ci/compare/16387132-16342294/)|[❌ fail](https://fifo.ci/compare/16386850-16342153/)|\n|ssbb-mod-lloyd|[❌ fail](https://fifo.ci/compare/16387147-16342309/)|[❌ fail](https://fifo.ci/compare/16386865-16342168/)|\n|ssbm-pointsize|[❌ fail](https://fifo.ci/compare/16387095-16342257/)|[❌ fail](https://fifo.ci/compare/16386813-16342116/)|\n|super-sluggers-white-out|[❌ fail](https://fifo.ci/compare/16387122-16342284/)|[❌ fail](https://fifo.ci/compare/16386840-16342143/)|\n|sw3-dt|[❌ fail](https://fifo.ci/compare/16387151-16342313/)|[❌ fail](https://fifo.ci/compare/16386869-16342172/)|\n|taiko-depth|[❌ fail](https://fifo.ci/compare/16387144-16342306/)|[❌ fail](https://fifo.ci/compare/16386862-16342165/)|\n|thps3-earlyz|[❌ fail](https://fifo.ci/compare/16387137-16342299/)|[❌ fail](https://fifo.ci/compare/16386855-16342158/)|\n|thps4-shadow|[❌ fail](https://fifo.ci/compare/16387110-16342272/)|[❌ fail](https://fifo.ci/compare/16386828-16342131/)|\n|tla-menu|[❌ fail](https://fifo.ci/compare/16387140-16342302/)|[❌ fail](https://fifo.ci/compare/16386858-16342161/)|\n|tos-invis-char|[❌ fail](https://fifo.ci/compare/16387081-16342243/)|[❌ fail](https://fifo.ci/compare/16386799-16342102/)|\n|tp-skin|[❌ fail](https://fifo.ci/compare/16387181-16342343/)|[❌ fail](https://fifo.ci/compare/16386899-16342202/)|\n|tsp3-pinkgrass|[❌ fail](https://fifo.ci/compare/16387091-16342253/)|[❌ fail](https://fifo.ci/compare/16386809-16342112/)|\n|vegas-party-depth|[❌ fail](https://fifo.ci/compare/16387136-16342298/)|[❌ fail](https://fifo.ci/compare/16386854-16342157/)|\n|viewitful-joe-distortion|[❌ fail](https://fifo.ci/compare/16387180-16342342/)|[❌ fail](https://fifo.ci/compare/16386898-16342201/)|\n|ww-song-of-passing|[❌ fail](https://fifo.ci/compare/16387199-16342361/)|[❌ fail](https://fifo.ci/compare/16386917-16342220/)|\n|xblade-bloom|[❌ fail](https://fifo.ci/compare/16387198-16342360/)|[❌ fail](https://fifo.ci/compare/16386916-16342219/)|\n|xenoblade-menu|[❌ fail](https://fifo.ci/compare/16387071-16342233/)|[❌ fail](https://fifo.ci/compare/16386789-16342092/)|\n|zbuff-test|[❌ fail](https://fifo.ci/compare/16387207-16342369/)|[❌ fail](https://fifo.ci/compare/16386925-16342228/)|\n|zelda1-vc|[❌ fail](https://fifo.ci/compare/16387120-16342282/)|[❌ fail](https://fifo.ci/compare/16386838-16342141/)|\n|ztp-grass|[❌ fail](https://fifo.ci/compare/16387092-16342254/)|[❌ fail](https://fifo.ci/compare/16386810-16342113/)|\n|zww-armos|[❌ fail](https://fifo.ci/compare/16387072-16342234/)|[❌ fail](https://fifo.ci/compare/16386790-16342093/)|\n|zww-water|[❌ fail](https://fifo.ci/compare/16387100-16342262/)|[❌ fail](https://fifo.ci/compare/16386818-16342121/)|\n|zww-waves|[❌ fail](https://fifo.ci/compare/16387112-16342274/)|[❌ fail](https://fifo.ci/compare/16386830-16342133/)|\n</details>\n<sub><sup>automated-fifoci-reporter</sup></sub>', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T21:37:34Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5381247818', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-5381247818', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 5381247818, 'node_id': 'IC_kwDOALCn2M8AAAABQL9TSg', '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-08-22T15:47:50Z', 'updated_at': '2026-08-22T15:47:50Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/9bcbc6ce18a3c4eb9f4a6d8547c1e1f21c50d64b/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||mtl-osx-m1|mvk-osx-m1|\n|-|-|-|\n|DKCR-Char|[❌ fail](https://fifo.ci/compare/16387127-16342289/)|[❌ fail](https://fifo.ci/compare/16386845-16342148/)|\n|DKCR-fast-depth|[❌ fail](https://fifo.ci/compare/16387148-16342310/)|[❌ fail](https://fifo.ci/compare/16386866-16342169/)|\n|MaS-LOG-wiimote|[❌ fail](https://fifo.ci/compare/16387165-16342327/)|[❌ fail](https://fifo.ci/compare/16386883-16342186/)|\n|ab11-homebrew|[❌ fail](https://fifo.ci/compare/16387153-16342315/)|[❌ fail](https://fifo.ci/compare/16386871-16342174/)|\n|aeon-charge-attack|[❌ fail](https://fifo.ci/compare/16387133-16342295/)|[❌ fail](https://fifo.ci/compare/16386851-16342154/)|\n|bk-tev|[❌ fail](https://fifo.ci/compare/16387175-16342337/)|[❌ fail](https://fifo.ci/compare/16386893-16342196/)|\n|burnout2-vehicletextures|[❌ fail](https://fifo.ci/compare/16387170-16342332/)|[❌ fail](https://fifo.ci/compare/16386888-16342191/)|\n|chibi-robo-fastdepth|[❌ fail](https://fifo.ci/compare/16387109-16342271/)|[❌ fail](https://fifo.ci/compare/16386827-16342130/)|\n|chibi-robo-zfighting|[❌ fail](https://fifo.ci/compare/16387075-16342237/)|[❌ fail](https://fifo.ci/compare/16386793-16342096/)|\n|custom-brawl-char|[❌ fail](https://fifo.ci/compare/16387135-16342297/)|[❌ fail](https://fifo.ci/compare/16386853-16342156/)|\n|dbz-depth|[❌ fail](https://fifo.ci/compare/16387107-16342269/)|[❌ fail](https://fifo.ci/compare/16386825-16342128/)|\n|default-depth-range|[❌ fail](https://fifo.ci/compare/16387202-16342364/)|[❌ fail](https://fifo.ci/compare/16386920-16342223/)|\n|djfny-menu|[❌ fail](https://fifo.ci/compare/16387111-16342273/)|[❌ fail](https://fifo.ci/compare/16386829-16342132/)|\n|djhero2-blend|[❌ fail](https://fifo.ci/compare/16387174-16342336/)|[❌ fail](https://fifo.ci/compare/16386892-16342195/)|\n|ea-pink|[❌ fail](https://fifo.ci/compare/16387187-16342349/)|[❌ fail](https://fifo.ci/compare/16386905-16342208/)|\n|ea-vp6|[❌ fail](https://fifo.ci/compare/16387093-16342255/)|[❌ fail](https://fifo.ci/compare/16386811-16342114/)|\n|ed-updated|[❌ fail](https://fifo.ci/compare/16387143-16342305/)|[❌ fail](https://fifo.ci/compare/16386861-16342164/)|\n|et-vid|[❌ fail](https://fifo.ci/compare/16387158-16342320/)|[❌ fail](https://fifo.ci/compare/16386876-16342179/)|\n|f-zero-rain|[❌ fail](https://fifo.ci/compare/16387141-16342303/)|[❌ fail](https://fifo.ci/compare/16386859-16342162/)|\n|fifa-street|[❌ fail](https://fifo.ci/compare/16387104-16342266/)|[❌ fail](https://fifo.ci/compare/16386822-16342125/)|\n|find-mii|[❌ fail](https://fifo.ci/compare/16387115-16342277/)|[❌ fail](https://fifo.ci/compare/16386833-16342136/)|\n|fishing-resort-map|[❌ fail](https://fifo.ci/compare/16387163-16342325/)|[❌ fail](https://fifo.ci/compare/16386881-16342184/)|\n|fog-adj|[❌ fail](https://fifo.ci/compare/16387082-16342244/)|[❌ fail](https://fifo.ci/compare/16386800-16342103/)|\n|fortune-street|[❌ fail](https://fifo.ci/compare/16387094-16342256/)|[❌ fail](https://fifo.ci/compare/16386812-16342115/)|\n|fortune-street-fog|[❌ fail](https://fifo.ci/compare/16387074-16342236/)|[❌ fail](https://fifo.ci/compare/16386792-16342095/)|\n|fortune-street-white-box|[❌ fail](https://fifo.ci/compare/16387096-16342258/)|[❌ fail](https://fifo.ci/compare/16386814-16342117/)|\n|fsa-layers|[❌ fail](https://fifo.ci/compare/16387119-16342281/)|[❌ fail](https://fifo.ci/compare/16386837-16342140/)|\n|goldeneye-depth|[❌ fail](https://fifo.ci/compare/16387138-16342300/)|[❌ fail](https://fifo.ci/compare/16386856-16342159/)|\n|gormiti|[❌ fail](https://fifo.ci/compare/16387185-16342347/)|[❌ fail](https://fifo.ci/compare/16386903-16342206/)|\n|gx-points|[❌ fail](https://fifo.ci/compare/16387211-16342373/)|[❌ fail](https://fifo.ci/compare/16386929-16342232/)|\n|hb-discgolf|[❌ fail](https://fifo.ci/compare/16387160-16342322/)|[❌ fail](https://fifo.ci/compare/16386878-16342181/)|\n|hotwheels-shadows|[❌ fail](https://fifo.ci/compare/16387209-16342371/)|[❌ fail](https://fifo.ci/compare/16386927-16342230/)|\n|inverted-depth-range|[❌ fail](https://fifo.ci/compare/16387204-16342366/)|[❌ fail](https://fifo.ci/compare/16386922-16342225/)|\n|jb-shadow|[❌ fail](https://fifo.ci/compare/16387190-16342352/)|[❌ fail](https://fifo.ci/compare/16386908-16342211/)|\n|jd2-fmv|[❌ fail](https://fifo.ci/compare/16387178-16342340/)|[❌ fail](https://fifo.ci/compare/16386896-16342199/)|\n|jj-awae-mirrored|[❌ fail](https://fifo.ci/compare/16387169-16342331/)|[❌ fail](https://fifo.ci/compare/16386887-16342190/)|\n|kirby-logicop|[❌ fail](https://fifo.ci/compare/16387196-16342358/)|[❌ fail](https://fifo.ci/compare/16386914-16342217/)|\n|kirby-shadows|[❌ fail](https://fifo.ci/compare/16387083-16342245/)|[❌ fail](https://fifo.ci/compare/16386801-16342104/)|\n|last-story-shadows|[❌ fail](https://fifo.ci/compare/16387167-16342329/)|[❌ fail](https://fifo.ci/compare/16386885-16342188/)|\n|lego-star-wars-crane-shadow|[❌ fail](https://fifo.ci/compare/16387150-16342312/)|[❌ fail](https://fifo.ci/compare/16386868-16342171/)|\n|lesson08|[❌ fail](https://fifo.ci/compare/16387157-16342319/)|[❌ fail](https://fifo.ci/compare/16386875-16342178/)|\n|line-width-test|[❌ fail](https://fifo.ci/compare/16387079-16342241/)|[❌ fail](https://fifo.ci/compare/16386797-16342100/)|\n|lit-cached-normal|[❌ fail](https://fifo.ci/compare/16387206-16342368/)|[❌ fail](https://fifo.ci/compare/16386924-16342227/)|\n|lm-mario-portrait|[❌ fail](https://fifo.ci/compare/16387179-16342341/)|[❌ fail](https://fifo.ci/compare/16386897-16342200/)|\n|luigi-shadows|[❌ fail](https://fifo.ci/compare/16387084-16342246/)|[❌ fail](https://fifo.ci/compare/16386802-16342105/)|\n|major-minor|[❌ fail](https://fifo.ci/compare/16387184-16342346/)|[❌ fail](https://fifo.ci/compare/16386902-16342205/)|\n|mario-baseball-shadows|[❌ fail](https://fifo.ci/compare/16387162-16342324/)|[❌ fail](https://fifo.ci/compare/16386880-16342183/)|\n|mario-golf-oob|[❌ fail](https://fifo.ci/compare/16387193-16342355/)|[❌ fail](https://fifo.ci/compare/16386911-16342214/)|\n|mario-golf-vertex-expansion|[❌ fail](https://fifo.ci/compare/16387208-16342370/)|[❌ fail](https://fifo.ci/compare/16386926-16342229/)|\n|mario-sluggers-bar|[❌ fail](https://fifo.ci/compare/16387099-16342261/)|[❌ fail](https://fifo.ci/compare/16386817-16342120/)|\n|mario-tennis-menu|[❌ fail](https://fifo.ci/compare/16387098-16342260/)|[❌ fail](https://fifo.ci/compare/16386816-16342119/)|\n|megaman-heat|[❌ fail](https://fifo.ci/compare/16387103-16342265/)|[❌ fail](https://fifo.ci/compare/16386821-16342124/)|\n|melee-depth|[❌ fail](https://fifo.ci/compare/16387139-16342301/)|[❌ fail](https://fifo.ci/compare/16386857-16342160/)|\n|melee-lighting|[❌ fail](https://fifo.ci/compare/16387073-16342235/)|[❌ fail](https://fifo.ci/compare/16386791-16342094/)|\n|metroid-visor|[❌ fail](https://fifo.ci/compare/16387149-16342311/)|[❌ fail](https://fifo.ci/compare/16386867-16342170/)|\n|mii-channel|[❌ fail](https://fifo.ci/compare/16387114-16342276/)|[❌ fail](https://fifo.ci/compare/16386832-16342135/)|\n|milotic-texture|[❌ fail](https://fifo.ci/compare/16387118-16342280/)|[❌ fail](https://fifo.ci/compare/16386836-16342139/)|\n|mini-ninjas|[❌ fail](https://fifo.ci/compare/16387085-16342247/)|[❌ fail](https://fifo.ci/compare/16386803-16342106/)|\n|mkdd-babypark|[❌ fail](https://fifo.ci/compare/16387166-16342328/)|[❌ fail](https://fifo.ci/compare/16386884-16342187/)|\n|mkdd-efb|[❌ fail](https://fifo.ci/compare/16387086-16342248/)|[❌ fail](https://fifo.ci/compare/16386804-16342107/)|\n|mkw-bridge|[❌ fail](https://fifo.ci/compare/16387177-16342339/)|[❌ fail](https://fifo.ci/compare/16386895-16342198/)|\n|mkw-flags|[❌ fail](https://fifo.ci/compare/16387195-16342357/)|[❌ fail](https://fifo.ci/compare/16386913-16342216/)|\n|mkwii-bluebox|[❌ fail](https://fifo.ci/compare/16387087-16342249/)|[❌ fail](https://fifo.ci/compare/16386805-16342108/)|\n|mmx-light|[❌ fail](https://fifo.ci/compare/16387171-16342333/)|[❌ fail](https://fifo.ci/compare/16386889-16342192/)|\n|monkeyball-fuse|[❌ fail](https://fifo.ci/compare/16387102-16342264/)|[❌ fail](https://fifo.ci/compare/16386820-16342123/)|\n|mp2-scanner|[❌ fail](https://fifo.ci/compare/16387172-16342334/)|[❌ fail](https://fifo.ci/compare/16386890-16342193/)|\n|mp3-bloom|[❌ fail](https://fifo.ci/compare/16387164-16342326/)|[❌ fail](https://fifo.ci/compare/16386882-16342185/)|\n|mp4-vertexcache|[❌ fail](https://fifo.ci/compare/16387194-16342356/)|[❌ fail](https://fifo.ci/compare/16386912-16342215/)|\n|mp7-text|[❌ fail](https://fifo.ci/compare/16387116-16342278/)|[❌ fail](https://fifo.ci/compare/16386834-16342137/)|\n|mp8-widescreen|[❌ fail](https://fifo.ci/compare/16387192-16342354/)|[❌ fail](https://fifo.ci/compare/16386910-16342213/)|\n|mtennis-zfreeze|[❌ fail](https://fifo.ci/compare/16387101-16342263/)|[❌ fail](https://fifo.ci/compare/16386819-16342122/)|\n|my-word-coach|[❌ fail](https://fifo.ci/compare/16387113-16342275/)|[❌ fail](https://fifo.ci/compare/16386831-16342134/)|\n|nddemo-bumpmapping|[❌ fail](https://fifo.ci/compare/16387124-16342286/)|[❌ fail](https://fifo.ci/compare/16386842-16342145/)|\n|nddemo-lighting|[❌ fail](https://fifo.ci/compare/16387145-16342307/)|[❌ fail](https://fifo.ci/compare/16386863-16342166/)|\n|nes-vc|[❌ fail](https://fifo.ci/compare/16387142-16342304/)|[❌ fail](https://fifo.ci/compare/16386860-16342163/)|\n|nfsu-purplerect|[❌ fail](https://fifo.ci/compare/16387088-16342250/)|[❌ fail](https://fifo.ci/compare/16386806-16342109/)|\n|nfsu-reflections|[❌ fail](https://fifo.ci/compare/16387078-16342240/)|[❌ fail](https://fifo.ci/compare/16386796-16342099/)|\n|nhl-slap|[❌ fail](https://fifo.ci/compare/16387173-16342335/)|[❌ fail](https://fifo.ci/compare/16386891-16342194/)|\n|nintendo-channel|[❌ fail](https://fifo.ci/compare/16387182-16342344/)|[❌ fail](https://fifo.ci/compare/16386900-16342203/)|\n|nsmbw-coins|[❌ fail](https://fifo.ci/compare/16387131-16342293/)|[❌ fail](https://fifo.ci/compare/16386849-16342152/)|\n|nsmbw-intro|[❌ fail](https://fifo.ci/compare/16387080-16342242/)|[❌ fail](https://fifo.ci/compare/16386798-16342101/)|\n|oversized-depth-range|[❌ fail](https://fifo.ci/compare/16387205-16342367/)|[❌ fail](https://fifo.ci/compare/16386923-16342226/)|\n|pbr-sfx|[❌ fail](https://fifo.ci/compare/16387191-16342353/)|[❌ fail](https://fifo.ci/compare/16386909-16342212/)|\n|pm-hc-jp|[❌ fail](https://fifo.ci/compare/16387126-16342288/)|[❌ fail](https://fifo.ci/compare/16386844-16342147/)|\n|pokemon-channel-tv|[❌ fail](https://fifo.ci/compare/16387201-16342363/)|[❌ fail](https://fifo.ci/compare/16386919-16342222/)|\n|puzzle-collection|[❌ fail](https://fifo.ci/compare/16387121-16342283/)|[❌ fail](https://fifo.ci/compare/16386839-16342142/)|\n|pw-black-bars|[❌ fail](https://fifo.ci/compare/16387117-16342279/)|[❌ fail](https://fifo.ci/compare/16386835-16342138/)|\n|quake-gx|[❌ fail](https://fifo.ci/compare/16387197-16342359/)|[❌ fail](https://fifo.ci/compare/16386915-16342218/)|\n|rs2-bumpmapping|[❌ fail](https://fifo.ci/compare/16387155-16342317/)|[❌ fail](https://fifo.ci/compare/16386873-16342176/)|\n|rs2-glass|[❌ fail](https://fifo.ci/compare/16387106-16342268/)|[❌ fail](https://fifo.ci/compare/16386824-16342127/)|\n|rs2-skybox|[❌ fail](https://fifo.ci/compare/16387123-16342285/)|[❌ fail](https://fifo.ci/compare/16386841-16342144/)|\n|rs2-zfreeze|[❌ fail](https://fifo.ci/compare/16387089-16342251/)|[❌ fail](https://fifo.ci/compare/16386807-16342110/)|\n|rs3-bumpmapping|[❌ fail](https://fifo.ci/compare/16387156-16342318/)|[❌ fail](https://fifo.ci/compare/16386874-16342177/)|\n|rs3-skybox2|[❌ fail](https://fifo.ci/compare/16387168-16342330/)|[❌ fail](https://fifo.ci/compare/16386886-16342189/)|\n|sadx-ui|[❌ fail](https://fifo.ci/compare/16387108-16342270/)|[❌ fail](https://fifo.ci/compare/16386826-16342129/)|\n|sf-assault-flashing|[❌ fail](https://fifo.ci/compare/16387077-16342239/)|[❌ fail](https://fifo.ci/compare/16386795-16342098/)|\n|sfa-shadows|[❌ fail](https://fifo.ci/compare/16387152-16342314/)|[❌ fail](https://fifo.ci/compare/16386870-16342173/)|\n|shadow-eyes|[❌ fail](https://fifo.ci/compare/16387183-16342345/)|[❌ fail](https://fifo.ci/compare/16386901-16342204/)|\n|simpsons-game|[❌ fail](https://fifo.ci/compare/16387154-16342316/)|[❌ fail](https://fifo.ci/compare/16386872-16342175/)|\n|smb-mirror|[❌ fail](https://fifo.ci/compare/16387176-16342338/)|[❌ fail](https://fifo.ci/compare/16386894-16342197/)|\n|smg-marioeyes|[❌ fail](https://fifo.ci/compare/16387090-16342252/)|[❌ fail](https://fifo.ci/compare/16386808-16342111/)|\n|smg-mmg|[❌ fail](https://fifo.ci/compare/16387186-16342348/)|[❌ fail](https://fifo.ci/compare/16386904-16342207/)|\n|smg-roar|[❌ fail](https://fifo.ci/compare/16387189-16342351/)|[❌ fail](https://fifo.ci/compare/16386907-16342210/)|\n|smg2-fog|[❌ fail](https://fifo.ci/compare/16387097-16342259/)|[❌ fail](https://fifo.ci/compare/16386815-16342118/)|\n|sms-bubbles|[❌ fail](https://fifo.ci/compare/16387076-16342238/)|[❌ fail](https://fifo.ci/compare/16386794-16342097/)|\n|sms-coconut-drinks|[❌ fail](https://fifo.ci/compare/16387200-16342362/)|[❌ fail](https://fifo.ci/compare/16386918-16342221/)|\n|sms-gc|[❌ fail](https://fifo.ci/compare/16387128-16342290/)|[❌ fail](https://fifo.ci/compare/16386846-16342149/)|\n|sms-water|[❌ fail](https://fifo.ci/compare/16387159-16342321/)|[❌ fail](https://fifo.ci/compare/16386877-16342180/)|\n|soa-black|[❌ fail](https://fifo.ci/compare/16387105-16342267/)|[❌ fail](https://fifo.ci/compare/16386823-16342126/)|\n|sonic-riders-blur|[❌ fail](https://fifo.ci/compare/16387161-16342323/)|[❌ fail](https://fifo.ci/compare/16386879-16342182/)|\n|sonic-riders-zg-4p|[❌ fail](https://fifo.ci/compare/16387188-16342350/)|[❌ fail](https://fifo.ci/compare/16386906-16342209/)|\n|soniccolors-mm|[❌ fail](https://fifo.ci/compare/16387130-16342292/)|[❌ fail](https://fifo.ci/compare/16386848-16342151/)|\n|sonicriderszg-gb|[❌ fail](https://fifo.ci/compare/16387129-16342291/)|[❌ fail](https://fifo.ci/compare/16386847-16342150/)|\n|spider-man-inverted-depth|[❌ fail](https://fifo.ci/compare/16387203-16342365/)|[❌ fail](https://fifo.ci/compare/16386921-16342224/)|\n|spyro-bloom|[❌ fail](https://fifo.ci/compare/16387125-16342287/)|[❌ fail](https://fifo.ci/compare/16386843-16342146/)|\n|spyro-depth|[❌ fail](https://fifo.ci/compare/16387146-16342308/)|[❌ fail](https://fifo.ci/compare/16386864-16342167/)|\n|ss-map|[❌ fail](https://fifo.ci/compare/16387132-16342294/)|[❌ fail](https://fifo.ci/compare/16386850-16342153/)|\n|ssbb-mod-lloyd|[❌ fail](https://fifo.ci/compare/16387147-16342309/)|[❌ fail](https://fifo.ci/compare/16386865-16342168/)|\n|ssbm-pointsize|[❌ fail](https://fifo.ci/compare/16387095-16342257/)|[❌ fail](https://fifo.ci/compare/16386813-16342116/)|\n|super-sluggers-white-out|[❌ fail](https://fifo.ci/compare/16387122-16342284/)|[❌ fail](https://fifo.ci/compare/16386840-16342143/)|\n|sw3-dt|[❌ fail](https://fifo.ci/compare/16387151-16342313/)|[❌ fail](https://fifo.ci/compare/16386869-16342172/)|\n|taiko-depth|[❌ fail](https://fifo.ci/compare/16387144-16342306/)|[❌ fail](https://fifo.ci/compare/16386862-16342165/)|\n|thps3-earlyz|[❌ fail](https://fifo.ci/compare/16387137-16342299/)|[❌ fail](https://fifo.ci/compare/16386855-16342158/)|\n|thps4-shadow|[❌ fail](https://fifo.ci/compare/16387110-16342272/)|[❌ fail](https://fifo.ci/compare/16386828-16342131/)|\n|tla-menu|[❌ fail](https://fifo.ci/compare/16387140-16342302/)|[❌ fail](https://fifo.ci/compare/16386858-16342161/)|\n|tos-invis-char|[❌ fail](https://fifo.ci/compare/16387081-16342243/)|[❌ fail](https://fifo.ci/compare/16386799-16342102/)|\n|tp-skin|[❌ fail](https://fifo.ci/compare/16387181-16342343/)|[❌ fail](https://fifo.ci/compare/16386899-16342202/)|\n|tsp3-pinkgrass|[❌ fail](https://fifo.ci/compare/16387091-16342253/)|[❌ fail](https://fifo.ci/compare/16386809-16342112/)|\n|vegas-party-depth|[❌ fail](https://fifo.ci/compare/16387136-16342298/)|[❌ fail](https://fifo.ci/compare/16386854-16342157/)|\n|viewitful-joe-distortion|[❌ fail](https://fifo.ci/compare/16387180-16342342/)|[❌ fail](https://fifo.ci/compare/16386898-16342201/)|\n|ww-song-of-passing|[❌ fail](https://fifo.ci/compare/16387199-16342361/)|[❌ fail](https://fifo.ci/compare/16386917-16342220/)|\n|xblade-bloom|[❌ fail](https://fifo.ci/compare/16387198-16342360/)|[❌ fail](https://fifo.ci/compare/16386916-16342219/)|\n|xenoblade-menu|[❌ fail](https://fifo.ci/compare/16387071-16342233/)|[❌ fail](https://fifo.ci/compare/16386789-16342092/)|\n|zbuff-test|[❌ fail](https://fifo.ci/compare/16387207-16342369/)|[❌ fail](https://fifo.ci/compare/16386925-16342228/)|\n|zelda1-vc|[❌ fail](https://fifo.ci/compare/16387120-16342282/)|[❌ fail](https://fifo.ci/compare/16386838-16342141/)|\n|ztp-grass|[❌ fail](https://fifo.ci/compare/16387092-16342254/)|[❌ fail](https://fifo.ci/compare/16386810-16342113/)|\n|zww-armos|[❌ fail](https://fifo.ci/compare/16387072-16342234/)|[❌ fail](https://fifo.ci/compare/16386790-16342093/)|\n|zww-water|[❌ fail](https://fifo.ci/compare/16387100-16342262/)|[❌ fail](https://fifo.ci/compare/16386818-16342121/)|\n|zww-waves|[❌ fail](https://fifo.ci/compare/16387112-16342274/)|[❌ fail](https://fifo.ci/compare/16386830-16342133/)|\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/5381247818/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T21:24:06.978425	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6588817099', 'safe_author': True, 'body': "> about point 1, after around 15 seconds of no activity, the disc drive should slow down, but never stop completely, there's a watcher in the code specifically for periodically sending a spin up command to the drive in order to prevent it from idling. Could you check if your drive is stopping completely? I'm not sure how audible the desktop drives are, but on my portable BU50N I can easily tell if it still spinning (albeit slowly) or if it stopped completely just by noise\r\n\r\nIt was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc. \r\n", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T21:24:04Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6588817099', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6588817099', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6588817099, 'node_id': 'IC_kwDOALCn2M8AAAABiLleyw', '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-11-02T21:24:04Z', 'updated_at': '2026-11-02T21:24:04Z', 'body': "> about point 1, after around 15 seconds of no activity, the disc drive should slow down, but never stop completely, there's a watcher in the code specifically for periodically sending a spin up command to the drive in order to prevent it from idling. Could you check if your drive is stopping completely? I'm not sure how audible the desktop drives are, but on my portable BU50N I can easily tell if it still spinning (albeit slowly) or if it stopped completely just by noise\r\n\r\nIt was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc. \r\n", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6588817099/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:39:15.761306	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Yola-cola', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6587905680', 'safe_author': False, 'body': "I tested it with Wii Play on windows and it works great.  However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console. \r\n\r\nMy suggestion would be letting the drive be hooked to the disc channel so physical disc changing can be seamless. Plus if there's no disc inserted,you could have it rollback to whatever game file you had map to the virtual disc drive instead.\r\n\r\nI also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T20:39:13Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6587905680', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6587905680', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6587905680, 'node_id': 'IC_kwDOALCn2M8AAAABiKt2kA', 'user': {'login': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T20:39:13Z', 'updated_at': '2026-11-02T20:39:13Z', 'body': "I tested it with Wii Play on windows and it works great.  However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console. \r\n\r\nMy suggestion would be letting the drive be hooked to the disc channel so physical disc changing can be seamless. Plus if there's no disc inserted,you could have it rollback to whatever game file you had map to the virtual disc drive instead.\r\n\r\nI also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6587905680/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:17:59.806251	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586181869', 'safe_author': True, 'body': "It's to make sure I cover every enum member to avoid a warning about the switch being non-exhaustive.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T19:17:57Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586181869', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586181869', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6586181869, 'node_id': 'IC_kwDOALCn2M8AAAABiJEo7Q', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:17:57Z', 'updated_at': '2026-11-02T19:17:57Z', 'body': "It's to make sure I cover every enum member to avoid a warning about the switch being non-exhaustive.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586181869/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:15:26.375136	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Rumi-Larry', 'action': 'edited', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586123014', 'safe_author': False, 'body': '> Two returns to unknown? Can you please explain what you mean?\r\n\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> Two returns to unknown? Can you please explain what you mean?\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T19:15:20Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586123014', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6586123014, 'node_id': 'IC_kwDOALCn2M8AAAABiJBDBg', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:15:06Z', 'updated_at': '2026-11-02T19:15:20Z', 'body': '> Two returns to unknown? Can you please explain what you mean?\r\n\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:15:08.585832	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Rumi-Larry', 'action': 'created', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586123014', 'safe_author': False, 'body': '> Two returns to unknown? Can you please explain what you mean?\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T19:15:06Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586123014', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6586123014, 'node_id': 'IC_kwDOALCn2M8AAAABiJBDBg', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:15:06Z', 'updated_at': '2026-11-02T19:15:06Z', 'body': '> Two returns to unknown? Can you please explain what you mean?\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:13:22.735842	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6586086853', 'safe_author': True, 'body': "@debug687 what optical drive are you using? Are you trying original game discs or backups? There's not a lot to work from in your screenshots, so I'll kindly ask you to retry again with the logs enabled, then post them here so I can investigate.\r\n\r\nAlso, keep in mind Eternal Darkness is a DTK Audio game, that initial loading screen will take ages (with very garbled audio) before you can actually reach the menus, and the loading screen after starting a new game or loading a save will trigger the same behavior. I took the screen cap with it as I was way past my bedtime and it was already inside the drive, but it's not a good game to test this feature as it is now.\r\n\r\n-----\r\n@Yola-cola it should work with OmniDrive 1.0.2 too. All the changes made in OmniDrive so far don't seem to affect the commands this PR uses, so it theoretically should work with any version.\r\n\r\n-----\r\n@Rumi-Larry about 90% of the code is shared between the two paths, only the read command that is issued to the drive that changes based on whether you've inserted a backup or an original disc (the latter requiring OmniDrive firmware, of course)...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T19:13:16Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586086853', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6586086853', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6586086853, 'node_id': 'IC_kwDOALCn2M8AAAABiI-1xQ', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:13:16Z', 'updated_at': '2026-11-02T19:13:16Z', 'body': "@debug687 what optical drive are you using? Are you trying original game discs or backups? There's not a lot to work from in your screenshots, so I'll kindly ask you to retry again with the logs enabled, then post them here so I can investigate.\r\n\r\nAlso, keep in mind Eternal Darkness is a DTK Audio game, that initial loading screen will take ages (with very garbled audio) before you can actually reach the menus, and the loading screen after starting a new game or loading a save will trigger the same behavior. I took the screen cap with it as I was way past my bedtime and it was already inside the drive, but it's not a good game to test this feature as it is now.\r\n\r\n-----\r\n@Yola-cola it should work with OmniDrive 1.0.2 too. All the changes made in OmniDrive so far don't seem to affect the commands this PR uses, so it theoretically should work with any version.\r\n\r\n-----\r\n@Rumi-Larry about 90% of the code is shared between the two paths, only the read command that is issued to the drive that changes based on whether you've inserted a backup or an original disc (the latter requiring OmniDrive firmware, of course)...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586086853/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:06:50.504376	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Rumi-Larry', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6585921716', 'safe_author': False, 'body': "I would suggest separating omnidrive support to its own pr, but it's not a big deal", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T19: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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6585921716', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6585921716', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6585921716, 'node_id': 'IC_kwDOALCn2M8AAAABiI0wtA', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:06:47Z', 'updated_at': '2026-11-02T19:06:47Z', 'body': "I would suggest separating omnidrive support to its own pr, but it's not a big deal", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6585921716/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T19:00:25.229719	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6585743338', 'safe_author': True, 'body': 'For people that are testing this (especially on Linux), please make sure to set log verbosity to Info, and enable log types COMMON, DIO, DVD and IOS_DI, it should contain valuable details on the failures or weird behaviors you experience, if any.\r\n\r\n-----\r\n@JoshuaVandaele about point 1, after around 15 seconds of no activity, the disc drive should slow down, but never stop completely, there\'s a watcher in the code specifically for periodically sending a spin up command to the drive in order to prevent it from idling. Could you check if your drive is stopping completely? I\'m not sure how audible the desktop drives are, but on my portable BU50N I can easily tell if it still spinning (albeit slowly) or if it stopped completely just by noise.\r\n\r\nThere\'s an alternate mode where the watcher sends a read command for the last read sector again instead of sending a spin up command that might work better/worse for your drive, but at the moment it can only be changed directly in the code, it\'s not exposed anywhere.\r\n\r\nRegarding 2, I\'ve not noticed this, speeds remained consistent regardless of how long I play. Might be tied to the drive\'s behavior, though, at the moment Dolphin doesn\'t try to set a read speed (the code is already there, just unused for now), so it just let the drive do whatever it wants with the speed.\r\n\r\nAbout 3, I didn\'t know those options also accepted drive paths, so it\'s not surprising they "break", as I\'ve hooked the optical disc progress dialog only to "Change Disc" and "Boot From Optical Media" actions from the File menu. I\'ll add that to my to do list, shouldn\'t be too hard.\r\n\r\nRegarding 4, I didn\'t find a reliable way of distinguishing between actual read errors and the disc being ejected, so it may retry the read a few times before finally ejecting the disc from the emulated console. From my tests, the game never took so long to realize, so it might be another Linux-specific quirk I\'ll need to investigate further.\r\n\r\nSpeaking of that, I also just reproduced the issue from 5 on Ubuntu, the SCSI command for ejecting the disc is always failing, might be related to permission errors, will need to investigate further. I don\'t think it\'s your drive, sounds like it\'s related to the Linux implementation of SCSIDevice.cpp/.h.\r\n\r\nAbout 6, the drive\'s firmware is a bit buggy, and sometimes it goes into a broken state. It\'s rare, but when you trigger it, nearly everything starts behaving weird until you power cycle the drive (by the way, I don\'t think it\'s related to OmniDrive, I managed to trigger that broken state on stock firmware as well)\r\n\r\n-----\r\nThanks for the feedback so far!\r\n', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T19:00:23Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6585743338', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6585743338', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6585743338, 'node_id': 'IC_kwDOALCn2M8AAAABiIp36g', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:00:23Z', 'updated_at': '2026-11-02T19:00:23Z', 'body': 'For people that are testing this (especially on Linux), please make sure to set log verbosity to Info, and enable log types COMMON, DIO, DVD and IOS_DI, it should contain valuable details on the failures or weird behaviors you experience, if any.\r\n\r\n-----\r\n@JoshuaVandaele about point 1, after around 15 seconds of no activity, the disc drive should slow down, but never stop completely, there\'s a watcher in the code specifically for periodically sending a spin up command to the drive in order to prevent it from idling. Could you check if your drive is stopping completely? I\'m not sure how audible the desktop drives are, but on my portable BU50N I can easily tell if it still spinning (albeit slowly) or if it stopped completely just by noise.\r\n\r\nThere\'s an alternate mode where the watcher sends a read command for the last read sector again instead of sending a spin up command that might work better/worse for your drive, but at the moment it can only be changed directly in the code, it\'s not exposed anywhere.\r\n\r\nRegarding 2, I\'ve not noticed this, speeds remained consistent regardless of how long I play. Might be tied to the drive\'s behavior, though, at the moment Dolphin doesn\'t try to set a read speed (the code is already there, just unused for now), so it just let the drive do whatever it wants with the speed.\r\n\r\nAbout 3, I didn\'t know those options also accepted drive paths, so it\'s not surprising they "break", as I\'ve hooked the optical disc progress dialog only to "Change Disc" and "Boot From Optical Media" actions from the File menu. I\'ll add that to my to do list, shouldn\'t be too hard.\r\n\r\nRegarding 4, I didn\'t find a reliable way of distinguishing between actual read errors and the disc being ejected, so it may retry the read a few times before finally ejecting the disc from the emulated console. From my tests, the game never took so long to realize, so it might be another Linux-specific quirk I\'ll need to investigate further.\r\n\r\nSpeaking of that, I also just reproduced the issue from 5 on Ubuntu, the SCSI command for ejecting the disc is always failing, might be related to permission errors, will need to investigate further. I don\'t think it\'s your drive, sounds like it\'s related to the Linux implementation of SCSIDevice.cpp/.h.\r\n\r\nAbout 6, the drive\'s firmware is a bit buggy, and sometimes it goes into a broken state. It\'s rare, but when you trigger it, nearly everything starts behaving weird until you power cycle the drive (by the way, I don\'t think it\'s related to OmniDrive, I managed to trigger that broken state on stock firmware as well)\r\n\r\n-----\r\nThanks for the feedback so far!\r\n', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6585743338/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T18:03:32.556942	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Yola-cola', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6584483405', 'safe_author': False, 'body': '> > I was only able to test Wii games\r\n> \r\n> I tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues. I tested it with 3 different discs, including ED like in your example video. I was using OmniDrive v1.0.2.\r\n> \r\n> I always get the following errors:\r\n> \r\n> ## On first attempt with the same disc:\r\n> <img alt="2" height="310" src="https://private-user-images.githubusercontent.com/313431556/692526466-ff66f737-1132-4436-ac6d-6de95b40e1aa.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTM2NDI2OTIsIm5iZiI6MTc5MzY0MjM5MiwicGF0aCI6Ii8zMTM0MzE1NTYvNjkyNTI2NDY2LWZmNjZmNzM3LTExMzItNDQzNi1hYzZkLTZkZTk1YjQwZTFhYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMTAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTEwMlQxNzU5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zOTk0NjBhNTc3YzFlMTU1NjhlNGE0MTdhMDUwMDk0ZmNiNzY0ZjM4NjRmNTg5Mjk3M2RmMWY1ZjUyNTRiMmEwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ._gRAavnxSJoNpcGHVk4dpDfNpwzLgrQavkPphHwWK5A">\r\n> ## On second attempt with the same disc:\r\n> <img alt="1" height="310" src="https://private-user-images.githubusercontent.com/313431556/692526480-0d4b9657-4201-48ec-819f-7f37c7a1cbd4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTM2NDI2OTIsIm5iZiI6MTc5MzY0MjM5MiwicGF0aCI6Ii8zMTM0MzE1NTYvNjkyNTI2NDgwLTBkNGI5NjU3LTQyMDEtNDhlYy04MTlmLTdmMzdjN2ExY2JkNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMTAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTEwMlQxNzU5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OGE4MzI3YWY1MTQyOTZlMzVlMGI3NzFlNTc0YTM1ZmY4Yjk0YWRmNjc0NzBkZTJiOTE5MmM0ZGQ4YzUzZWUyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.2bJdDZBPEJHNPMAsQv1tDFLAVQgpV3e1VKbTQWKj3ig">\r\n\r\nTry using omnidrive 1.04 the one you\'re currently using is out of date', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T18:03:28Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6584483405', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6584483405', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6584483405, 'node_id': 'IC_kwDOALCn2M8AAAABiHc-TQ', 'user': {'login': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T18:03:28Z', 'updated_at': '2026-11-02T18:03:28Z', 'body': '> > I was only able to test Wii games\r\n> \r\n> I tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues. I tested it with 3 different discs, including ED like in your example video. I was using OmniDrive v1.0.2.\r\n> \r\n> I always get the following errors:\r\n> \r\n> ## On first attempt with the same disc:\r\n> <img alt="2" height="310" src="https://private-user-images.githubusercontent.com/313431556/692526466-ff66f737-1132-4436-ac6d-6de95b40e1aa.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTM2NDI2OTIsIm5iZiI6MTc5MzY0MjM5MiwicGF0aCI6Ii8zMTM0MzE1NTYvNjkyNTI2NDY2LWZmNjZmNzM3LTExMzItNDQzNi1hYzZkLTZkZTk1YjQwZTFhYS5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMTAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTEwMlQxNzU5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0zOTk0NjBhNTc3YzFlMTU1NjhlNGE0MTdhMDUwMDk0ZmNiNzY0ZjM4NjRmNTg5Mjk3M2RmMWY1ZjUyNTRiMmEwJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ._gRAavnxSJoNpcGHVk4dpDfNpwzLgrQavkPphHwWK5A">\r\n> ## On second attempt with the same disc:\r\n> <img alt="1" height="310" src="https://private-user-images.githubusercontent.com/313431556/692526480-0d4b9657-4201-48ec-819f-7f37c7a1cbd4.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3OTM2NDI2OTIsIm5iZiI6MTc5MzY0MjM5MiwicGF0aCI6Ii8zMTM0MzE1NTYvNjkyNTI2NDgwLTBkNGI5NjU3LTQyMDEtNDhlYy04MTlmLTdmMzdjN2ExY2JkNC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYxMTAyJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MTEwMlQxNzU5NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT04OGE4MzI3YWY1MTQyOTZlMzVlMGI3NzFlNTc0YTM1ZmY4Yjk0YWRmNjc0NzBkZTJiOTE5MmM0ZGQ4YzUzZWUyJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZyZXNwb25zZS1jb250ZW50LXR5cGU9aW1hZ2UlMkZwbmcifQ.2bJdDZBPEJHNPMAsQv1tDFLAVQgpV3e1VKbTQWKj3ig">\r\n\r\nTry using omnidrive 1.04 the one you\'re currently using is out of date', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6584483405/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15757, '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': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:55:23.387643	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img height="310" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img height="310" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:48:50Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:55:22Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img height="310" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img height="310" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:48:52.034748	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:46:52Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:48:50Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested **GC games**, but they do not work on **Linux**, while **Wii games** started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:46:53.626239	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:45:49Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:46:52Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\nI was using OmniDrive v1.0.2.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:45:51.214617	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:44:19Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:45:49Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI always get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:44:21.164159	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:42:43Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:44:19Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\nI tested it with 3 different discs, including ED like in your example video.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:42:45.038460	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games worked.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:40:21Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:42:43Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games started up without any issues.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:40:23.833165	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'debug687', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'safe_author': False, 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games worked.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T17:40:21Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 4, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 4, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6583999829', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6583999829, 'node_id': 'IC_kwDOALCn2M8AAAABiG_dVQ', 'user': {'login': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:40:21Z', 'updated_at': '2026-11-02T17:40:21Z', 'body': '> I was only able to test Wii games\r\n\r\nI tested GC games, but they do not work on Linux, while Wii games worked.\r\n\r\nI get the following errors:\r\n\r\n## On first attempt with the same disc:\r\n<img width="1236" height="710" alt="2" src="https://github.com/user-attachments/assets/ff66f737-1132-4436-ac6d-6de95b40e1aa" />\r\n\r\n## On second attempt with the same disc:\r\n<img width="1236" height="710" alt="1" src="https://github.com/user-attachments/assets/0d4b9657-4201-48ec-819f-7f37c7a1cbd4" />', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583999829/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, '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': 'debug687', 'id': 313431556, 'node_id': 'U_kgDOEq6WBA', 'avatar_url': 'https://avatars.githubusercontent.com/u/313431556?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/debug687', 'html_url': 'https://github.com/debug687', 'followers_url': 'https://api.github.com/users/debug687/followers', 'following_url': 'https://api.github.com/users/debug687/following{/other_user}', 'gists_url': 'https://api.github.com/users/debug687/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/debug687/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/debug687/subscriptions', 'organizations_url': 'https://api.github.com/users/debug687/orgs', 'repos_url': 'https://api.github.com/users/debug687/repos', 'events_url': 'https://api.github.com/users/debug687/events{/privacy}', 'received_events_url': 'https://api.github.com/users/debug687/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T17:16:48.867702	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6583493749', 'safe_author': True, 'body': 'Two returns to unknown? Can you please explain what you mean?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T17:16:46Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583493749', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6583493749', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6583493749, 'node_id': 'IC_kwDOALCn2M8AAAABiGgkdQ', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T17:16:46Z', 'updated_at': '2026-11-02T17:16:46Z', 'body': 'Two returns to unknown? Can you please explain what you mean?', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6583493749/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-11-02T16:01:47Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15757, 'watchers_count': 15757, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15757, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T14:39:29.483454	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Rumi-Larry', 'action': 'created', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6579912421', 'safe_author': False, 'body': 'Is there a good reason to have two returns to "unknown" instead of one? ', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T14:39:27Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6579912421', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6579912421', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6579912421, 'node_id': 'IC_kwDOALCn2M8AAAABiDF-5Q', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T14:39:27Z', 'updated_at': '2026-11-02T14:39:27Z', 'body': 'Is there a good reason to have two returns to "unknown" instead of one? ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6579912421/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-11-02T14:06:32Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15756, 'watchers_count': 15756, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3374, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3374, 'open_issues': 482, 'watchers': 15756, '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': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T12:50:55.399062	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Yani1978', 'action': 'created', 'id': 14958, 'title': 'Vulkan: Allow custom drivers on Mali devices', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14958#issuecomment-6577583523', 'safe_author': False, 'body': "> > > Here's one of them if you want to check if it's compatible: https://github.com/FristOneRR/FristOneRR-Panvk-Driver\r\n> > \r\n> > \r\n> > You were also the one who was requesting on azahar\r\n> \r\n> Dude... custom kbase drivers for Mali? Of course, i'm excited for it. What's not to like? lol\r\n\r\nEven on PPSSPP in the development builds it has now an option to import the custom gpu for Mali ", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14958', 'id': 6089097276, 'node_id': 'PR_kwDOALCn2M8AAAABLYs-bA', 'number': 14958, 'title': 'Vulkan: Allow custom drivers on Mali devices', 'user': {'login': 'bmdhacks', 'id': 1010987, 'node_id': 'MDQ6VXNlcjEwMTA5ODc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1010987?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/bmdhacks', 'html_url': 'https://github.com/bmdhacks', 'followers_url': 'https://api.github.com/users/bmdhacks/followers', 'following_url': 'https://api.github.com/users/bmdhacks/following{/other_user}', 'gists_url': 'https://api.github.com/users/bmdhacks/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/bmdhacks/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/bmdhacks/subscriptions', 'organizations_url': 'https://api.github.com/users/bmdhacks/orgs', 'repos_url': 'https://api.github.com/users/bmdhacks/repos', 'events_url': 'https://api.github.com/users/bmdhacks/events{/privacy}', 'received_events_url': 'https://api.github.com/users/bmdhacks/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-10-28T23:02:09Z', 'updated_at': '2026-11-02T12:50:52Z', 'closed_at': '2026-10-31T15:39:45Z', '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/14958', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14958', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14958.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14958.patch', 'merged_at': '2026-10-31T15:39:45Z'}, 'body': 'Custom drivers that target mali kbase API are popping up.  This allows their usage.\nTested on an Anbernic rg476h with malisx2 driver. \nI have read the contributing guidelines.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958/reactions', 'total_count': 7, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 7, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6577583523', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14958#issuecomment-6577583523', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14958', 'id': 6577583523, 'node_id': 'IC_kwDOALCn2M8AAAABiA31ow', 'user': {'login': 'Yani1978', 'id': 157523381, 'node_id': 'U_kgDOCWOdtQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/157523381?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yani1978', 'html_url': 'https://github.com/Yani1978', 'followers_url': 'https://api.github.com/users/Yani1978/followers', 'following_url': 'https://api.github.com/users/Yani1978/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yani1978/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yani1978/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yani1978/subscriptions', 'organizations_url': 'https://api.github.com/users/Yani1978/orgs', 'repos_url': 'https://api.github.com/users/Yani1978/repos', 'events_url': 'https://api.github.com/users/Yani1978/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yani1978/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T12:50:52Z', 'updated_at': '2026-11-02T12:50:52Z', 'body': "> > > Here's one of them if you want to check if it's compatible: https://github.com/FristOneRR/FristOneRR-Panvk-Driver\r\n> > \r\n> > \r\n> > You were also the one who was requesting on azahar\r\n> \r\n> Dude... custom kbase drivers for Mali? Of course, i'm excited for it. What's not to like? lol\r\n\r\nEven on PPSSPP in the development builds it has now an option to import the custom gpu for Mali ", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6577583523/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-11-02T11:18:46Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15754, 'watchers_count': 15754, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15754, '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': 'Yani1978', 'id': 157523381, 'node_id': 'U_kgDOCWOdtQ', 'avatar_url': 'https://avatars.githubusercontent.com/u/157523381?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yani1978', 'html_url': 'https://github.com/Yani1978', 'followers_url': 'https://api.github.com/users/Yani1978/followers', 'following_url': 'https://api.github.com/users/Yani1978/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yani1978/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yani1978/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yani1978/subscriptions', 'organizations_url': 'https://api.github.com/users/Yani1978/orgs', 'repos_url': 'https://api.github.com/users/Yani1978/repos', 'events_url': 'https://api.github.com/users/Yani1978/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yani1978/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T12:27:31.352667	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 11462, 'title': 'Revert "Remove Boot from DVD Backup"', 'url': 'https://github.com/dolphin-emu/dolphin/pull/11462#issuecomment-6577116708', 'safe_author': True, 'body': "It's here: #14974 ", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11462', 'id': 1548120621, 'node_id': 'PR_kwDOALCn2M5IEdi3', 'number': 11462, 'title': 'Revert "Remove Boot from DVD Backup"', '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}, 'labels': [], 'state': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 45, 'created_at': '2023-01-18T21:16:20Z', 'updated_at': '2026-11-02T12:27:29Z', 'closed_at': '2023-03-13T19:47:46Z', '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/11462', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11462', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/11462.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/11462.patch', 'merged_at': None}, 'body': "This reverts PR #11456.\r\n\r\nThe ability to boot DVD backups is in my experience as a maintainer of DiscIO really not a maintenance burden at all, since it's very compartmentalized. I had assumed that few people would be disappointed about this feature going away, but we ended up receiving disappointed comments on GitHub from three different people not long after the removal was merged, which is quite a lot. Therefore I would like to bring back this feature.\r\n\r\nI do agree with the argument that nobody who's maintaining Dolphin is testing this feature. But since it seems like there is a vocal minority actually using this feature, I'd say let's keep the feature until it actually breaks or actually becomes a maintenance burden.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462/reactions', 'total_count': 5, '+1': 5, '-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/11462/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6577116708', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/11462#issuecomment-6577116708', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/11462', 'id': 6577116708, 'node_id': 'IC_kwDOALCn2M8AAAABiAbWJA', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T12:27:28Z', 'updated_at': '2026-11-02T12:27:28Z', 'body': "It's here: #14974 ", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6577116708/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-11-02T11:18:46Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15754, 'watchers_count': 15754, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15754, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T12:19:47.013408	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6576965354', 'safe_author': True, 'body': "I kept this as 3 separate commits, but I can squash it later, if desired. First commit are core changes, second commit are UI changes and the third commit is the one bypassing emulated disc speeds from the physical discs code path (cc @JosJuice, it's by far the commit I spent most time and energy to make, it went through various iterations and I'm still not totally sure if this is the right approach, would really appreciate if you could take a look at it)...", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T12:19:44Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\n\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\n\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\n\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\n\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\n\n### Features and limitations\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let they run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\n\n### Generative AI disclosure\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\n\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\n\n### Licenses and attribuition\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicitly approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/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/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6576965354', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6576965354', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6576965354, 'node_id': 'IC_kwDOALCn2M8AAAABiASG6g', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T12:19:44Z', 'updated_at': '2026-11-02T12:19:44Z', 'body': "I kept this as 3 separate commits, but I can squash it later, if desired. First commit are core changes, second commit are UI changes and the third commit is the one bypassing emulated disc speeds from the physical discs code path (cc @JosJuice, it's by far the commit I spent most time and energy to make, it went through various iterations and I'm still not totally sure if this is the right approach, would really appreciate if you could take a look at it)...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6576965354/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-11-02T11:18:46Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15754, 'watchers_count': 15754, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15754, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-11-02T10:22:10.180322	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14510, 'title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510#issuecomment-6574728008', 'safe_author': True, 'body': "I've rebased this and made the minor requested changes.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510', 'id': 4135667065, 'node_id': 'PR_kwDOALCn2M7NXEqe', 'number': 14510, 'title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'user': {'login': 'Ma-Rang', 'id': 266874926, 'node_id': 'U_kgDOD-gwLg', 'avatar_url': 'https://avatars.githubusercontent.com/u/266874926?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Ma-Rang', 'html_url': 'https://github.com/Ma-Rang', 'followers_url': 'https://api.github.com/users/Ma-Rang/followers', 'following_url': 'https://api.github.com/users/Ma-Rang/following{/other_user}', 'gists_url': 'https://api.github.com/users/Ma-Rang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Ma-Rang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Ma-Rang/subscriptions', 'organizations_url': 'https://api.github.com/users/Ma-Rang/orgs', 'repos_url': 'https://api.github.com/users/Ma-Rang/repos', 'events_url': 'https://api.github.com/users/Ma-Rang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Ma-Rang/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-03-25T13:59:06Z', 'updated_at': '2026-11-02T10:22:07Z', '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/14510', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14510.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14510.patch', 'merged_at': None}, 'body': 'Previously, if the USB Gecko server failed to bind to any port in the 55020-55030 range, it silently returned with no indication to the user. This simple change now displays an on-screen message and logs an error. I found this "bug" while testing a homebrew project and WSL had silently reserved a conflicting port range causing a debugging nightmare since Gecko was enabled but not communicating.\r\n\r\nAI Disclosure: Claude was used for assistance.\r\n\r\nEdit: I fixed the whitespace issue that triggered a lint failure.\r\n\r\nEdit 2: I\'ve updated the messages to be build dynamically based on the stated port rather than hard-coding it to match.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510/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/14510/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6574728008', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510#issuecomment-6574728008', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510', 'id': 6574728008, 'node_id': 'IC_kwDOALCn2M8AAAABh-JjSA', '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-11-02T10:22:07Z', 'updated_at': '2026-11-02T10:22:07Z', 'body': "I've rebased this and made the minor requested changes.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6574728008/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-11-02T09:07:39Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15753, 'watchers_count': 15753, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 480, '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': 3375, 'open_issues': 480, 'watchers': 15753, '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-11-02T09:48:21.912491	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14780, 'title': 'Core: Replace C-style array with std::array and std::vector', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14780#issuecomment-6574047645', 'safe_author': True, 'body': "This PR has aged, and as mentioned, the `std::vector` changes are not sensible, so I'm going to close this PR for now. Feel free to re-open the PR if the code gets adjusted.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14780', 'id': 5022721753, 'node_id': 'PR_kwDOALCn2M74qjHJ', 'number': 14780, 'title': 'Core: Replace C-style array with std::array and std::vector', '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': 'closed', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-07-30T18:14:47Z', 'updated_at': '2026-11-02T09:48:14Z', 'closed_at': '2026-11-02T09:48:14Z', '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/14780', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14780', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14780.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14780.patch', 'merged_at': None}, 'body': None, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780/reactions', 'total_count': 1, '+1': 0, '-1': 1, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6574047645', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14780#issuecomment-6574047645', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14780', 'id': 6574047645, 'node_id': 'IC_kwDOALCn2M8AAAABh9gBnQ', '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-11-02T09:48:14Z', 'updated_at': '2026-11-02T09:48:14Z', 'body': "This PR has aged, and as mentioned, the `std::vector` changes are not sensible, so I'm going to close this PR for now. Feel free to re-open the PR if the code gets adjusted.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6574047645/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-11-02T09:07:39Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15753, 'watchers_count': 15753, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 480, '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': 3375, 'open_issues': 480, 'watchers': 15753, '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'}

Recent 'gh_pull_request' events

2026-11-02T21:37:38.369152	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'unlabeled', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'head_ref_name': 'prune-adreno-bugs', 'safe_author': True, 'base_sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'head_sha': '814e11dace409c67172618a2fc01c1fc6a313aae', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T20:39:14.948748	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'synchronize', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'head_ref_name': 'prune-adreno-bugs', 'safe_author': True, 'base_sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'head_sha': '814e11dace409c67172618a2fc01c1fc6a313aae', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T20:16:28.497609	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14510, 'title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510', 'head_ref_name': 'pr/gecko-bind-error', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '18190eb05d46592e12008050805d9c4bbdbb2138', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T20:12:52.585342	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14967, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'head_ref_name': 'SO_REUSEADDR', 'safe_author': True, 'base_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'head_sha': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T20:07:09.981371	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14973, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'head_ref_name': 'cubeb-backend-selection', 'safe_author': True, 'base_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'head_sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T19:46:26.027787	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14975, 'title': 'Flatpak: Do not set the flathub::manifest tag', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14975', 'head_ref_name': 'flathub-manifest', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T18:36:11.160304	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'synchronize', 'id': 14774, 'title': 'Refactor the GameCube microphone code', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774', 'head_ref_name': 'mic-dedup2', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T18:17:56.484507	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'head_ref_name': 'BootFromOpticalDiscRevival', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'ab0b808663fe623e8e8a52396273ee5a86cf440c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T17:50:27.159185	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'opened', 'id': 14975, 'title': 'Flatpak: Do not set the flathub::manifest tag', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14975', 'head_ref_name': 'flathub-manifest', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T17:36:50.638800	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'synchronize', 'id': 14257, 'title': 'Playground PR - Please ignore', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14257', 'head_ref_name': 'testbranch', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T12:36:42.599259	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'edited', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'head_ref_name': 'BootFromOpticalDiscRevival', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'ab0b808663fe623e8e8a52396273ee5a86cf440c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T12:18:20.798788	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'opened', 'id': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'head_ref_name': 'BootFromOpticalDiscRevival', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'ab0b808663fe623e8e8a52396273ee5a86cf440c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T11:26:53.464694	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14967, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'head_ref_name': 'SO_REUSEADDR', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T11:24:48.082031	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14967, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'head_ref_name': 'SO_REUSEADDR', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'd6cbe7a37b48fa5f1c7b59ba543569c28ff551b3', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T10:21:44.951906	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14510, 'title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510', 'head_ref_name': 'pr/gecko-bind-error', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': '18190eb05d46592e12008050805d9c4bbdbb2138', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T09:51:10.015618	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'review_requested', 'id': 14525, 'title': 'Triforce: add game-family-aware controller mappings', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14525', 'head_ref_name': 'triforce-mapping-enhancements', 'safe_author': True, 'base_sha': '67f1afeb745731b9867dd710d91121b6c10aeec0', 'head_sha': 'c002f70e3ae970a309fca04a80bb7d9cf4e5fba6', '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-11-02T09:48:17.066679	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14780, 'title': 'Core: Replace C-style array with std::array and std::vector', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14780', 'head_ref_name': 'Core/Replace-C-style-array-with-std-array-and-vector', 'safe_author': True, 'base_sha': 'f1b4345d0854f1c4e5e8eb683237a771c6de5456', 'head_sha': '5533123e849baf486c2143260bd9bc69cc8951de', 'merged': False, 'requested_reviewers': [{'login': 'phire', 'id': 138484, 'node_id': 'MDQ6VXNlcjEzODQ4NA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/138484?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/phire', 'html_url': 'https://github.com/phire', 'followers_url': 'https://api.github.com/users/phire/followers', 'following_url': 'https://api.github.com/users/phire/following{/other_user}', 'gists_url': 'https://api.github.com/users/phire/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/phire/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/phire/subscriptions', 'organizations_url': 'https://api.github.com/users/phire/orgs', 'repos_url': 'https://api.github.com/users/phire/repos', 'events_url': 'https://api.github.com/users/phire/events{/privacy}', 'received_events_url': 'https://api.github.com/users/phire/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, {'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}], 'type': 'gh_pull_request'}
2026-11-02T09:40:54.903894	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'labeled', 'id': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'head_ref_name': 'prune-adreno-bugs', 'safe_author': True, 'base_sha': 'fa61f77fedb1f804851414a231509c55b8d8ed6c', 'head_sha': '9bcbc6ce18a3c4eb9f4a6d8547c1e1f21c50d64b', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T09:37:39.358270	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14881, 'title': 'Replace hardcoded OS list for SO_NOSIGPIPE', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14881', 'head_ref_name': 'so_nosigpipe', 'safe_author': True, 'base_sha': 'dbff13226c4143e0d48baf2f57284341002dabcf', 'head_sha': 'bae9af9767bb32ed70ed59f52969e7b0db08981b', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T09:09:21.009383	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14973, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'head_ref_name': 'cubeb-backend-selection', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T09:08:48.095702	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14973, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'head_ref_name': 'cubeb-backend-selection', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T09:05:36.383700	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 14973, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'head_ref_name': 'cubeb-backend-selection', 'safe_author': True, 'base_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'head_sha': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T03:35:02.738909	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14916, 'title': 'VideoBackends / VideoCommon: split draw calls into separate commit and render functions', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14916', 'head_ref_name': 'vertex_manager_draw_refactor', 'safe_author': True, 'base_sha': '613db73aeb2c086a816592df2fb193d73130101b', 'head_sha': '4fb368cf36342d6b354d93b8711ef7f2e1881023', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T03:33:58.427313	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'closed', 'id': 14941, 'title': 'DolphinQt: Fix crash from stale timer event in ToolTipWidget', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14941', 'head_ref_name': 'patch-1', 'safe_author': True, 'base_sha': 'cf5cb7ef81c3e8e7af5c9d566334219ffda9f68b', 'head_sha': 'cee23f7af6b1624da3e7190e5a18a282d82d567c', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-11-02T03:26:17.893045	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14905, 'title': 'AudioCommon: Use float samples instead of s16 in more places.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14905', 'head_ref_name': 'mixer-floats', 'safe_author': True, 'base_sha': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'head_sha': '45c1d9cfadb9497181a4794101e0f450f821676c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}

Recent 'gh_pull_request_comment' events

2026-11-02T20:12:54.998643	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14967, 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4447219211', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T20:09:04.804629	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14973, 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4447183650', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T18:41:20.112013	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14774, 'hash': '5cf17085f9e6061796058f3aeb4dd4d2c5d5e3aa', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774#discussion_r4446312543', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T16:13:58.903956	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14967, 'hash': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4444669861', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T14:05:57.628793	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443317673', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T14:05:57.613139	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443224533', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T14:05:57.571586	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443271441', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T14:05:57.482823	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443207466', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T14:05:57.363223	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443198458', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T11:25:28.494730	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441788257', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T11:25:16.916800	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441785888', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T10:42:05.042899	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441405735', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T10:40:08.396018	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441383781', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T10:39:54.983833	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441383781', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T10:38:42.893854	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441342356', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T10:38:42.852082	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441180880', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T10:38:42.851478	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 14967, 'hash': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441246618', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T09:45:15.130327	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14787, 'hash': '2a9b73d04675ce0f70840622cf6e9f3687feac4a', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14787#discussion_r4440881478', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T09:06:24.111114	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14973, 'hash': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4440538167', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T05:36:43.613598	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14774, 'hash': '5cf17085f9e6061796058f3aeb4dd4d2c5d5e3aa', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774#discussion_r4439226063', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T05:35:40.662298	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14774, 'hash': '5cf17085f9e6061796058f3aeb4dd4d2c5d5e3aa', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774#discussion_r4439226063', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-02T01:23:52.038249	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'acts-1631', 'action': 'created', 'id': 14968, 'hash': 'eda78a7e44c7e1dc52d3c0ce6d3a57fbe91734cc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14968#discussion_r4438185957', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-11-02T01:15:55.793811	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14968, 'hash': 'eda78a7e44c7e1dc52d3c0ce6d3a57fbe91734cc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14968#discussion_r4438158972', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-01T12:27:57.596847	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'created', 'id': 14966, 'hash': 'e12badbeb4d6d46ffb86ad2df6830df23914712a', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14966#discussion_r4435587152', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-11-01T09:24:40.016898	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 14920, 'hash': '4641221e7b203b9a157bd78c025999c24734d7f0', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14920#discussion_r4435048928', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}

Recent 'gh_pull_request_review' events

2026-11-02T21:44:36.920446	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 14972, 'pr_title': 'Minor cleanups with "parenthesized initialization of aggregates".', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14972#pullrequestreview-5743829463', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T21:12:48.771350	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'edited', 'pr_id': 14973, 'pr_title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T20:50:29.459776	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 14973, 'pr_title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T20:15:21.813572	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14774, 'pr_title': 'Refactor the GameCube microphone code', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774#pullrequestreview-5742725603', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T20:12:55.453123	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5742697269', 'comments': [{'id': 4447219211, 'node_id': 'PRRC_kwDOALCn2M8AAAABCRMuCw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211', 'pull_request_review_id': 5742697269, 'diff_hunk': '@@ -291,6 +291,9 @@ void WiiSocket::Update(bool read, bool write, bool except)\n         memory.CopyFromEmu(&addr, ioctl.buffer_in + 8, sizeof(WiiSockAddrIn));\n         sockaddr_in local_name = WiiSockMan::ToNativeAddrIn(addr);\n \n+        if (IsTCP())\n+          Common::SetReuseAddressOnUnix(fd);', 'path': 'Source/Core/Core/IOS/Network/Socket.cpp', 'position': 7, 'original_position': 5, 'commit_id': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', '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've added a comment there.", 'created_at': '2026-11-02T20:12:52Z', 'updated_at': '2026-11-02T20:12:52Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4447219211', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4447219211'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4444669861, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T20:09:04.802168	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14973, 'pr_title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5742654358', 'comments': [{'id': 4447183650, 'node_id': 'PRRC_kwDOALCn2M8AAAABCRKjIg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650', 'pull_request_review_id': 5742654358, 'diff_hunk': '@@ -67,8 +68,11 @@ std::shared_ptr<cubeb> GetContext()\n     ERROR_LOG_FMT(AUDIO, "Error setting cubeb log callback");\n   }\n \n+  const auto backend_name_str = Config::Get(Config::MAIN_AUDIO_CUBEB_BACKEND);\n+  const char* const backend_name = backend_name_str.empty() ? nullptr : backend_name_str.c_str();\n+\n   cubeb* ctx;\n-  if (cubeb_init(&ctx, "Dolphin Emulator", nullptr) != CUBEB_OK)\n+  if (cubeb_init(&ctx, "Dolphin Emulator", backend_name) != CUBEB_OK)', 'path': 'Source/Core/AudioCommon/CubebUtils.cpp', 'position': 19, 'original_position': 17, 'commit_id': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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 think this is probably fine?\r\nWe have other settings behave like this, including ones that cause an actual failure on boot.', 'created_at': '2026-11-02T20:09:02Z', 'updated_at': '2026-11-02T20:09:02Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4447183650', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4447183650'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4443317673, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T19:32:05.103820	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'submitted', 'pr_id': 14975, 'pr_title': 'Flatpak: Do not set the flathub::manifest tag', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14975#pullrequestreview-5742201634', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T18:41:20.109236	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14774, 'pr_title': 'Refactor the GameCube microphone code', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14774#pullrequestreview-5741541813', 'comments': [{'id': 4446312543, 'node_id': 'PRRC_kwDOALCn2M8AAAABCQVYXw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4446312543', 'pull_request_review_id': 5741541813, 'diff_hunk': '@@ -152,6 +152,16 @@ const Info<ExpansionInterface::EXIDeviceType>& GetInfoForEXIDevice(ExpansionInte\n   return *infos[slot];\n }\n \n+const std::array<Info<std::string>, 2> MAIN_EXI_MIC_MICROPHONE{\n+    Info<std::string>{{System::Main, "Core", "ExiMic1Microphone"}, ""},\n+    Info<std::string>{{System::Main, "Core", "ExiMic2Microphone"}, ""}};', 'path': 'Source/Core/Core/Config/MainSettings.cpp', 'position': 1, 'original_position': 6, 'commit_id': '5cf17085f9e6061796058f3aeb4dd4d2c5d5e3aa', '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}, 'body': 'I went with GCMicA/BMicrophone.', 'created_at': '2026-11-02T18:41:17Z', 'updated_at': '2026-11-02T18:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14774#discussion_r4446312543', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4446312543'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14774#discussion_r4446312543'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774'}}, 'original_commit_id': '5cf17085f9e6061796058f3aeb4dd4d2c5d5e3aa', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4446312543/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4439226063, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T17:06:41.576184	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'edited', 'pr_id': 14510, 'pr_title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510#pullrequestreview-5740284494', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T17:05:42.298094	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14510, 'pr_title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510#pullrequestreview-5740284494', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T16:13:58.902100	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5739494965', 'comments': [{'id': 4444669861, 'node_id': 'PRRC_kwDOALCn2M8AAAABCOxHpQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861', 'pull_request_review_id': 5739494965, 'diff_hunk': '@@ -291,6 +291,9 @@ void WiiSocket::Update(bool read, bool write, bool except)\n         memory.CopyFromEmu(&addr, ioctl.buffer_in + 8, sizeof(WiiSockAddrIn));\n         sockaddr_in local_name = WiiSockMan::ToNativeAddrIn(addr);\n \n+        if (IsTCP())\n+          Common::SetReuseAddressOnUnix(fd);', 'path': 'Source/Core/Core/IOS/Network/Socket.cpp', 'position': 5, 'original_position': 5, 'commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', '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}, 'body': 'Unless `SO_REUSEADDR` is enabled by default on Wii, this might break existing behaviour relying on IOS `IOCTL_SO_SETSOCKOPT` and `IOCTL_SO_GETSOCKOPT`.', 'created_at': '2026-11-02T16:06:26Z', 'updated_at': '2026-11-02T16:13:56Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4444669861', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4444669861'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T16:13:58.406563	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'edited', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5739494965', 'comments': [{'id': 4444669861, 'node_id': 'PRRC_kwDOALCn2M8AAAABCOxHpQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861', 'pull_request_review_id': 5739494965, 'diff_hunk': '@@ -291,6 +291,9 @@ void WiiSocket::Update(bool read, bool write, bool except)\n         memory.CopyFromEmu(&addr, ioctl.buffer_in + 8, sizeof(WiiSockAddrIn));\n         sockaddr_in local_name = WiiSockMan::ToNativeAddrIn(addr);\n \n+        if (IsTCP())\n+          Common::SetReuseAddressOnUnix(fd);', 'path': 'Source/Core/Core/IOS/Network/Socket.cpp', 'position': 5, 'original_position': 5, 'commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', '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}, 'body': 'Unless `SO_REUSEADDR` is enabled by default on Wii, this might break existing behaviour relying on IOS `IOCTL_SO_SETSOCKOPT` and `IOCTL_SO_GETSOCKOPT`.', 'created_at': '2026-11-02T16:06:26Z', 'updated_at': '2026-11-02T16:13:56Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4444669861', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4444669861'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4444669861/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T15:54:58.935489	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'edited', 'pr_id': 14974, 'pr_title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#pullrequestreview-5738756850', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T15:38:37.725017	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'edited', 'pr_id': 14974, 'pr_title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#pullrequestreview-5738756850', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T15:15:50.123553	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 14974, 'pr_title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14974#pullrequestreview-5738756850', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T14:05:57.295215	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 14973, 'pr_title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5737592093', 'comments': [{'id': 4443198458, 'node_id': 'PRRC_kwDOALCn2M8AAAABCNXT-g', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443198458', 'pull_request_review_id': 5737592093, 'diff_hunk': '@@ -14,6 +14,17 @@ add_library(audiocommon\n )\n \n if(ENABLE_CUBEB)\n+  get_target_property(cubeb_includes cubeb INTERFACE_INCLUDE_DIRECTORIES)\n+  list(APPEND CMAKE_REQUIRED_INCLUDES ${cubeb_includes})\n+  check_cxx_source_compiles([[\n+  #include <cubeb/cubeb.h>\n+  int main() { cubeb_get_backend_names; }\n+  ]]    CUBEB_HAS_GET_BACKEND_NAMES)', 'path': 'Source/Core/AudioCommon/CMakeLists.txt', 'position': 9, 'original_position': 9, 'commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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}, 'body': 'This change could bite us since it leaks at the directory scope, could you use `cmake_push_check_state`/`cmake_pop_check_state` to avoid that?\n\n\n```suggestion\n  cmake_push_check_state(RESET)\n  list(APPEND CMAKE_REQUIRED_INCLUDES ${cubeb_includes})\n  check_cxx_source_compiles([[\n  #include <cubeb/cubeb.h>\n  int main() { cubeb_get_backend_names; }\n  ]]    CUBEB_HAS_GET_BACKEND_NAMES)\n  cmake_pop_check_state()\n```', 'created_at': '2026-11-02T13:53:31Z', 'updated_at': '2026-11-02T14:05:54Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443198458', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443198458'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443198458'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443198458/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4443207466, 'node_id': 'PRRC_kwDOALCn2M8AAAABCNX3Kg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443207466', 'pull_request_review_id': 5737592093, 'diff_hunk': '@@ -14,6 +14,17 @@ add_library(audiocommon\n )\n \n if(ENABLE_CUBEB)\n+  get_target_property(cubeb_includes cubeb INTERFACE_INCLUDE_DIRECTORIES)', 'path': 'Source/Core/AudioCommon/CMakeLists.txt', 'position': 4, 'original_position': 4, 'commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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}, 'body': 'The target when Cubeb comes from the system is `cubeb::cubeb`:\n\n```\nCMake Error at Source/Core/AudioCommon/CMakeLists.txt:17 (get_target_property):\n  get_target_property() called with non-existent target "cubeb".\n```', 'created_at': '2026-11-02T13:54:19Z', 'updated_at': '2026-11-02T14:05:54Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443207466', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443207466'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443207466'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443207466/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4443224533, 'node_id': 'PRRC_kwDOALCn2M8AAAABCNY51Q', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443224533', 'pull_request_review_id': 5737592093, 'diff_hunk': '@@ -247,6 +251,51 @@ const void* GetOutputDeviceById(std::string_view id)\n   return device_id;\n }\n \n+std::vector<std::string_view> GetBackendNames()\n+{\n+#if CUBEB_HAS_GET_BACKEND_NAMES\n+  const auto names = cubeb_get_backend_names();\n+  return {names.names, names.names + names.count};\n+#else\n+  return {};\n+#endif\n+}\n+\n+std::string_view GetCubebBackendDisplayName(std::string_view backend_name)\n+{\n+  // Remove "-rust" suffix.\n+  const auto str = backend_name.substr(0, backend_name.find(\'-\'));\n+\n+  if (str == "pulse")\n+    return _trans("PulseAudio");\n+  if (str == "jack")\n+    return _trans("JACK");\n+  if (str == "alsa")\n+    return _trans("ALSA");\n+  if (str == "audiounit")\n+    return _trans("AudioUnit");\n+  if (str == "wasapi")\n+    return _trans("WASAPI");\n+  if (str == "winmm")\n+    return _trans("WinMM");\n+  if (str == "sndio")\n+    return _trans("sndio");\n+  if (str == "sun")\n+    return _trans("Sun");\n+  if (str == "opensl")\n+    return _trans("OpenSL");\n+  if (str == "oss")\n+    return _trans("OSS");\n+  if (str == "aaudio")\n+    return _trans("AAudio");\n+  if (str == "audiotrack")\n+    return _trans("AudioTrack");\n+  if (str == "kai")\n+    return _trans("KAI");', 'path': 'Source/Core/AudioCommon/CubebUtils.cpp', 'position': 65, 'original_position': 65, 'commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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}, 'body': "I believe those shouldn't be translated", 'created_at': '2026-11-02T13:55:56Z', 'updated_at': '2026-11-02T14:05:54Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443224533', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443224533'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443224533'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443224533/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4440538167, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4443271441, 'node_id': 'PRRC_kwDOALCn2M8AAAABCNbxEQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443271441', 'pull_request_review_id': 5737592093, 'diff_hunk': '@@ -247,6 +251,51 @@ const void* GetOutputDeviceById(std::string_view id)\n   return device_id;\n }\n \n+std::vector<std::string_view> GetBackendNames()\n+{\n+#if CUBEB_HAS_GET_BACKEND_NAMES\n+  const auto names = cubeb_get_backend_names();\n+  return {names.names, names.names + names.count};\n+#else\n+  return {};\n+#endif\n+}\n+\n+std::string_view GetCubebBackendDisplayName(std::string_view backend_name)\n+{\n+  // Remove "-rust" suffix.\n+  const auto str = backend_name.substr(0, backend_name.find(\'-\'));', 'path': 'Source/Core/AudioCommon/CubebUtils.cpp', 'position': 38, 'original_position': 38, 'commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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}, 'body': 'It\'s possible to have both the Rust and non-Rust variant compiled in, which leads to this:\n\n<img width="523" height="228" alt="Image" src="https://github.com/user-attachments/assets/fb5e81fe-94e1-4c42-b08d-a767f351f43c" />\n\nMaybe we should append ` (Rust)` to the Rust backends?', 'created_at': '2026-11-02T14:00:21Z', 'updated_at': '2026-11-02T14:05:54Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443271441', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443271441'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443271441'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443271441/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4443317673, 'node_id': 'PRRC_kwDOALCn2M8AAAABCNelqQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443317673', 'pull_request_review_id': 5737592093, 'diff_hunk': '@@ -67,8 +68,11 @@ std::shared_ptr<cubeb> GetContext()\n     ERROR_LOG_FMT(AUDIO, "Error setting cubeb log callback");\n   }\n \n+  const auto backend_name_str = Config::Get(Config::MAIN_AUDIO_CUBEB_BACKEND);\n+  const char* const backend_name = backend_name_str.empty() ? nullptr : backend_name_str.c_str();\n+\n   cubeb* ctx;\n-  if (cubeb_init(&ctx, "Dolphin Emulator", nullptr) != CUBEB_OK)\n+  if (cubeb_init(&ctx, "Dolphin Emulator", backend_name) != CUBEB_OK)', 'path': 'Source/Core/AudioCommon/CubebUtils.cpp', 'position': 17, 'original_position': 17, 'commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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}, 'body': 'If the configured backend isn\'t correct, (e.g., from having `wasapi` due to copy/pasting configs from Windows), the config window will not show a Cubeb backend:\n\n<img width="539" height="98" alt="Image" src="https://github.com/user-attachments/assets/0794f334-50c5-4ca4-835e-1e7a335d86f2" />\n\n Cubeb seems to still use the default backend though (and audio does come through):\n\n<img width="744" height="36" alt="Image" src="https://github.com/user-attachments/assets/0a3020ad-2c3b-466b-818c-4e37e5467345" />', 'created_at': '2026-11-02T14:05:11Z', 'updated_at': '2026-11-02T14:05:54Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443317673', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443317673'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4443317673'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4443317673/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T11:25:24.750295	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735814264', 'comments': [{'id': 4441788257, 'node_id': 'PRRC_kwDOALCn2M8AAAABCMBPYQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441788257', 'pull_request_review_id': 5735814264, 'diff_hunk': '@@ -39,4 +44,22 @@ u64 PacketReadU64(sf::Packet& packet)\n   packet >> value;\n   return value;\n }\n+\n+void SetReuseAddressOnUnix(sf::TcpListener& listener)\n+{\n+#if !defined(_WIN32)\n+  // Creating the socket and geting the underlying handle are protected functions.\n+  // We create a derived class to steal the handle then move it back.\n+  struct Listener : sf::TcpListener\n+  {\n+    Listener(sf::TcpListener& listener) : TcpListener{std::move(listener)}\n+    {\n+      create();', 'path': 'Source/Core/Common/SFMLHelper.cpp', 'position': 1, 'original_position': 26, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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've done this differently now.", 'created_at': '2026-11-02T11:25:22Z', 'updated_at': '2026-11-02T11:25:22Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441788257', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441788257'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441788257'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441788257/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4441342356, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T11:25:14.944571	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735811290', 'comments': [{'id': 4441785888, 'node_id': 'PRRC_kwDOALCn2M8AAAABCMBGIA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441785888', 'pull_request_review_id': 5735811290, 'diff_hunk': '@@ -43,7 +44,10 @@ static void GBAConnectionWaiter()\n   Common::SetCurrentThreadName("GBA Connection Waiter");\n \n   sf::TcpListener server;\n+  Common::SetReuseAddressOnUnix(server);\n+\n   sf::TcpListener clock_server;\n+  Common::SetReuseAddressOnUnix(clock_server);\n \n   // "dolphin gba"\n   if (server.listen(0xd6ba) != sf::Socket::Status::Done)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 1, 'original_position': 18, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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': "Okay, I've done this differently now.", 'created_at': '2026-11-02T11:25:04Z', 'updated_at': '2026-11-02T11:25:05Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441785888', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441785888'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441785888'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441785888/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4441180880, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T10:42:05.042039	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735333414', 'comments': [{'id': 4441405735, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLp5Jw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441405735', 'pull_request_review_id': 5735333414, 'diff_hunk': '@@ -43,7 +44,10 @@ static void GBAConnectionWaiter()\n   Common::SetCurrentThreadName("GBA Connection Waiter");\n \n   sf::TcpListener server;\n+  Common::SetReuseAddressOnUnix(server);\n+\n   sf::TcpListener clock_server;\n+  Common::SetReuseAddressOnUnix(clock_server);\n \n   // "dolphin gba"\n   if (server.listen(0xd6ba) != sf::Socket::Status::Done)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 18, 'original_position': 18, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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': 'Yeah.. somehow it worked when I tested it, but I guess "TIME_WAIT" is inconsistent.\r\nSFML is not a serious network library and I think we should get rid of it. :(', 'created_at': '2026-11-02T10:42:02Z', 'updated_at': '2026-11-02T10:42:02Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441405735', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441405735'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441405735'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441405735/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4441180880, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T10:39:54.896090	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735299654', 'comments': [{'id': 4441383781, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLojZQ', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441383781', 'pull_request_review_id': 5735299654, 'diff_hunk': '@@ -955,6 +955,7 @@ static u32 NetDIMMBind(GuestSocket guest_socket, const GuestSocketAddress& guest\n       .sin_addr = std::bit_cast<in_addr>(adjusted_ipv4port.ip_address),\n   };\n \n+  Common::SetReuseAddressOnUnix(host_socket);', 'path': 'Source/Core/Core/HW/DVD/AMMediaboard.cpp', 'position': 4, 'original_position': 4, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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': "Yes, but we don't have any working UDP sockets yet, but I'll add a comment.", 'created_at': '2026-11-02T10:39:52Z', 'updated_at': '2026-11-02T10:39:53Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441383781', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441383781'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441383781'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441383781/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 4441246618, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T10:38:42.849606	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'changes_requested', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735034984', 'comments': [{'id': 4441180880, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLcK0A', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -43,7 +44,10 @@ static void GBAConnectionWaiter()\n   Common::SetCurrentThreadName("GBA Connection Waiter");\n \n   sf::TcpListener server;\n+  Common::SetReuseAddressOnUnix(server);\n+\n   sf::TcpListener clock_server;\n+  Common::SetReuseAddressOnUnix(clock_server);\n \n   // "dolphin gba"\n   if (server.listen(0xd6ba) != sf::Socket::Status::Done)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 18, 'original_position': 18, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "AFAICT, `listen` will close the original socket and create a new one, so you'll loose the socket options you've set.\n\n```C++\n////////////////////////////////////////////////////////////\nSocket::Status TcpListener::listen(unsigned short port, IpAddress address)\n{\n    // Close the socket if it is already bound\n    close();\n\n    // Create the internal socket if it doesn't exist\n    create();\n```\n\nFWIW, I had a similar issue with the `bind` method, so I created a new `BbaUdpSocket` class with a dedicated method to workaround it (not sure that's the best way to get around this issue, though).", 'created_at': '2026-11-02T10:17:55Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441180880', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441180880'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4441246618, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLgLmg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -955,6 +955,7 @@ static u32 NetDIMMBind(GuestSocket guest_socket, const GuestSocketAddress& guest\n       .sin_addr = std::bit_cast<in_addr>(adjusted_ipv4port.ip_address),\n   };\n \n+  Common::SetReuseAddressOnUnix(host_socket);', 'path': 'Source/Core/Core/HW/DVD/AMMediaboard.cpp', 'position': 4, 'original_position': 4, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "Won't this also affect UDP sockets?", 'created_at': '2026-11-02T10:24:57Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441246618', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441246618'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4441342356, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLmBlA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -39,4 +44,22 @@ u64 PacketReadU64(sf::Packet& packet)\n   packet >> value;\n   return value;\n }\n+\n+void SetReuseAddressOnUnix(sf::TcpListener& listener)\n+{\n+#if !defined(_WIN32)\n+  // Creating the socket and geting the underlying handle are protected functions.\n+  // We create a derived class to steal the handle then move it back.\n+  struct Listener : sf::TcpListener\n+  {\n+    Listener(sf::TcpListener& listener) : TcpListener{std::move(listener)}\n+    {\n+      create();', 'path': 'Source/Core/Common/SFMLHelper.cpp', 'position': 26, 'original_position': 26, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "By calling `create` you're making the socket valid, thus, the `listen` method will get rid of it by calling the `close` method.", 'created_at': '2026-11-02T10:35:24Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441342356', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441342356'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T10:38:42.387861	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'edited', 'pr_id': 14967, 'pr_title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', 'state': 'changes_requested', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5735034984', 'comments': [{'id': 4441180880, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLcK0A', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -43,7 +44,10 @@ static void GBAConnectionWaiter()\n   Common::SetCurrentThreadName("GBA Connection Waiter");\n \n   sf::TcpListener server;\n+  Common::SetReuseAddressOnUnix(server);\n+\n   sf::TcpListener clock_server;\n+  Common::SetReuseAddressOnUnix(clock_server);\n \n   // "dolphin gba"\n   if (server.listen(0xd6ba) != sf::Socket::Status::Done)', 'path': 'Source/Core/Core/HW/SI/SI_DeviceGBA.cpp', 'position': 18, 'original_position': 18, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "AFAICT, `listen` will close the original socket and create a new one, so you'll loose the socket options you've set.\n\n```C++\n////////////////////////////////////////////////////////////\nSocket::Status TcpListener::listen(unsigned short port, IpAddress address)\n{\n    // Close the socket if it is already bound\n    close();\n\n    // Create the internal socket if it doesn't exist\n    create();\n```\n\nFWIW, I had a similar issue with the `bind` method, so I created a new `BbaUdpSocket` class with a dedicated method to workaround it (not sure that's the best way to get around this issue, though).", 'created_at': '2026-11-02T10:17:55Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441180880', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441180880'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441180880/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4441246618, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLgLmg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -955,6 +955,7 @@ static u32 NetDIMMBind(GuestSocket guest_socket, const GuestSocketAddress& guest\n       .sin_addr = std::bit_cast<in_addr>(adjusted_ipv4port.ip_address),\n   };\n \n+  Common::SetReuseAddressOnUnix(host_socket);', 'path': 'Source/Core/Core/HW/DVD/AMMediaboard.cpp', 'position': 4, 'original_position': 4, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "Won't this also affect UDP sockets?", 'created_at': '2026-11-02T10:24:57Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441246618', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441246618'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441246618/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 4441342356, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLmBlA', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356', 'pull_request_review_id': 5735034984, 'diff_hunk': '@@ -39,4 +44,22 @@ u64 PacketReadU64(sf::Packet& packet)\n   packet >> value;\n   return value;\n }\n+\n+void SetReuseAddressOnUnix(sf::TcpListener& listener)\n+{\n+#if !defined(_WIN32)\n+  // Creating the socket and geting the underlying handle are protected functions.\n+  // We create a derived class to steal the handle then move it back.\n+  struct Listener : sf::TcpListener\n+  {\n+    Listener(sf::TcpListener& listener) : TcpListener{std::move(listener)}\n+    {\n+      create();', 'path': 'Source/Core/Common/SFMLHelper.cpp', 'position': 26, 'original_position': 26, 'commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', '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}, 'body': "By calling `create` you're making the socket valid, thus, the `listen` method will get rid of it by calling the `close` method.", 'created_at': '2026-11-02T10:35:24Z', 'updated_at': '2026-11-02T10:38:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441342356', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4441342356'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'original_commit_id': '10fcfd969d2c15e78ceb6b04e44be1dda4fb5be6', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4441342356/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T10:22:56.141628	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14510, 'pr_title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510#pullrequestreview-5735093767', 'comments': [], 'type': 'gh_pull_request_review'}
2026-11-02T10:22:33.159213	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'dismissed', 'pr_id': 14510, 'pr_title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'state': 'dismissed', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14510#pullrequestreview-4701178090', 'comments': [{'id': 3584708912, 'node_id': 'PRRC_kwDOALCn2M7VqlEw', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584708912', 'pull_request_review_id': 4701178090, 'diff_hunk': '@@ -39,7 +39,9 @@ class GeckoSockServer\n   // Only ever one server thread\n   static void GeckoConnectionWaiter();\n \n+  static u16 initial_port;', 'path': 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h', 'position': 1, 'original_position': 4, 'commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'user': {'login': 'phire', 'id': 138484, 'node_id': 'MDQ6VXNlcjEzODQ4NA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/138484?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/phire', 'html_url': 'https://github.com/phire', 'followers_url': 'https://api.github.com/users/phire/followers', 'following_url': 'https://api.github.com/users/phire/following{/other_user}', 'gists_url': 'https://api.github.com/users/phire/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/phire/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/phire/subscriptions', 'organizations_url': 'https://api.github.com/users/phire/orgs', 'repos_url': 'https://api.github.com/users/phire/repos', 'events_url': 'https://api.github.com/users/phire/events{/privacy}', 'received_events_url': 'https://api.github.com/users/phire/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Not used anymore - delete\n```suggestion\n```', 'created_at': '2026-07-15T05:34:36Z', 'updated_at': '2026-07-15T05:36:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584708912', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584708912'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584708912'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510'}}, 'original_commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584708912/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 3584709999, 'node_id': 'PRRC_kwDOALCn2M7VqlVv', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584709999', 'pull_request_review_id': 4701178090, 'diff_hunk': '@@ -39,7 +39,9 @@ class GeckoSockServer\n   // Only ever one server thread\n   static void GeckoConnectionWaiter();\n \n+  static u16 initial_port;\n   static u16 server_port;\n+  static constexpr int port_retries = 10;', 'path': 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h', 'position': 1, 'original_position': 6, 'commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'user': {'login': 'phire', 'id': 138484, 'node_id': 'MDQ6VXNlcjEzODQ4NA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/138484?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/phire', 'html_url': 'https://github.com/phire', 'followers_url': 'https://api.github.com/users/phire/followers', 'following_url': 'https://api.github.com/users/phire/following{/other_user}', 'gists_url': 'https://api.github.com/users/phire/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/phire/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/phire/subscriptions', 'organizations_url': 'https://api.github.com/users/phire/orgs', 'repos_url': 'https://api.github.com/users/phire/repos', 'events_url': 'https://api.github.com/users/phire/events{/privacy}', 'received_events_url': 'https://api.github.com/users/phire/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Not used anymore - delete\n```suggestion\n```', 'created_at': '2026-07-15T05:34:48Z', 'updated_at': '2026-07-15T05:36:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584709999', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584709999'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584709999'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510'}}, 'original_commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584709999/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}, {'id': 3584712150, 'node_id': 'PRRC_kwDOALCn2M7Vql3W', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584712150', 'pull_request_review_id': 4701178090, 'diff_hunk': '@@ -19,6 +19,7 @@\n \n namespace ExpansionInterface\n {\n+u16 GeckoSockServer::initial_port;', 'path': 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'position': 1, 'original_position': 4, 'commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'user': {'login': 'phire', 'id': 138484, 'node_id': 'MDQ6VXNlcjEzODQ4NA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/138484?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/phire', 'html_url': 'https://github.com/phire', 'followers_url': 'https://api.github.com/users/phire/followers', 'following_url': 'https://api.github.com/users/phire/following{/other_user}', 'gists_url': 'https://api.github.com/users/phire/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/phire/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/phire/subscriptions', 'organizations_url': 'https://api.github.com/users/phire/orgs', 'repos_url': 'https://api.github.com/users/phire/repos', 'events_url': 'https://api.github.com/users/phire/events{/privacy}', 'received_events_url': 'https://api.github.com/users/phire/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Not used - delete\n\n```suggestion\n```', 'created_at': '2026-07-15T05:35:13Z', 'updated_at': '2026-07-15T05:36:34Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584712150', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584712150'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14510#discussion_r3584712150'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510'}}, 'original_commit_id': '436bbbc8344c8b64c44e36b615ac88b66ef05bdc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3584712150/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}
2026-11-02T09:45:14.975419	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14787, 'pr_title': 'Core/HW/EXI: Make variables constant', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14787#pullrequestreview-5734640776', 'comments': [{'id': 4440881478, 'node_id': 'PRRC_kwDOALCn2M8AAAABCLJ5Rg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4440881478', 'pull_request_review_id': 5734640776, 'diff_hunk': '@@ -59,7 +59,7 @@ void IEXIDevice::ImmReadWrite(u32& data, u32 size)\n \n void IEXIDevice::DMAWrite(u32 address, u32 size)\n {\n-  auto& memory = m_system.GetMemory();\n+  const auto& memory = m_system.GetMemory();', 'path': 'Source/Core/Core/HW/EXI/EXI_Device.cpp', 'position': 5, 'original_position': 5, 'commit_id': '2a9b73d04675ce0f70840622cf6e9f3687feac4a', '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 don't see anything inherently wrong with using `const auto` here instead of just `auto` but the benefits aren't very far reaching either.", 'created_at': '2026-11-02T09:45:12Z', 'updated_at': '2026-11-02T09:45:12Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14787#discussion_r4440881478', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14787', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4440881478'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14787#discussion_r4440881478'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14787'}}, 'original_commit_id': 'be7e372a1d0b87b8ed0c8c57a74bd0d77272b833', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4440881478/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3703016825, 'is_copilot_code_review': False, 'copilot_code_review_sources': []}], 'type': 'gh_pull_request_review'}

Recent 'gh_push' events

2026-11-02T20:16:24.358672	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'after_sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'commits': [{'author': {'name': 'Ma-Rang', 'email': '266874926+Ma-Rang@users.noreply.github.com', 'date': '2026-03-15T17:40:11-05:00', 'username': 'Ma-Rang'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h'], 'removed': [], 'message': 'EXI: Show on-screen error when USB Gecko fails to bind\n\nPreviously, if the USB Gecko server failed to bind to any port in the\n55020-55030 range, it silently returned with no indication to the user.\nNow displays an on-screen message and logs an error.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/18190eb05d46592e12008050805d9c4bbdbb2138', 'hash': '18190eb05d46592e12008050805d9c4bbdbb2138'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T14:16:21-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h'], 'removed': [], 'message': 'Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error\n\nEXI: Show on-screen error when USB Gecko fails to bind', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e8c42467964da77011f7da93a06f9e0a72ca868f', 'hash': 'e8c42467964da77011f7da93a06f9e0a72ca868f'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-02T19:46:26.202898	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'after_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-11-02T18:36:38+01:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml.in'], 'removed': [], 'message': 'Flatpak: Do not set the flathub::manifest tag\n\nThis resolves the recent build failures introduced by https://github.com/flathub-infra/flatpak-builder-lint/commit/df1c8f992aa5620fc473efe6c6e96b9f3b11e1ba. Nothing seems to break with it being removed.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'hash': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T13:46:23-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml.in'], 'removed': [], 'message': 'Merge pull request #14975 from JoshuaVandaele/flathub-manifest\n\nFlatpak: Do not set the flathub::manifest tag', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'hash': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-02T03:35:02.890014	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'adf85af9fe9785e891fa99141f6d34907a2d9f12', 'after_sha': 'd182533d363eae8c753d37cfad4107930da2019a', 'commits': [{'author': {'name': 'iwubcode', 'email': 'iwubcode@users.noreply.github.com', 'date': '2026-10-04T20:04:35-05:00', 'username': 'iwubcode'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoBackends/D3D/D3DVertexManager.cpp', 'Source/Core/VideoBackends/D3D/D3DVertexManager.h', 'Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp', 'Source/Core/VideoBackends/D3D12/D3D12VertexManager.h', 'Source/Core/VideoBackends/OGL/OGLVertexManager.cpp', 'Source/Core/VideoBackends/OGL/OGLVertexManager.h', 'Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp', 'Source/Core/VideoBackends/Vulkan/VKVertexManager.h', 'Source/Core/VideoCommon/VertexManagerBase.cpp', 'Source/Core/VideoCommon/VertexManagerBase.h'], 'removed': [], 'message': 'VideoBackends / VideoCommon: split draw calls into separate commit and render steps', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4fb368cf36342d6b354d93b8711ef7f2e1881023', 'hash': '4fb368cf36342d6b354d93b8711ef7f2e1881023'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-01T21:35:00-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoBackends/D3D/D3DVertexManager.cpp', 'Source/Core/VideoBackends/D3D/D3DVertexManager.h', 'Source/Core/VideoBackends/D3D12/D3D12VertexManager.cpp', 'Source/Core/VideoBackends/D3D12/D3D12VertexManager.h', 'Source/Core/VideoBackends/OGL/OGLVertexManager.cpp', 'Source/Core/VideoBackends/OGL/OGLVertexManager.h', 'Source/Core/VideoBackends/Vulkan/VKVertexManager.cpp', 'Source/Core/VideoBackends/Vulkan/VKVertexManager.h', 'Source/Core/VideoCommon/VertexManagerBase.cpp', 'Source/Core/VideoCommon/VertexManagerBase.h'], 'removed': [], 'message': 'Merge pull request #14916 from iwubcode/vertex_manager_draw_refactor\n\nVideoBackends / VideoCommon: split draw calls into separate commit and render functions', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d182533d363eae8c753d37cfad4107930da2019a', 'hash': 'd182533d363eae8c753d37cfad4107930da2019a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-02T03:33:58.610819	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'after_sha': 'adf85af9fe9785e891fa99141f6d34907a2d9f12', 'commits': [{'author': {'name': 'debug687', 'email': '313431556+debug687@users.noreply.github.com', 'date': '2026-10-19T21:29:55Z', 'username': 'debug687'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h'], 'removed': [], 'message': "DolphinQt: Fix crash from stale timer event in ToolTipWidget\n\nLLM generated explaination for the LLM generated commit:\n\nA queued QTimerEvent can be dispatched after the timer was already killed (Qt recycles timer ids), e.g. when a slider is dragged and enter/leave events fire in rapid succession. In that case m_timer_id is empty and dereferencing it in timerEvent() asserts on 'this->_M_is_engaged()' in debug builds, while in release builds it passes a garbage timer id to killTimer().\n\nOnly process the event if it matches the timer we are tracking, which also prevents showing a balloon for a stale event.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/cee23f7af6b1624da3e7190e5a18a282d82d567c', 'hash': 'cee23f7af6b1624da3e7190e5a18a282d82d567c'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-01T21:33:55-06:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Config/ToolTipControls/ToolTipWidget.h'], 'removed': [], 'message': 'Merge pull request #14941 from debug687/patch-1\n\nDolphinQt: Fix crash from stale timer event in ToolTipWidget', 'url': 'https://github.com/dolphin-emu/dolphin/commit/adf85af9fe9785e891fa99141f6d34907a2d9f12', 'hash': 'adf85af9fe9785e891fa99141f6d34907a2d9f12'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-01T19:59:48.261662	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'e6ed14488a84eeaae1856e1d7c0dd457dceb49ce', 'after_sha': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-06-28T08:33:40+02:00', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/MathUtil.h', 'Source/Core/Common/Matrix.cpp', 'Source/Core/Common/Matrix.h', 'Source/Core/Core/HW/WiimoteEmu/Camera.h', 'Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp', 'Source/Core/Core/HW/WiimoteEmu/MotionPlus.cpp', 'Source/Core/Core/HW/WiimoteEmu/MotionPlus.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/StickGate.cpp', 'Source/Core/InputCommon/ControllerInterface/DualShockUDPClient/DualShockUDPClient.cpp', 'Source/Core/InputCommon/ControllerInterface/MappingCommon.cpp', 'Source/Core/InputCommon/ControllerInterface/SteamDeck/SteamDeck.cpp', 'Source/Core/InputCommon/ControllerInterface/Wiimote/WiimoteController.cpp', 'Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp', 'Source/Core/VideoBackends/Software/NativeVertexFormat.h', 'Source/UnitTests/Common/MathUtilTest.cpp'], 'removed': [], 'message': "MathUtil: C++20/23 modernisations\n\nI've also created DegreesToRadians/RadiansToDegrees utility functions since there was a lot of repeated code", 'url': 'https://github.com/dolphin-emu/dolphin/commit/6dcb0817a2cd1a507dbf5e3c42bf13623b5b5cae', 'hash': '6dcb0817a2cd1a507dbf5e3c42bf13623b5b5cae'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-11-01T14:59:45-05:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/MathUtil.h', 'Source/Core/Common/Matrix.cpp', 'Source/Core/Common/Matrix.h', 'Source/Core/Core/HW/WiimoteEmu/Camera.h', 'Source/Core/Core/HW/WiimoteEmu/Dynamics.cpp', 'Source/Core/Core/HW/WiimoteEmu/MotionPlus.cpp', 'Source/Core/Core/HW/WiimoteEmu/MotionPlus.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/DolphinQt/Config/Mapping/MappingIndicator.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/AnalogStick.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Cursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Force.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUCursor.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/IMUGyroscope.cpp', 'Source/Core/InputCommon/ControllerEmu/ControlGroup/Tilt.cpp', 'Source/Core/InputCommon/ControllerEmu/StickGate.cpp', 'Source/Core/InputCommon/ControllerInterface/DualShockUDPClient/DualShockUDPClient.cpp', 'Source/Core/InputCommon/ControllerInterface/MappingCommon.cpp', 'Source/Core/InputCommon/ControllerInterface/SteamDeck/SteamDeck.cpp', 'Source/Core/InputCommon/ControllerInterface/Wiimote/WiimoteController.cpp', 'Source/Core/InputCommon/ControllerInterface/evdev/evdev.cpp', 'Source/Core/VideoBackends/Software/NativeVertexFormat.h', 'Source/UnitTests/Common/MathUtilTest.cpp'], 'removed': [], 'message': 'Merge pull request #14704 from JoshuaVandaele/mathutils-23\n\nMathUtil: C++20/23 modernisations', 'url': 'https://github.com/dolphin-emu/dolphin/commit/833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'hash': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-01T19:59:20.079691	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '86d554802d7560acf12b5c5a2b3acb344069b5ce', 'after_sha': 'e6ed14488a84eeaae1856e1d7c0dd457dceb49ce', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2025-10-11T18:29:51-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'HW/Wiimote: Speaker logic accuracy fixes, comments, and code cleanups.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/baa05e32f1db379e98bbd48b35b2aaa2e6fa4e94', 'hash': 'baa05e32f1db379e98bbd48b35b2aaa2e6fa4e94'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-11-01T14:59:17-05:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/HW/WiimoteEmu/EmuSubroutines.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.h', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.cpp', 'Source/Core/Core/HW/WiimoteReal/WiimoteReal.h'], 'removed': [], 'message': 'Merge pull request #14006 from jordan-woyak/speaker-accuracy\n\nHW/Wiimote: Speaker logic accuracy fixes, comments, and code cleanups.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e6ed14488a84eeaae1856e1d7c0dd457dceb49ce', 'hash': 'e6ed14488a84eeaae1856e1d7c0dd457dceb49ce'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-01T05:11:01.565986	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'iwubcode', 'before_sha': '613db73aeb2c086a816592df2fb193d73130101b', 'after_sha': '86d554802d7560acf12b5c5a2b3acb344069b5ce', 'commits': [{'author': {'name': 'CySlaytor', 'email': 'cyslaytor@gmail.com', 'date': '2026-11-01T01:29:01Z', 'username': 'CySlaytor'}, 'distinct': False, 'added': ['Data/Sys/Sounds/info.wav', 'Data/Sys/Sounds/lb.wav', 'Data/Sys/Sounds/lbcancel.wav', 'Data/Sys/Sounds/lbsubmit.wav', 'Data/Sys/Sounds/unlock.wav'], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/AudioCommon/WaveFile.cpp', 'Source/Core/AudioCommon/WaveFile.h', 'Source/Core/Common/CommonPaths.h', 'Source/Core/Common/FileUtil.cpp', 'Source/Core/Common/FileUtil.h', 'Source/Core/Core/AchievementManager.cpp', 'Source/Core/Core/AchievementManager.h', 'Source/Core/Core/Config/AchievementSettings.cpp', 'Source/Core/Core/Config/AchievementSettings.h', 'Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp', 'Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.h'], 'removed': [], 'message': 'feat(retroachievements): implement achievement notification sounds', 'url': 'https://github.com/dolphin-emu/dolphin/commit/56076f403dc8fc3a560e4b6c0811fba3d49ad880', 'hash': '56076f403dc8fc3a560e4b6c0811fba3d49ad880'}, {'author': {'name': 'iwubcode', 'email': 'iwubcode@users.noreply.github.com', 'date': '2026-11-01T00:10:58-05:00', 'username': 'iwubcode'}, 'distinct': True, 'added': ['Data/Sys/Sounds/info.wav', 'Data/Sys/Sounds/lb.wav', 'Data/Sys/Sounds/lbcancel.wav', 'Data/Sys/Sounds/lbsubmit.wav', 'Data/Sys/Sounds/unlock.wav'], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/AudioCommon/WaveFile.cpp', 'Source/Core/AudioCommon/WaveFile.h', 'Source/Core/Common/CommonPaths.h', 'Source/Core/Common/FileUtil.cpp', 'Source/Core/Common/FileUtil.h', 'Source/Core/Core/AchievementManager.cpp', 'Source/Core/Core/AchievementManager.h', 'Source/Core/Core/Config/AchievementSettings.cpp', 'Source/Core/Core/Config/AchievementSettings.h', 'Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.cpp', 'Source/Core/DolphinQt/Achievements/AchievementSettingsWidget.h'], 'removed': [], 'message': 'Merge pull request #14596 from CySlaytor/master\n\nfeat(retroachievements): implement achievement notification sounds', 'url': 'https://github.com/dolphin-emu/dolphin/commit/86d554802d7560acf12b5c5a2b3acb344069b5ce', 'hash': '86d554802d7560acf12b5c5a2b3acb344069b5ce'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-11-01T04:58:33.096478	{'source': 'ghhookparser', 'repo': 'dolphin-emu/sadm', 'pusher': 'OatmealDome', 'before_sha': '855912ebde8af3da1c27fd82351104a095734af0', 'after_sha': '7dbfc36649ffe79b77c08995556a0e65e3594cf5', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-11-01T00:19:40-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['flake.lock'], 'removed': [], 'message': "flake.lock: Update\n\nFlake lock file updates:\n\n• Updated input 'colmena':\n    'github:nix-community/colmena/e269669b798a361a521029d5d15e289124a15038?narHash=sha256-jp%2BgxgnCdMhpBxxBnOoHW5fRVc%2BC5rKCFHsP/afoh3w%3D' (2026-10-09)\n  → 'github:nix-community/colmena/fc7d67ed1cd52af91415f92ba92b543bc7245f25?narHash=sha256-Dv4jEQeqvPpicC3H8mLTyqtTgXp23p4HPiCMKqKWXFA%3D' (2026-10-30)\n• Updated input 'colmena/nixpkgs':\n    'github:nixos/nixpkgs/494ce7fd23ff6a5dff39e1fb11e9b6f2ac74bf25?narHash=sha256-Ni0LBydzaCi8oek12r4mVreuFHqYlM1eTD6SfiENKfw%3D' (2026-10-05)\n  → 'github:nixos/nixpkgs/3ec636362e1816bc2f0888fa0fa2c69f1bc9e504?narHash=sha256-rZLrzrC6i%2BjnTAlvPZHogKDulY7WWDEv9hJeHieO7Zw%3D' (2026-10-23)\n• Updated input 'colmena/stable':\n    'github:nixos/nixpkgs/1f623a1582190fa3ba3f5cea25aba925055d43eb?narHash=sha256-q8KNN9Zs/nau7Cc8%2Bf5ZGJeMXmCQqm5%2Bbgy5m/uYxmw%3D' (2026-10-05)\n  → 'github:nixos/nixpkgs/89844ad35df40e876cb6d0a3a319fbf65ea4b984?narHash=sha256-TMADWku9ye40AQKGMdSoCpByfqaL7kbO%2Bo8E46Q7CLQ%3D' (2026-10-26)\n• Updated input 'nixpkgs':\n    'github:NixOS/nixpkgs/da6dc0e7b26060f2f71ce3ef7088fb56ee44fa36?narHash=sha256-MlvRfa1O5Cqc2/a%2BgG%2Bl9TSuowEoCKCmrJ1d9oAVm0I%3D' (2026-10-21)\n  → 'github:NixOS/nixpkgs/fa1373130d5a21c040a47c5dbe1913d59ed91808?narHash=sha256-HzgjxrLY4AEc0044ZuM5CHbLSWLZgDlay1idmzvvpJs%3D' (2026-10-31)\n• Updated input 'pyproject-build-systems':\n    'github:pyproject-nix/build-system-pkgs/a17819c85163988e063806ffc4f6d2716bc8ead8?narHash=sha256-mGOkvueuMGSRiD75ccxFzfEvSlIU9ztjFluHMKOtogY%3D' (2026-10-20)\n  → 'github:pyproject-nix/build-system-pkgs/6171a3484937e14cdf2316ed9a60f1c27b6cb71e?narHash=sha256-wLiau0yOPONjWSoQNC%2B%2BuirtJqx2D4hGAWSKU0TfKGc%3D' (2026-10-29)\n• Updated input 'pyproject-build-systems/uv2nix':\n    'github:pyproject-nix/uv2nix/7aba73a3d85454f1118f8cf9de97979b4d26bcac?narHash=sha256-PMtgvHuGijoIAtPtrBm7kJOI6fxzX4LYPAIK%2BQVGY%2BY%3D' (2026-10-16)\n  → 'github:pyproject-nix/uv2nix/c361746c7d630d98b972378290547c8d35542a7a?narHash=sha256-3CE1CEwprYlHRlRVkXDkhqec0jjF9Cti7tdk8vVDsCM%3D' (2026-10-29)\n• Updated input 'pyproject-nix':\n    'github:pyproject-nix/pyproject.nix/ddc400a6883b042646d0940e65971bb7f7e96107?narHash=sha256-vcCAvhtA7hG%2B/gOge29hYHy7I/dLkIsr5nLx4sFEQic%3D' (2026-10-10)\n  → 'github:pyproject-nix/pyproject.nix/bf7d4b1d6de61db02fd4e748395634f03006e5de?narHash=sha256-NPWgb6H4arnWyTKvYIys5U0xqd5QY74Z%2BlyTJA%2B7XGY%3D' (2026-10-29)\n• Updated input 'rust-overlay':\n    'github:oxalica/rust-overlay/5f267b7f323a4d6df0b9c0e3eaa043cbe85386f2?narHash=sha256-E8zFJilWlORqzIUJizyhZ/0WKBOizuM6s1nRSgPRomo%3D' (2026-10-22)\n  → 'github:oxalica/rust-overlay/6ecf534a7c16e7c969f26838fdd8c93597ae93f3?narHash=sha256-%2BsgVNI2c67di%2BXIeMaz5KSei4T65kX68s5Nl0E5Gzbc%3D' (2026-10-31)\n• Updated input 'uv2nix':\n    'github:pyproject-nix/uv2nix/0fdaa03ea3c3c16dbb1fe4d69108f07227a4b42d?narHash=sha256-UWo7wDPi00YXOI1Io7g4vGKuCSPJ863kHJVDzsgqtoM%3D' (2026-10-22)\n  → 'github:pyproject-nix/uv2nix/c361746c7d630d98b972378290547c8d35542a7a?narHash=sha256-3CE1CEwprYlHRlRVkXDkhqec0jjF9Cti7tdk8vVDsCM%3D' (2026-10-29)", 'url': 'https://github.com/dolphin-emu/sadm/commit/7dbfc36649ffe79b77c08995556a0e65e3594cf5', 'hash': '7dbfc36649ffe79b77c08995556a0e65e3594cf5'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}

Recent 'internal_log' events

2026-11-02T23:07:53.361337	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T23:07:51.593299	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T23:04:59.897717	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T23:04:59.573529	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T23:02:51.592932	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T23:02:49.973099	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:57:49.972603	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:57:48.362808	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:54:59.573304	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T22:54:59.260080	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:52:48.362398	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:52:46.621532	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:47:46.621092	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:47:44.978338	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:44:59.259859	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T22:44:58.935733	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:42:44.977912	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:42:43.278786	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:37:43.278379	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:37:41.495651	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:34:58.935463	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,degasus,Dentomologist,Pokechu22,CrossVR,jordan-woyak,AdmiralCurtiss,JosJuice,linkmauve,iwubcode,Tilka,OatmealDome,leoetlino')", 'type': 'internal_log'}
2026-11-02T22:34:58.601878	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:32:41.495283	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}
2026-11-02T22:32:39.750380	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-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-11-02T22:27:39.749956	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/98y8b324p65rdc44nkgfs38ml3cplndp-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 29, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'FioraAeterna,meffij,moncefmechri,Buddybenj,Helios747,hackbar,Zopolis4,bentley,lioncash,mandar1jn,magumagu,booto,magcius,riking,linkmauve,Ziek,Parlane,zackhow,tom-pratt,CasualPokePlayer,ligfx,cristian64,TryTwo,skidau,vladfi1,jloehr,EmptyChaos,deReeperJosh,JordanTheToaster,kamiyo,LPFaint99,OatmealDome,rukai,randomstuff,TellowKrinkle,mimimi085181,RisingFog,PatrickFerry,Filoppi,hrydgard,Pokechu22,ColinDTaylor,Tilka,Stevoisiak,nullgemm,hdcmeta,mathieui,rlnilsen,SuperSamus,CrossVR,SirMangler,mitaclaw,shonumi,DacoTaco,Ebola16,CelestialAmber,CookiePLMonster,orbea,mahdihijazi,Tinob,Linktothepast,mbc07,aldelaro5,jordan-woyak,merryhime,aroulin,LAGonauta,unknownbrackets,skylersaleh,phire,delroth,LillyJadeKatrin,yourWaifu,VampireFlower,Sir-Walrus,Techjar,BhaaLseN,CrystalGamma,NanoByte011,Geotale,tygyh,Lobsterzelda,OrN,jezze,Dentomologist,Phatcat,Sintendo,Hydr8gon,comex,jjdelvalle,Simonx22,krnlyng,Linkinworm,Orphis,endrift,neobrain,zopieux,AdmiralCurtiss,noahpistilli,K0bin,RachelBryk,spxtr,glennricster,JosJuice,smurf3tte,sepalani,Starsam80,marcan,adamdmoss,hthh,mrgreywater,cscd98,Sam-Belliveau,iwubcode,archshift,MayImilae,galop1n,nickbeth,dreamsyntax,ShimmerGlass,corwin-mcknight,JoshuaVandaele,Gamer64ytb,leoetlino,JMC47,crediar,degasus,gwicks,malleoz,mmastrac,kayru,spycrab')", 'type': 'internal_log'}

Recent 'issue' events

2026-11-01T09:16:43.791855	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 14174, 'title': 'Paper mario the thousand year door  ', 'author': 'JosJuice', 'type': 'issue'}

Recent 'new_dev_version' events

2026-11-02T20:16:26.534624	{'source': 'repomanager', 'hash': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'branch': 'master', 'shortrev': '2609-170', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error\n\nEXI: Show on-screen error when USB Gecko fails to bind', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e8c42467964da77011f7da93a06f9e0a72ca868f', 'type': 'new_dev_version'}
2026-11-02T19:46:28.060984	{'source': 'repomanager', 'hash': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'branch': 'master', 'shortrev': '2609-168', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14975 from JoshuaVandaele/flathub-manifest\n\nFlatpak: Do not set the flathub::manifest tag', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'type': 'new_dev_version'}
2026-11-02T03:35:04.879103	{'source': 'repomanager', 'hash': 'd182533d363eae8c753d37cfad4107930da2019a', 'branch': 'master', 'shortrev': '2609-166', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14916 from iwubcode/vertex_manager_draw_refactor\n\nVideoBackends / VideoCommon: split draw calls into separate commit and render functions', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d182533d363eae8c753d37cfad4107930da2019a', 'type': 'new_dev_version'}
2026-11-02T03:34:00.690923	{'source': 'repomanager', 'hash': 'adf85af9fe9785e891fa99141f6d34907a2d9f12', 'branch': 'master', 'shortrev': '2609-164', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14941 from debug687/patch-1\n\nDolphinQt: Fix crash from stale timer event in ToolTipWidget', 'url': 'https://github.com/dolphin-emu/dolphin/commit/adf85af9fe9785e891fa99141f6d34907a2d9f12', 'type': 'new_dev_version'}
2026-11-01T19:59:49.726721	{'source': 'repomanager', 'hash': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'branch': 'master', 'shortrev': '2609-162', 'author': 'JMC47', 'message': 'Merge pull request #14704 from JoshuaVandaele/mathutils-23\n\nMathUtil: C++20/23 modernisations', 'url': 'https://github.com/dolphin-emu/dolphin/commit/833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'type': 'new_dev_version'}
2026-11-01T19:59:21.576066	{'source': 'repomanager', 'hash': 'e6ed14488a84eeaae1856e1d7c0dd457dceb49ce', 'branch': 'master', 'shortrev': '2609-160', 'author': 'JMC47', 'message': 'Merge pull request #14006 from jordan-woyak/speaker-accuracy\n\nHW/Wiimote: Speaker logic accuracy fixes, comments, and code cleanups.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e6ed14488a84eeaae1856e1d7c0dd457dceb49ce', 'type': 'new_dev_version'}
2026-11-01T05:11:03.397581	{'source': 'repomanager', 'hash': '86d554802d7560acf12b5c5a2b3acb344069b5ce', 'branch': 'master', 'shortrev': '2609-158', 'author': 'iwubcode', 'message': 'Merge pull request #14596 from CySlaytor/master\n\nfeat(retroachievements): implement achievement notification sounds', 'url': 'https://github.com/dolphin-emu/dolphin/commit/86d554802d7560acf12b5c5a2b3acb344069b5ce', 'type': 'new_dev_version'}

Recent 'notification' events

2026-11-02T22:47:29.124013	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6590433062\x03\x1f', 'type': 'notification'}
2026-11-02T21:44:36.920715	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffoshuaVandaele\x03 approved pull request #14972 (Minor cleanups with "parenthesized initialization of aggregates".): \x1f\x0302https://dolp.in/pr14972#pullrequestreview-5743829463\x03\x1f', 'type': 'notification'}
2026-11-02T21:37:38.369392	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 unlabeled pull request #14819: DriverDetails: Set fixed versions for old Adreno bugs (\x0306master\x03...\x0306prune-adreno-bugs\x03): \x1f\x0302https://dolp.in/pr14819\x03\x1f', 'type': 'notification'}
2026-11-02T21:24:06.978746	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffoshuaVandaele\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6588817099\x03\x1f', 'type': 'notification'}
2026-11-02T20:50:29.460173	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffoshuaVandaele\x03 approved pull request #14973 (CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.): \x1f\x0302https://dolp.in/pr14973#pullrequestreview-5743139527\x03\x1f', 'type': 'notification'}
2026-11-02T20:39:15.761906	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303Y\ufeffola-cola\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6587905680\x03\x1f', 'type': 'notification'}
2026-11-02T20:39:14.949168	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 synchronized pull request #14819: DriverDetails: Set fixed versions for old Adreno bugs (\x0306master\x03...\x0306prune-adreno-bugs\x03): \x1f\x0302https://dolp.in/pr14819\x03\x1f', 'type': 'notification'}
2026-11-02T20:16:28.498059	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 merged pull request #14510: EXI: Show on-screen error when USB Gecko fails to bind (\x0306master\x03...\x0306pr/gecko-bind-error\x03): \x1f\x0302https://dolp.in/pr14510\x03\x1f', 'type': 'notification'}
2026-11-02T20:16:24.359250	{'source': 'notifications', 'msg': 'e8c424 by \x0303J\ufeffordan Woyak\x03 [\x03090\x03|\x03092\x03|\x03040\x03] \x1f\x0302https://dolp.in/re8c42467964da77011f7da93a06f9e0a72ca868f\x03\x1f Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error', 'type': 'notification'}
2026-11-02T20:16:24.359107	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303j\ufeffordan-woyak\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
2026-11-02T20:15:21.814832	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 approved pull request #14774 (Refactor the GameCube microphone code): \x1f\x0302https://dolp.in/pr14774#pullrequestreview-5742725603\x03\x1f', 'type': 'notification'}
2026-11-02T20:12:54.999901	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 commented on #14967 f9913a: \x1f\x0302https://dolp.in/pr14967#discussion_r4447219211\x03\x1f', 'type': 'notification'}
2026-11-02T20:12:52.585705	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14967: Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows. (\x0306master\x03...\x0306SO_REUSEADDR\x03): \x1f\x0302https://dolp.in/pr14967\x03\x1f', 'type': 'notification'}
2026-11-02T20:09:04.805064	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 commented on #14973 6edc53: \x1f\x0302https://dolp.in/pr14973#discussion_r4447183650\x03\x1f', 'type': 'notification'}
2026-11-02T20:07:09.982201	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 synchronized pull request #14973: CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals. (\x0306master\x03...\x0306cubeb-backend-selection\x03): \x1f\x0302https://dolp.in/pr14973\x03\x1f', 'type': 'notification'}
2026-11-02T19:46:26.203666	{'source': 'notifications', 'msg': 'a0ed23 by \x0303J\ufeffordan Woyak\x03 [\x03090\x03|\x03091\x03|\x03040\x03] \x1f\x0302https://dolp.in/ra0ed231ff614ec6e03716d72fa8f3a11ce57c6a0\x03\x1f Merge pull request #14975 from JoshuaVandaele/flathub-manifest', 'type': 'notification'}
2026-11-02T19:46:26.203492	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x1f\x03] \x0303j\ufeffordan-woyak\x03 pushed \x021\x02 new commit to \x0306master\x03', 'type': 'notification'}
2026-11-02T19:46:26.028872	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 merged pull request #14975: Flatpak: Do not set the flathub::manifest tag (\x0306master\x03...\x0306flathub-manifest\x03): \x1f\x0302https://dolp.in/pr14975\x03\x1f', 'type': 'notification'}
2026-11-02T19:32:05.104120	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 approved pull request #14975 (Flatpak: Do not set the flathub::manifest tag): \x1f\x0302https://dolp.in/pr14975#pullrequestreview-5742201634\x03\x1f', 'type': 'notification'}
2026-11-02T19:17:59.806764	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffosJuice\x03 commented on #14819 (DriverDetails: Set fixed versions for old Adreno bugs): \x1f\x0302https://dolp.in/pr14819#issuecomment-6586181869\x03\x1f', 'type': 'notification'}
2026-11-02T19:15:26.375584	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303R\ufeffumi-Larry\x03 edited a comment on #14819 (DriverDetails: Set fixed versions for old Adreno bugs): \x1f\x0302https://dolp.in/pr14819#issuecomment-6586123014\x03\x1f', 'type': 'notification'}
2026-11-02T19:15:08.586294	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303R\ufeffumi-Larry\x03 commented on #14819 (DriverDetails: Set fixed versions for old Adreno bugs): \x1f\x0302https://dolp.in/pr14819#issuecomment-6586123014\x03\x1f', 'type': 'notification'}
2026-11-02T19:13:22.736223	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303m\ufeffbc07\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6586086853\x03\x1f', 'type': 'notification'}
2026-11-02T19:07:00.895094	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14774 \x0304failed\x03 on builders [pr-flatpak-x64]: \x1f\x0302https://dolphin.ci/#/builders/43/builds/6047\x03\x1f', 'type': 'notification'}
2026-11-02T19:06:50.504770	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303R\ufeffumi-Larry\x03 commented on #14974 (Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware): \x1f\x0302https://dolp.in/pr14974#issuecomment-6585921716\x03\x1f', 'type': 'notification'}

Recent 'pull_request_fifoci_status' events

2026-11-02T22:55:39.408282	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14774, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:50:02.711069	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14819, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:44:20.145154	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14975, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:39:15.408153	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14819, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:36:47.065455	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:24:16.505035	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '814e11dace409c67172618a2fc01c1fc6a313aae', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14819, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:15:28.154622	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14967, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:09:51.839067	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14967, 'type': 'pull_request_fifoci_status'}
2026-11-02T22:04:40.870937	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14967, 'type': 'pull_request_fifoci_status'}
2026-11-02T21:55:08.540041	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14973, 'type': 'pull_request_fifoci_status'}
2026-11-02T21:40:10.545545	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14973, 'type': 'pull_request_fifoci_status'}
2026-11-02T21:29:22.883814	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14973, 'type': 'pull_request_fifoci_status'}
2026-11-02T20:03:12.843193	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14774, 'type': 'pull_request_fifoci_status'}
2026-11-02T19:43:55.390282	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14975, 'type': 'pull_request_fifoci_status'}
2026-11-02T19:36:03.404650	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14774, 'type': 'pull_request_fifoci_status'}
2026-11-02T19:29:51.946004	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-11-02T19:25:14.942975	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14774, 'type': 'pull_request_fifoci_status'}
2026-11-02T19:00:03.813338	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14975, 'type': 'pull_request_fifoci_status'}
2026-11-02T18:56:40.810490	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14962, 'type': 'pull_request_fifoci_status'}
2026-11-02T18:49:11.219438	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14975, 'type': 'pull_request_fifoci_status'}
2026-11-02T18:25:00.693593	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-11-02T18:18:40.814149	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14962, 'type': 'pull_request_fifoci_status'}
2026-11-02T18:14:01.024574	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-11-02T17:50:08.568225	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14962, 'type': 'pull_request_fifoci_status'}
2026-11-02T17:39:32.122046	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14962, 'type': 'pull_request_fifoci_status'}

Recent 'raw_bb_hook' events

2026-11-02T23:08:54.728433	{'source': 'webserver', 'raw': {'buildid': 196017, 'number': 5539, 'builderid': 41, 'buildrequestid': 196479, 'workerid': 5, 'masterid': 1, 'started_at': 1793660928, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14962', 'Trigger'], 'pr_id': [14962, 'Trigger'], 'builderid': [41, 'Builder'], 'revision': ['f1b323ed0d893f7d3f30e810558d0910441cde31', 'Build'], 'baserev': ['833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['f1b323ed0d893f7d3f30e810558d0910441cde31', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildnumber': [5539, 'Build'], 'codebase': ['', 'Build'], 'shortrev': ['f1b323', 'Trigger'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'branch': ['refs/pull/14962/head', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196479, 'buildsetid': 44014, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1793660928, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793641049, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44014, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793641049, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195876, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13216, 'branch': 'refs/pull/14962/head', 'revision': 'f1b323ed0d893f7d3f30e810558d0910441cde31', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793639524, 'patch': None}]}, 'parentbuild': {'buildid': 195876, 'number': 10896, 'builderid': 27, 'buildrequestid': 196455, 'workerid': 10, 'masterid': 1, 'started_at': 1793639532, 'complete_at': 1793641049, '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/5539'}, 'type': 'raw_bb_hook'}
2026-11-02T23:05:19.804756	{'source': 'webserver', 'raw': {'buildid': 196016, 'number': 9557, 'builderid': 35, 'buildrequestid': 196595, 'workerid': 5, 'masterid': 1, 'started_at': 1793660719, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14967', 'Trigger'], 'pr_id': [14967, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [9557, 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/14967/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'shortrev': ['f9913a', 'Trigger'], 'builderid': [35, 'Builder'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196595, 'buildsetid': 44033, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793660719, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652052, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44033, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652052, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195970, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 195970, 'number': 10901, 'builderid': 27, 'buildrequestid': 196558, 'workerid': 10, 'masterid': 1, 'started_at': 1793651614, 'complete_at': 1793652052, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9557'}, 'type': 'raw_bb_hook'}
2026-11-02T22:55:49.573533	{'source': 'webserver', 'raw': {'buildid': 196015, 'number': 9556, 'builderid': 35, 'buildrequestid': 196578, 'workerid': 5, 'masterid': 1, 'started_at': 1793660138, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14973', 'Trigger'], 'shortrev': ['6edc53', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'branch': ['refs/pull/14973/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'project': ['', 'Build'], 'headrev': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Trigger'], 'pr_id': [14973, 'Trigger'], 'repository': ['', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'buildnumber': [9556, 'Build'], 'revision': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Build']}, 'buildrequest': {'buildrequestid': 196578, 'buildsetid': 44031, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793660138, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793651606, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44031, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793651606, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195954, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13221, 'branch': 'refs/pull/14973/head', 'revision': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650044, 'patch': None}]}, 'parentbuild': {'buildid': 195954, 'number': 10900, 'builderid': 27, 'buildrequestid': 196544, 'workerid': 10, 'masterid': 1, 'started_at': 1793650050, 'complete_at': 1793651606, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9556'}, 'type': 'raw_bb_hook'}
2026-11-02T22:55:38.678046	{'source': 'webserver', 'raw': {'buildid': 196014, 'number': 9555, 'builderid': 35, 'buildrequestid': 196519, 'workerid': 5, 'masterid': 1, 'started_at': 1793659448, 'complete_at': 1793660138, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14774, 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'got_revision': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'GitNoBranch'], 'headrev': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'branch': ['refs/pull/14774/head', 'Build'], 'codebase': ['', 'Build'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: sepalani)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'branchname': ['pr-14774', 'Trigger'], 'shortrev': ['3b4071', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [35, 'Builder'], 'buildnumber': [9555, 'Build'], 'repository': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'warnings-count': [4, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196519, 'buildsetid': 44023, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793659448, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793646188, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44023, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793646188, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195920, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13219, 'branch': 'refs/pull/14774/head', 'revision': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793644585, 'patch': None}]}, 'parentbuild': {'buildid': 195920, 'number': 10899, 'builderid': 27, 'buildrequestid': 196510, 'workerid': 10, 'masterid': 1, 'started_at': 1793644592, 'complete_at': 1793646188, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9555'}, 'type': 'raw_bb_hook'}
2026-11-02T22:50:01.977862	{'source': 'webserver', 'raw': {'buildid': 196013, 'number': 9247, 'builderid': 21, 'buildrequestid': 196605, 'workerid': 8, 'masterid': 1, 'started_at': 1793659154, 'complete_at': 1793659801, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14819', 'Trigger'], 'shortrev': ['814e11', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'branch': ['refs/pull/14819/head', 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'builddir': ['/Users/ci/worker/base/pr-fifoci-mtl-osx-m1', 'Worker'], 'pr_id': [14819, 'Trigger'], 'builderid': [21, 'Builder'], 'buildnumber': [9247, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'warnings-count': [114, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196605, 'buildsetid': 44039, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1793659154, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1793658495, 'complete_at': 1793659801, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44039, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793658495, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196009, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9247'}, 'type': 'raw_bb_hook'}
2026-11-02T22:44:19.528334	{'source': 'webserver', 'raw': {'buildid': 196012, 'number': 9554, 'builderid': 35, 'buildrequestid': 196500, 'workerid': 5, 'masterid': 1, 'started_at': 1793659006, 'complete_at': 1793659448, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'headrev': ['2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'Trigger'], 'branch': ['refs/pull/14975/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JoshuaVandaele)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14975, 'Trigger'], 'project': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'got_revision': ['2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'GitNoBranch'], 'branchname': ['pr-14975', 'Trigger'], 'shortrev': ['2833c1', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'buildnumber': [9554, 'Build'], 'repository': ['', 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'Build']}, 'buildrequest': {'buildrequestid': 196500, 'buildsetid': 44018, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793659006, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793642882, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44018, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793642882, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195899, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13218, 'branch': 'refs/pull/14975/head', 'revision': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793641841, 'patch': None}]}, 'parentbuild': {'buildid': 195899, 'number': 10898, 'builderid': 27, 'buildrequestid': 196488, 'workerid': 10, 'masterid': 1, 'started_at': 1793642772, 'complete_at': 1793642883, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9554'}, 'type': 'raw_bb_hook'}
2026-11-02T22:44:09.169589	{'source': 'webserver', 'raw': {'buildid': 196014, 'number': 9555, 'builderid': 35, 'buildrequestid': 196519, 'workerid': 5, 'masterid': 1, 'started_at': 1793659448, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14774, 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'headrev': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'branch': ['refs/pull/14774/head', 'Build'], 'codebase': ['', 'Build'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: sepalani)'], 'Build'], 'branchname': ['pr-14774', 'Trigger'], 'shortrev': ['3b4071', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'builderid': [35, 'Builder'], 'buildnumber': [9555, 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196519, 'buildsetid': 44023, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793659448, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793646188, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44023, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793646188, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195920, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13219, 'branch': 'refs/pull/14774/head', 'revision': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793644585, 'patch': None}]}, 'parentbuild': {'buildid': 195920, 'number': 10899, 'builderid': 27, 'buildrequestid': 196510, 'workerid': 10, 'masterid': 1, 'started_at': 1793644592, 'complete_at': 1793646188, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9555'}, 'type': 'raw_bb_hook'}
2026-11-02T22:39:14.776946	{'source': 'webserver', 'raw': {'buildid': 196013, 'number': 9247, 'builderid': 21, 'buildrequestid': 196605, 'workerid': 8, 'masterid': 1, 'started_at': 1793659154, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14819', 'Trigger'], 'shortrev': ['814e11', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'branch': ['refs/pull/14819/head', 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'pr_id': [14819, 'Trigger'], 'builderid': [21, 'Builder'], 'buildnumber': [9247, 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196605, 'buildsetid': 44039, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1793659154, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793658495, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44039, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793658495, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196009, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9247'}, 'type': 'raw_bb_hook'}
2026-11-02T22:39:14.686069	{'source': 'webserver', 'raw': {'buildid': 196011, 'number': 9245, 'builderid': 19, 'buildrequestid': 196604, 'workerid': 8, 'masterid': 1, 'started_at': 1793658495, 'complete_at': 1793659154, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'repository': ['', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'shortrev': ['814e11', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14819/head', 'Build'], 'builderid': [19, 'Builder'], 'buildnumber': [9245, 'Build'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'codebase': ['', 'Build'], 'branchname': ['pr-14819', 'Trigger'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [114, 'WarningCountingShellCommand'], 'pr_id': [14819, 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'project': ['', 'Build'], 'builddir': ['/Users/ci/worker/base/pr-fifoci-mvk-osx-m1', 'Worker']}, 'buildrequest': {'buildrequestid': 196604, 'buildsetid': 44039, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1793658495, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793658495, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44039, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793658495, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196009, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/9245'}, 'type': 'raw_bb_hook'}
2026-11-02T22:36:56.933480	{'source': 'webserver', 'raw': {'buildid': 196012, 'number': 9554, 'builderid': 35, 'buildrequestid': 196500, 'workerid': 5, 'masterid': 1, 'started_at': 1793659006, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'Trigger'], 'branch': ['refs/pull/14975/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JoshuaVandaele)'], 'Build'], 'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14975, 'Trigger'], 'project': ['', 'Build'], 'branchname': ['pr-14975', 'Trigger'], 'shortrev': ['2833c1', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'buildnumber': [9554, 'Build'], 'repository': ['', 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'Build']}, 'buildrequest': {'buildrequestid': 196500, 'buildsetid': 44018, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793659006, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793642882, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44018, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793642882, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195899, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13218, 'branch': 'refs/pull/14975/head', 'revision': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793641841, 'patch': None}]}, 'parentbuild': {'buildid': 195899, 'number': 10898, 'builderid': 27, 'buildrequestid': 196488, 'workerid': 10, 'masterid': 1, 'started_at': 1793642772, 'complete_at': 1793642883, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9554'}, 'type': 'raw_bb_hook'}
2026-11-02T22:36:46.323873	{'source': 'webserver', 'raw': {'buildid': 196010, 'number': 9553, 'builderid': 35, 'buildrequestid': 196497, 'workerid': 5, 'masterid': 1, 'started_at': 1793658254, 'complete_at': 1793659006, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'builderid': [35, 'Builder'], 'branch': ['refs/pull/14257/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JoshuaVandaele)'], 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14257, 'Trigger'], 'got_revision': ['804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'GitNoBranch'], 'branchname': ['pr-14257', 'Trigger'], 'revision': ['804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'Build'], 'project': ['', 'Build'], 'warnings-count': [4, 'WarningCountingShellCommand'], 'shortrev': ['804c24', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'headrev': ['804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'buildnumber': [9553, 'Build'], 'repository': ['', 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker']}, 'buildrequest': {'buildrequestid': 196497, 'buildsetid': 44017, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793658254, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793642767, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44017, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793642767, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195884, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13217, 'branch': 'refs/pull/14257/head', 'revision': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793641026, 'patch': None}]}, 'parentbuild': {'buildid': 195884, 'number': 10897, 'builderid': 27, 'buildrequestid': 196471, 'workerid': 10, 'masterid': 1, 'started_at': 1793641053, 'complete_at': 1793642767, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9553'}, 'type': 'raw_bb_hook'}
2026-11-02T22:28:17.323969	{'source': 'webserver', 'raw': {'buildid': 196011, 'number': 9245, 'builderid': 19, 'buildrequestid': 196604, 'workerid': 8, 'masterid': 1, 'started_at': 1793658495, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'repository': ['', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'shortrev': ['814e11', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14819/head', 'Build'], 'builderid': [19, 'Builder'], 'buildnumber': [9245, 'Build'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'codebase': ['', 'Build'], 'branchname': ['pr-14819', 'Trigger'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'pr_id': [14819, 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196604, 'buildsetid': 44039, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1793658495, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793658495, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44039, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793658495, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196009, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/9245'}, 'type': 'raw_bb_hook'}
2026-11-02T22:28:17.234745	{'source': 'webserver', 'raw': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': 1793658495, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [10921, 'Build'], 'project': ['', 'Build'], 'got_revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'GitNoBranch'], 'branchname': ['pr-14819', 'Change'], 'pr_id': [14819, 'Change'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'shortrev': ['814e11', 'Change'], 'builderid': [7, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14819/head', 'Build'], 'builddir': ['/Users/ci/worker/base/pr-osx-universal', 'Worker']}, 'buildrequest': {'buildrequestid': 196582, 'buildsetid': 44032, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1793657727, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793651969, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44032, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1793651969, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, '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/10921'}, 'type': 'raw_bb_hook'}
2026-11-02T22:24:14.695048	{'source': 'webserver', 'raw': {'buildid': 196008, 'number': 9559, 'builderid': 10, 'buildrequestid': 196597, 'workerid': 5, 'masterid': 1, 'started_at': 1793657391, 'complete_at': 1793658254, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [9559, 'Build'], 'project': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'shortrev': ['814e11', 'Trigger'], 'builderid': [10, 'Builder'], 'repository': ['', 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'branchname': ['pr-14819', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/14819/head', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'pr_id': [14819, 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'got_revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'GitNoBranch'], 'warnings-count': [1, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196597, 'buildsetid': 44034, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1793657391, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652310, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44034, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652310, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195979, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 195979, 'number': 10902, 'builderid': 27, 'buildrequestid': 196588, 'workerid': 10, 'masterid': 1, 'started_at': 1793652057, 'complete_at': 1793652310, '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': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9559'}, 'type': 'raw_bb_hook'}
2026-11-02T22:24:14.397793	{'source': 'webserver', 'raw': {'buildid': 196010, 'number': 9553, 'builderid': 35, 'buildrequestid': 196497, 'workerid': 5, 'masterid': 1, 'started_at': 1793658254, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'builderid': [35, 'Builder'], 'branch': ['refs/pull/14257/head', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: JoshuaVandaele)'], 'Build'], 'baserev': ['d182533d363eae8c753d37cfad4107930da2019a', 'Change'], 'pr_id': [14257, 'Trigger'], 'branchname': ['pr-14257', 'Trigger'], 'revision': ['804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'Build'], 'project': ['', 'Build'], 'shortrev': ['804c24', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'headrev': ['804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'buildnumber': [9553, 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196497, 'buildsetid': 44017, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1793658254, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793642767, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44017, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793642767, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195884, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13217, 'branch': 'refs/pull/14257/head', 'revision': '804c243357697bc7fdb061bdd0acdb869fc8f7a9', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793641026, 'patch': None}]}, 'parentbuild': {'buildid': 195884, 'number': 10897, 'builderid': 27, 'buildrequestid': 196471, 'workerid': 10, 'masterid': 1, 'started_at': 1793641053, 'complete_at': 1793642767, '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': 35, 'name': 'pr-fifoci-sw-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/35/builds/9553'}, 'type': 'raw_bb_hook'}
2026-11-02T22:15:28.089257	{'source': 'webserver', 'raw': {'buildid': 196009, 'number': 10921, 'builderid': 7, 'buildrequestid': 196582, 'workerid': 8, 'masterid': 1, 'started_at': 1793657727, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [10921, 'Build'], 'project': ['', 'Build'], 'branchname': ['pr-14819', 'Change'], 'pr_id': [14819, 'Change'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build'], 'shortrev': ['814e11', 'Change'], 'builderid': [7, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14819/head', 'Build']}, 'buildrequest': {'buildrequestid': 196582, 'buildsetid': 44032, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1793657727, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793651969, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44032, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1793651969, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, '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/10921'}, 'type': 'raw_bb_hook'}
2026-11-02T22:15:27.455332	{'source': 'webserver', 'raw': {'buildid': 196007, 'number': 9246, 'builderid': 21, 'buildrequestid': 196603, 'workerid': 8, 'masterid': 1, 'started_at': 1793657080, 'complete_at': 1793657727, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'builderid': [21, 'Builder'], 'buildnumber': [9246, 'Build'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'codebase': ['', 'Build'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [114, 'WarningCountingShellCommand'], 'branchname': ['pr-14967', 'Trigger'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'pr_id': [14967, 'Trigger'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'shortrev': ['f9913a', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14967/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'builddir': ['/Users/ci/worker/base/pr-fifoci-mtl-osx-m1', 'Worker']}, 'buildrequest': {'buildrequestid': 196603, 'buildsetid': 44038, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1793657080, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793656430, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44038, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793656430, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196004, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 196004, 'number': 10920, 'builderid': 7, 'buildrequestid': 196552, 'workerid': 8, 'masterid': 1, 'started_at': 1793655609, 'complete_at': 1793656430, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9246'}, 'type': 'raw_bb_hook'}
2026-11-02T22:09:51.768878	{'source': 'webserver', 'raw': {'buildid': 196008, 'number': 9559, 'builderid': 10, 'buildrequestid': 196597, 'workerid': 5, 'masterid': 1, 'started_at': 1793657391, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [9559, 'Build'], 'project': ['', 'Build'], 'shortrev': ['814e11', 'Trigger'], 'builderid': [10, 'Builder'], 'repository': ['', 'Build'], 'branchname': ['pr-14819', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/14819/head', 'Build'], 'owners': [['Central (on behalf of: JosJuice)'], 'Build'], 'baserev': ['e8c42467964da77011f7da93a06f9e0a72ca868f', 'Change'], 'pr_id': [14819, 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build'], 'headrev': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'revision': ['814e11dace409c67172618a2fc01c1fc6a313aae', 'Build']}, 'buildrequest': {'buildrequestid': 196597, 'buildsetid': 44034, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1793657391, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652310, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44034, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652310, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195979, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13224, 'branch': 'refs/pull/14819/head', 'revision': '814e11dace409c67172618a2fc01c1fc6a313aae', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793651969, 'patch': None}]}, 'parentbuild': {'buildid': 195979, 'number': 10902, 'builderid': 27, 'buildrequestid': 196588, 'workerid': 10, 'masterid': 1, 'started_at': 1793652057, 'complete_at': 1793652310, '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': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9559'}, 'type': 'raw_bb_hook'}
2026-11-02T22:09:51.184957	{'source': 'webserver', 'raw': {'buildid': 196006, 'number': 9558, 'builderid': 10, 'buildrequestid': 196594, 'workerid': 5, 'masterid': 1, 'started_at': 1793656497, 'complete_at': 1793657391, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'builderid': [10, 'Builder'], 'shortrev': ['f9913a', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'buildnumber': [9558, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'branchname': ['pr-14967', 'Trigger'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'project': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'warnings-count': [1, 'WarningCountingShellCommand'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'pr_id': [14967, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build'], 'got_revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'GitNoBranch'], 'branch': ['refs/pull/14967/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196594, 'buildsetid': 44033, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1793656497, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652052, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44033, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652052, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195970, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 195970, 'number': 10901, 'builderid': 27, 'buildrequestid': 196558, 'workerid': 10, 'masterid': 1, 'started_at': 1793651614, 'complete_at': 1793652052, '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': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9558'}, 'type': 'raw_bb_hook'}
2026-11-02T22:04:40.334946	{'source': 'webserver', 'raw': {'buildid': 196007, 'number': 9246, 'builderid': 21, 'buildrequestid': 196603, 'workerid': 8, 'masterid': 1, 'started_at': 1793657080, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'builderid': [21, 'Builder'], 'buildnumber': [9246, 'Build'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'codebase': ['', 'Build'], 'branchname': ['pr-14967', 'Trigger'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'pr_id': [14967, 'Trigger'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'shortrev': ['f9913a', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'branch': ['refs/pull/14967/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196603, 'buildsetid': 44038, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1793657080, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793656430, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44038, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793656430, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196004, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 196004, 'number': 10920, 'builderid': 7, 'buildrequestid': 196552, 'workerid': 8, 'masterid': 1, 'started_at': 1793655609, 'complete_at': 1793656430, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 21, 'name': 'pr-fifoci-mtl-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/21/builds/9246'}, 'type': 'raw_bb_hook'}
2026-11-02T22:04:40.220731	{'source': 'webserver', 'raw': {'buildid': 196005, 'number': 9244, 'builderid': 19, 'buildrequestid': 196602, 'workerid': 8, 'masterid': 1, 'started_at': 1793656430, 'complete_at': 1793657080, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14967', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [9244, 'Build'], 'project': ['', 'Build'], 'builddir': ['/Users/ci/worker/base/pr-fifoci-mvk-osx-m1', 'Worker'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14967/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'shortrev': ['f9913a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'pr_id': [14967, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'warnings-count': [114, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 196602, 'buildsetid': 44038, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1793656430, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793656430, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44038, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793656430, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196004, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 196004, 'number': 10920, 'builderid': 7, 'buildrequestid': 196552, 'workerid': 8, 'masterid': 1, 'started_at': 1793655609, 'complete_at': 1793656430, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/9244'}, 'type': 'raw_bb_hook'}
2026-11-02T21:55:07.883470	{'source': 'webserver', 'raw': {'buildid': 196003, 'number': 9557, 'builderid': 10, 'buildrequestid': 196577, 'workerid': 5, 'masterid': 1, 'started_at': 1793655415, 'complete_at': 1793656497, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['6edc53', 'Trigger'], 'builderid': [10, 'Builder'], 'repository': ['', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/14973/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'warnings-count': [4, 'WarningCountingShellCommand'], 'headrev': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Trigger'], 'pr_id': [14973, 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'revision': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'got_revision': ['6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'GitNoBranch'], 'branchname': ['pr-14973', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [9557, 'Build'], 'project': ['', 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker']}, 'buildrequest': {'buildrequestid': 196577, 'buildsetid': 44031, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1793655415, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793651606, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44031, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793651606, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195954, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13221, 'branch': 'refs/pull/14973/head', 'revision': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650044, 'patch': None}]}, 'parentbuild': {'buildid': 195954, 'number': 10900, 'builderid': 27, 'buildrequestid': 196544, 'workerid': 10, 'masterid': 1, 'started_at': 1793650050, 'complete_at': 1793651606, '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': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9557'}, 'type': 'raw_bb_hook'}
2026-11-02T21:54:57.595948	{'source': 'webserver', 'raw': {'buildid': 196006, 'number': 9558, 'builderid': 10, 'buildrequestid': 196594, 'workerid': 5, 'masterid': 1, 'started_at': 1793656497, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'builderid': [10, 'Builder'], 'shortrev': ['f9913a', 'Trigger'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'buildnumber': [9558, 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-14967', 'Trigger'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'project': ['', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'pr_id': [14967, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build'], 'branch': ['refs/pull/14967/head', 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196594, 'buildsetid': 44033, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1793656497, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793652052, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44033, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1793652052, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 195970, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 195970, 'number': 10901, 'builderid': 27, 'buildrequestid': 196558, 'workerid': 10, 'masterid': 1, 'started_at': 1793651614, 'complete_at': 1793652052, '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': 10, 'name': 'pr-fifoci-ogl-lin-mesa', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/10/builds/9558'}, 'type': 'raw_bb_hook'}
2026-11-02T21:53:50.766941	{'source': 'webserver', 'raw': {'buildid': 196005, 'number': 9244, 'builderid': 19, 'buildrequestid': 196602, 'workerid': 8, 'masterid': 1, 'started_at': 1793656430, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14967', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildnumber': [9244, 'Build'], 'project': ['', 'Build'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/14967/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'shortrev': ['f9913a', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'pr_id': [14967, 'Trigger'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 196602, 'buildsetid': 44038, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1793656430, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793656430, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44038, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1793656430, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 196004, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, 'patch': None}]}, 'parentbuild': {'buildid': 196004, 'number': 10920, 'builderid': 7, 'buildrequestid': 196552, 'workerid': 8, 'masterid': 1, 'started_at': 1793655609, 'complete_at': 1793656430, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {}}, 'parentbuilder': {'builderid': 7, 'name': 'pr-osx-universal', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'builder': {'builderid': 19, 'name': 'pr-fifoci-mvk-osx-m1', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/19/builds/9244'}, 'type': 'raw_bb_hook'}
2026-11-02T21:53:50.675356	{'source': 'webserver', 'raw': {'buildid': 196004, 'number': 10920, 'builderid': 7, 'buildrequestid': 196552, 'workerid': 8, 'masterid': 1, 'started_at': 1793655609, 'complete_at': 1793656430, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['f9913a', 'Change'], 'builderid': [7, 'Builder'], 'repository': ['', 'Build'], 'basedir': ['/Users/ci/worker/base', 'Worker'], 'branchname': ['pr-14967', 'Change'], 'headrev': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildnumber': [10920, 'Build'], 'project': ['', 'Build'], 'baserev': ['a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'Change'], 'pr_id': [14967, 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr', 'Scheduler'], 'branch': ['refs/pull/14967/head', 'Build'], 'got_revision': ['f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'GitNoBranch'], 'workername': ['osx-m1', 'Worker'], 'codebase': ['', 'Build'], 'builddir': ['/Users/ci/worker/base/pr-osx-universal', 'Worker']}, 'buildrequest': {'buildrequestid': 196552, 'buildsetid': 44028, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1793655609, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1793650387, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 44028, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1793650387, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 13222, 'branch': 'refs/pull/14967/head', 'revision': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1793650387, '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/10920'}, 'type': 'raw_bb_hook'}

Recent 'raw_gh_hook' events

2026-11-02T22:47:29.123471	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T22:47:27Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6590433062', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6590433062, 'node_id': 'IC_kwDOALCn2M8AAAABiNIHJg', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T22:47:27Z', 'updated_at': '2026-11-02T22:47:27Z', 'body': "> It was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc.\r\n\r\nHmm, that sounds like a throughput issue then (e.g. drive not returning the data requested by the game fast enough due to seeking or similar). That was on Super Mario Galaxy, right? I have that game, will do some tests with it, the laptop drives are slower than their desktop counterparts, so it should be easier to trigger here. If it's indeed a throughput issue, I probably won't be able to do much until I implement some sort of caching (it's on my to-do list especially for DTK audio games, but whenever I do that it will be on a separate PR).\r\n<br/>\r\n\r\n> I tested it with Wii Play on windows and it works great. However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console.\r\n\r\nThis made me realize I programmed the test for a physical disc to trigger only when a read error occurs. So, if the emulated console doesn't try to access the disc after it has been physically ejected, the probe will never trigger and thus the emulated disc drive will never be ejected either. System menu reads the banner when the disc arrives and doesn't access it anymore until you actually launch the game, and that also likely explains why Super Mario Galaxy takes 3 to 4 seconds before noticing the disc is gone on Joshua's test, as once it loads the stage it likely only periodically streams chunks of audio. Should be easy to fix.\r\n<br/>\r\n\r\n> I also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)\r\n\r\nSorry, but anything that can't be already run today when using a disc image is out of scope for me. I'm implementing this as a new Blob type for DiscIO (existing blobs includes the different disc image formats, an extracted game folder, and so on), plus small modifications to skip emulated disc access times when using the optical disc blob. That's also why this plugs almost seamlessly with the DolphinTool, Riivolution, RetroAchivements and other existing features, for them it's simply a new blob type under the hood. \r\n\r\nI assume homebrew like WiiMC issues specific DI commands that very likely we don't emulate yet in order to support DVD Video discs, this is various layers of code below what I'm touching and I currently don't have neither the free time, nor the knowlegde or the desire to pursue. Hope you understand...", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6590433062/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T22:24:17.045608	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T21:37:34Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/5381247818', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-5381247818', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 5381247818, 'node_id': 'IC_kwDOALCn2M8AAAABQL9TSg', '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-08-22T15:47:50Z', 'updated_at': '2026-08-22T15:47:50Z', 'body': '[FifoCI](https://fifo.ci/about/) detected that this change impacts graphical             rendering. Here are the [behavior differences](https://fifo.ci/version/9bcbc6ce18a3c4eb9f4a6d8547c1e1f21c50d64b/)             detected by the system:\n\n<details>\n<summary>Detected differences</summary>\n\n||mtl-osx-m1|mvk-osx-m1|\n|-|-|-|\n|DKCR-Char|[❌ fail](https://fifo.ci/compare/16387127-16342289/)|[❌ fail](https://fifo.ci/compare/16386845-16342148/)|\n|DKCR-fast-depth|[❌ fail](https://fifo.ci/compare/16387148-16342310/)|[❌ fail](https://fifo.ci/compare/16386866-16342169/)|\n|MaS-LOG-wiimote|[❌ fail](https://fifo.ci/compare/16387165-16342327/)|[❌ fail](https://fifo.ci/compare/16386883-16342186/)|\n|ab11-homebrew|[❌ fail](https://fifo.ci/compare/16387153-16342315/)|[❌ fail](https://fifo.ci/compare/16386871-16342174/)|\n|aeon-charge-attack|[❌ fail](https://fifo.ci/compare/16387133-16342295/)|[❌ fail](https://fifo.ci/compare/16386851-16342154/)|\n|bk-tev|[❌ fail](https://fifo.ci/compare/16387175-16342337/)|[❌ fail](https://fifo.ci/compare/16386893-16342196/)|\n|burnout2-vehicletextures|[❌ fail](https://fifo.ci/compare/16387170-16342332/)|[❌ fail](https://fifo.ci/compare/16386888-16342191/)|\n|chibi-robo-fastdepth|[❌ fail](https://fifo.ci/compare/16387109-16342271/)|[❌ fail](https://fifo.ci/compare/16386827-16342130/)|\n|chibi-robo-zfighting|[❌ fail](https://fifo.ci/compare/16387075-16342237/)|[❌ fail](https://fifo.ci/compare/16386793-16342096/)|\n|custom-brawl-char|[❌ fail](https://fifo.ci/compare/16387135-16342297/)|[❌ fail](https://fifo.ci/compare/16386853-16342156/)|\n|dbz-depth|[❌ fail](https://fifo.ci/compare/16387107-16342269/)|[❌ fail](https://fifo.ci/compare/16386825-16342128/)|\n|default-depth-range|[❌ fail](https://fifo.ci/compare/16387202-16342364/)|[❌ fail](https://fifo.ci/compare/16386920-16342223/)|\n|djfny-menu|[❌ fail](https://fifo.ci/compare/16387111-16342273/)|[❌ fail](https://fifo.ci/compare/16386829-16342132/)|\n|djhero2-blend|[❌ fail](https://fifo.ci/compare/16387174-16342336/)|[❌ fail](https://fifo.ci/compare/16386892-16342195/)|\n|ea-pink|[❌ fail](https://fifo.ci/compare/16387187-16342349/)|[❌ fail](https://fifo.ci/compare/16386905-16342208/)|\n|ea-vp6|[❌ fail](https://fifo.ci/compare/16387093-16342255/)|[❌ fail](https://fifo.ci/compare/16386811-16342114/)|\n|ed-updated|[❌ fail](https://fifo.ci/compare/16387143-16342305/)|[❌ fail](https://fifo.ci/compare/16386861-16342164/)|\n|et-vid|[❌ fail](https://fifo.ci/compare/16387158-16342320/)|[❌ fail](https://fifo.ci/compare/16386876-16342179/)|\n|f-zero-rain|[❌ fail](https://fifo.ci/compare/16387141-16342303/)|[❌ fail](https://fifo.ci/compare/16386859-16342162/)|\n|fifa-street|[❌ fail](https://fifo.ci/compare/16387104-16342266/)|[❌ fail](https://fifo.ci/compare/16386822-16342125/)|\n|find-mii|[❌ fail](https://fifo.ci/compare/16387115-16342277/)|[❌ fail](https://fifo.ci/compare/16386833-16342136/)|\n|fishing-resort-map|[❌ fail](https://fifo.ci/compare/16387163-16342325/)|[❌ fail](https://fifo.ci/compare/16386881-16342184/)|\n|fog-adj|[❌ fail](https://fifo.ci/compare/16387082-16342244/)|[❌ fail](https://fifo.ci/compare/16386800-16342103/)|\n|fortune-street|[❌ fail](https://fifo.ci/compare/16387094-16342256/)|[❌ fail](https://fifo.ci/compare/16386812-16342115/)|\n|fortune-street-fog|[❌ fail](https://fifo.ci/compare/16387074-16342236/)|[❌ fail](https://fifo.ci/compare/16386792-16342095/)|\n|fortune-street-white-box|[❌ fail](https://fifo.ci/compare/16387096-16342258/)|[❌ fail](https://fifo.ci/compare/16386814-16342117/)|\n|fsa-layers|[❌ fail](https://fifo.ci/compare/16387119-16342281/)|[❌ fail](https://fifo.ci/compare/16386837-16342140/)|\n|goldeneye-depth|[❌ fail](https://fifo.ci/compare/16387138-16342300/)|[❌ fail](https://fifo.ci/compare/16386856-16342159/)|\n|gormiti|[❌ fail](https://fifo.ci/compare/16387185-16342347/)|[❌ fail](https://fifo.ci/compare/16386903-16342206/)|\n|gx-points|[❌ fail](https://fifo.ci/compare/16387211-16342373/)|[❌ fail](https://fifo.ci/compare/16386929-16342232/)|\n|hb-discgolf|[❌ fail](https://fifo.ci/compare/16387160-16342322/)|[❌ fail](https://fifo.ci/compare/16386878-16342181/)|\n|hotwheels-shadows|[❌ fail](https://fifo.ci/compare/16387209-16342371/)|[❌ fail](https://fifo.ci/compare/16386927-16342230/)|\n|inverted-depth-range|[❌ fail](https://fifo.ci/compare/16387204-16342366/)|[❌ fail](https://fifo.ci/compare/16386922-16342225/)|\n|jb-shadow|[❌ fail](https://fifo.ci/compare/16387190-16342352/)|[❌ fail](https://fifo.ci/compare/16386908-16342211/)|\n|jd2-fmv|[❌ fail](https://fifo.ci/compare/16387178-16342340/)|[❌ fail](https://fifo.ci/compare/16386896-16342199/)|\n|jj-awae-mirrored|[❌ fail](https://fifo.ci/compare/16387169-16342331/)|[❌ fail](https://fifo.ci/compare/16386887-16342190/)|\n|kirby-logicop|[❌ fail](https://fifo.ci/compare/16387196-16342358/)|[❌ fail](https://fifo.ci/compare/16386914-16342217/)|\n|kirby-shadows|[❌ fail](https://fifo.ci/compare/16387083-16342245/)|[❌ fail](https://fifo.ci/compare/16386801-16342104/)|\n|last-story-shadows|[❌ fail](https://fifo.ci/compare/16387167-16342329/)|[❌ fail](https://fifo.ci/compare/16386885-16342188/)|\n|lego-star-wars-crane-shadow|[❌ fail](https://fifo.ci/compare/16387150-16342312/)|[❌ fail](https://fifo.ci/compare/16386868-16342171/)|\n|lesson08|[❌ fail](https://fifo.ci/compare/16387157-16342319/)|[❌ fail](https://fifo.ci/compare/16386875-16342178/)|\n|line-width-test|[❌ fail](https://fifo.ci/compare/16387079-16342241/)|[❌ fail](https://fifo.ci/compare/16386797-16342100/)|\n|lit-cached-normal|[❌ fail](https://fifo.ci/compare/16387206-16342368/)|[❌ fail](https://fifo.ci/compare/16386924-16342227/)|\n|lm-mario-portrait|[❌ fail](https://fifo.ci/compare/16387179-16342341/)|[❌ fail](https://fifo.ci/compare/16386897-16342200/)|\n|luigi-shadows|[❌ fail](https://fifo.ci/compare/16387084-16342246/)|[❌ fail](https://fifo.ci/compare/16386802-16342105/)|\n|major-minor|[❌ fail](https://fifo.ci/compare/16387184-16342346/)|[❌ fail](https://fifo.ci/compare/16386902-16342205/)|\n|mario-baseball-shadows|[❌ fail](https://fifo.ci/compare/16387162-16342324/)|[❌ fail](https://fifo.ci/compare/16386880-16342183/)|\n|mario-golf-oob|[❌ fail](https://fifo.ci/compare/16387193-16342355/)|[❌ fail](https://fifo.ci/compare/16386911-16342214/)|\n|mario-golf-vertex-expansion|[❌ fail](https://fifo.ci/compare/16387208-16342370/)|[❌ fail](https://fifo.ci/compare/16386926-16342229/)|\n|mario-sluggers-bar|[❌ fail](https://fifo.ci/compare/16387099-16342261/)|[❌ fail](https://fifo.ci/compare/16386817-16342120/)|\n|mario-tennis-menu|[❌ fail](https://fifo.ci/compare/16387098-16342260/)|[❌ fail](https://fifo.ci/compare/16386816-16342119/)|\n|megaman-heat|[❌ fail](https://fifo.ci/compare/16387103-16342265/)|[❌ fail](https://fifo.ci/compare/16386821-16342124/)|\n|melee-depth|[❌ fail](https://fifo.ci/compare/16387139-16342301/)|[❌ fail](https://fifo.ci/compare/16386857-16342160/)|\n|melee-lighting|[❌ fail](https://fifo.ci/compare/16387073-16342235/)|[❌ fail](https://fifo.ci/compare/16386791-16342094/)|\n|metroid-visor|[❌ fail](https://fifo.ci/compare/16387149-16342311/)|[❌ fail](https://fifo.ci/compare/16386867-16342170/)|\n|mii-channel|[❌ fail](https://fifo.ci/compare/16387114-16342276/)|[❌ fail](https://fifo.ci/compare/16386832-16342135/)|\n|milotic-texture|[❌ fail](https://fifo.ci/compare/16387118-16342280/)|[❌ fail](https://fifo.ci/compare/16386836-16342139/)|\n|mini-ninjas|[❌ fail](https://fifo.ci/compare/16387085-16342247/)|[❌ fail](https://fifo.ci/compare/16386803-16342106/)|\n|mkdd-babypark|[❌ fail](https://fifo.ci/compare/16387166-16342328/)|[❌ fail](https://fifo.ci/compare/16386884-16342187/)|\n|mkdd-efb|[❌ fail](https://fifo.ci/compare/16387086-16342248/)|[❌ fail](https://fifo.ci/compare/16386804-16342107/)|\n|mkw-bridge|[❌ fail](https://fifo.ci/compare/16387177-16342339/)|[❌ fail](https://fifo.ci/compare/16386895-16342198/)|\n|mkw-flags|[❌ fail](https://fifo.ci/compare/16387195-16342357/)|[❌ fail](https://fifo.ci/compare/16386913-16342216/)|\n|mkwii-bluebox|[❌ fail](https://fifo.ci/compare/16387087-16342249/)|[❌ fail](https://fifo.ci/compare/16386805-16342108/)|\n|mmx-light|[❌ fail](https://fifo.ci/compare/16387171-16342333/)|[❌ fail](https://fifo.ci/compare/16386889-16342192/)|\n|monkeyball-fuse|[❌ fail](https://fifo.ci/compare/16387102-16342264/)|[❌ fail](https://fifo.ci/compare/16386820-16342123/)|\n|mp2-scanner|[❌ fail](https://fifo.ci/compare/16387172-16342334/)|[❌ fail](https://fifo.ci/compare/16386890-16342193/)|\n|mp3-bloom|[❌ fail](https://fifo.ci/compare/16387164-16342326/)|[❌ fail](https://fifo.ci/compare/16386882-16342185/)|\n|mp4-vertexcache|[❌ fail](https://fifo.ci/compare/16387194-16342356/)|[❌ fail](https://fifo.ci/compare/16386912-16342215/)|\n|mp7-text|[❌ fail](https://fifo.ci/compare/16387116-16342278/)|[❌ fail](https://fifo.ci/compare/16386834-16342137/)|\n|mp8-widescreen|[❌ fail](https://fifo.ci/compare/16387192-16342354/)|[❌ fail](https://fifo.ci/compare/16386910-16342213/)|\n|mtennis-zfreeze|[❌ fail](https://fifo.ci/compare/16387101-16342263/)|[❌ fail](https://fifo.ci/compare/16386819-16342122/)|\n|my-word-coach|[❌ fail](https://fifo.ci/compare/16387113-16342275/)|[❌ fail](https://fifo.ci/compare/16386831-16342134/)|\n|nddemo-bumpmapping|[❌ fail](https://fifo.ci/compare/16387124-16342286/)|[❌ fail](https://fifo.ci/compare/16386842-16342145/)|\n|nddemo-lighting|[❌ fail](https://fifo.ci/compare/16387145-16342307/)|[❌ fail](https://fifo.ci/compare/16386863-16342166/)|\n|nes-vc|[❌ fail](https://fifo.ci/compare/16387142-16342304/)|[❌ fail](https://fifo.ci/compare/16386860-16342163/)|\n|nfsu-purplerect|[❌ fail](https://fifo.ci/compare/16387088-16342250/)|[❌ fail](https://fifo.ci/compare/16386806-16342109/)|\n|nfsu-reflections|[❌ fail](https://fifo.ci/compare/16387078-16342240/)|[❌ fail](https://fifo.ci/compare/16386796-16342099/)|\n|nhl-slap|[❌ fail](https://fifo.ci/compare/16387173-16342335/)|[❌ fail](https://fifo.ci/compare/16386891-16342194/)|\n|nintendo-channel|[❌ fail](https://fifo.ci/compare/16387182-16342344/)|[❌ fail](https://fifo.ci/compare/16386900-16342203/)|\n|nsmbw-coins|[❌ fail](https://fifo.ci/compare/16387131-16342293/)|[❌ fail](https://fifo.ci/compare/16386849-16342152/)|\n|nsmbw-intro|[❌ fail](https://fifo.ci/compare/16387080-16342242/)|[❌ fail](https://fifo.ci/compare/16386798-16342101/)|\n|oversized-depth-range|[❌ fail](https://fifo.ci/compare/16387205-16342367/)|[❌ fail](https://fifo.ci/compare/16386923-16342226/)|\n|pbr-sfx|[❌ fail](https://fifo.ci/compare/16387191-16342353/)|[❌ fail](https://fifo.ci/compare/16386909-16342212/)|\n|pm-hc-jp|[❌ fail](https://fifo.ci/compare/16387126-16342288/)|[❌ fail](https://fifo.ci/compare/16386844-16342147/)|\n|pokemon-channel-tv|[❌ fail](https://fifo.ci/compare/16387201-16342363/)|[❌ fail](https://fifo.ci/compare/16386919-16342222/)|\n|puzzle-collection|[❌ fail](https://fifo.ci/compare/16387121-16342283/)|[❌ fail](https://fifo.ci/compare/16386839-16342142/)|\n|pw-black-bars|[❌ fail](https://fifo.ci/compare/16387117-16342279/)|[❌ fail](https://fifo.ci/compare/16386835-16342138/)|\n|quake-gx|[❌ fail](https://fifo.ci/compare/16387197-16342359/)|[❌ fail](https://fifo.ci/compare/16386915-16342218/)|\n|rs2-bumpmapping|[❌ fail](https://fifo.ci/compare/16387155-16342317/)|[❌ fail](https://fifo.ci/compare/16386873-16342176/)|\n|rs2-glass|[❌ fail](https://fifo.ci/compare/16387106-16342268/)|[❌ fail](https://fifo.ci/compare/16386824-16342127/)|\n|rs2-skybox|[❌ fail](https://fifo.ci/compare/16387123-16342285/)|[❌ fail](https://fifo.ci/compare/16386841-16342144/)|\n|rs2-zfreeze|[❌ fail](https://fifo.ci/compare/16387089-16342251/)|[❌ fail](https://fifo.ci/compare/16386807-16342110/)|\n|rs3-bumpmapping|[❌ fail](https://fifo.ci/compare/16387156-16342318/)|[❌ fail](https://fifo.ci/compare/16386874-16342177/)|\n|rs3-skybox2|[❌ fail](https://fifo.ci/compare/16387168-16342330/)|[❌ fail](https://fifo.ci/compare/16386886-16342189/)|\n|sadx-ui|[❌ fail](https://fifo.ci/compare/16387108-16342270/)|[❌ fail](https://fifo.ci/compare/16386826-16342129/)|\n|sf-assault-flashing|[❌ fail](https://fifo.ci/compare/16387077-16342239/)|[❌ fail](https://fifo.ci/compare/16386795-16342098/)|\n|sfa-shadows|[❌ fail](https://fifo.ci/compare/16387152-16342314/)|[❌ fail](https://fifo.ci/compare/16386870-16342173/)|\n|shadow-eyes|[❌ fail](https://fifo.ci/compare/16387183-16342345/)|[❌ fail](https://fifo.ci/compare/16386901-16342204/)|\n|simpsons-game|[❌ fail](https://fifo.ci/compare/16387154-16342316/)|[❌ fail](https://fifo.ci/compare/16386872-16342175/)|\n|smb-mirror|[❌ fail](https://fifo.ci/compare/16387176-16342338/)|[❌ fail](https://fifo.ci/compare/16386894-16342197/)|\n|smg-marioeyes|[❌ fail](https://fifo.ci/compare/16387090-16342252/)|[❌ fail](https://fifo.ci/compare/16386808-16342111/)|\n|smg-mmg|[❌ fail](https://fifo.ci/compare/16387186-16342348/)|[❌ fail](https://fifo.ci/compare/16386904-16342207/)|\n|smg-roar|[❌ fail](https://fifo.ci/compare/16387189-16342351/)|[❌ fail](https://fifo.ci/compare/16386907-16342210/)|\n|smg2-fog|[❌ fail](https://fifo.ci/compare/16387097-16342259/)|[❌ fail](https://fifo.ci/compare/16386815-16342118/)|\n|sms-bubbles|[❌ fail](https://fifo.ci/compare/16387076-16342238/)|[❌ fail](https://fifo.ci/compare/16386794-16342097/)|\n|sms-coconut-drinks|[❌ fail](https://fifo.ci/compare/16387200-16342362/)|[❌ fail](https://fifo.ci/compare/16386918-16342221/)|\n|sms-gc|[❌ fail](https://fifo.ci/compare/16387128-16342290/)|[❌ fail](https://fifo.ci/compare/16386846-16342149/)|\n|sms-water|[❌ fail](https://fifo.ci/compare/16387159-16342321/)|[❌ fail](https://fifo.ci/compare/16386877-16342180/)|\n|soa-black|[❌ fail](https://fifo.ci/compare/16387105-16342267/)|[❌ fail](https://fifo.ci/compare/16386823-16342126/)|\n|sonic-riders-blur|[❌ fail](https://fifo.ci/compare/16387161-16342323/)|[❌ fail](https://fifo.ci/compare/16386879-16342182/)|\n|sonic-riders-zg-4p|[❌ fail](https://fifo.ci/compare/16387188-16342350/)|[❌ fail](https://fifo.ci/compare/16386906-16342209/)|\n|soniccolors-mm|[❌ fail](https://fifo.ci/compare/16387130-16342292/)|[❌ fail](https://fifo.ci/compare/16386848-16342151/)|\n|sonicriderszg-gb|[❌ fail](https://fifo.ci/compare/16387129-16342291/)|[❌ fail](https://fifo.ci/compare/16386847-16342150/)|\n|spider-man-inverted-depth|[❌ fail](https://fifo.ci/compare/16387203-16342365/)|[❌ fail](https://fifo.ci/compare/16386921-16342224/)|\n|spyro-bloom|[❌ fail](https://fifo.ci/compare/16387125-16342287/)|[❌ fail](https://fifo.ci/compare/16386843-16342146/)|\n|spyro-depth|[❌ fail](https://fifo.ci/compare/16387146-16342308/)|[❌ fail](https://fifo.ci/compare/16386864-16342167/)|\n|ss-map|[❌ fail](https://fifo.ci/compare/16387132-16342294/)|[❌ fail](https://fifo.ci/compare/16386850-16342153/)|\n|ssbb-mod-lloyd|[❌ fail](https://fifo.ci/compare/16387147-16342309/)|[❌ fail](https://fifo.ci/compare/16386865-16342168/)|\n|ssbm-pointsize|[❌ fail](https://fifo.ci/compare/16387095-16342257/)|[❌ fail](https://fifo.ci/compare/16386813-16342116/)|\n|super-sluggers-white-out|[❌ fail](https://fifo.ci/compare/16387122-16342284/)|[❌ fail](https://fifo.ci/compare/16386840-16342143/)|\n|sw3-dt|[❌ fail](https://fifo.ci/compare/16387151-16342313/)|[❌ fail](https://fifo.ci/compare/16386869-16342172/)|\n|taiko-depth|[❌ fail](https://fifo.ci/compare/16387144-16342306/)|[❌ fail](https://fifo.ci/compare/16386862-16342165/)|\n|thps3-earlyz|[❌ fail](https://fifo.ci/compare/16387137-16342299/)|[❌ fail](https://fifo.ci/compare/16386855-16342158/)|\n|thps4-shadow|[❌ fail](https://fifo.ci/compare/16387110-16342272/)|[❌ fail](https://fifo.ci/compare/16386828-16342131/)|\n|tla-menu|[❌ fail](https://fifo.ci/compare/16387140-16342302/)|[❌ fail](https://fifo.ci/compare/16386858-16342161/)|\n|tos-invis-char|[❌ fail](https://fifo.ci/compare/16387081-16342243/)|[❌ fail](https://fifo.ci/compare/16386799-16342102/)|\n|tp-skin|[❌ fail](https://fifo.ci/compare/16387181-16342343/)|[❌ fail](https://fifo.ci/compare/16386899-16342202/)|\n|tsp3-pinkgrass|[❌ fail](https://fifo.ci/compare/16387091-16342253/)|[❌ fail](https://fifo.ci/compare/16386809-16342112/)|\n|vegas-party-depth|[❌ fail](https://fifo.ci/compare/16387136-16342298/)|[❌ fail](https://fifo.ci/compare/16386854-16342157/)|\n|viewitful-joe-distortion|[❌ fail](https://fifo.ci/compare/16387180-16342342/)|[❌ fail](https://fifo.ci/compare/16386898-16342201/)|\n|ww-song-of-passing|[❌ fail](https://fifo.ci/compare/16387199-16342361/)|[❌ fail](https://fifo.ci/compare/16386917-16342220/)|\n|xblade-bloom|[❌ fail](https://fifo.ci/compare/16387198-16342360/)|[❌ fail](https://fifo.ci/compare/16386916-16342219/)|\n|xenoblade-menu|[❌ fail](https://fifo.ci/compare/16387071-16342233/)|[❌ fail](https://fifo.ci/compare/16386789-16342092/)|\n|zbuff-test|[❌ fail](https://fifo.ci/compare/16387207-16342369/)|[❌ fail](https://fifo.ci/compare/16386925-16342228/)|\n|zelda1-vc|[❌ fail](https://fifo.ci/compare/16387120-16342282/)|[❌ fail](https://fifo.ci/compare/16386838-16342141/)|\n|ztp-grass|[❌ fail](https://fifo.ci/compare/16387092-16342254/)|[❌ fail](https://fifo.ci/compare/16386810-16342113/)|\n|zww-armos|[❌ fail](https://fifo.ci/compare/16387072-16342234/)|[❌ fail](https://fifo.ci/compare/16386790-16342093/)|\n|zww-water|[❌ fail](https://fifo.ci/compare/16387100-16342262/)|[❌ fail](https://fifo.ci/compare/16386818-16342121/)|\n|zww-waves|[❌ fail](https://fifo.ci/compare/16387112-16342274/)|[❌ fail](https://fifo.ci/compare/16386830-16342133/)|\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/5381247818/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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': 'raw_gh_hook'}
2026-11-02T21:44:36.920462	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5743829463, 'node_id': 'PRR_kwDOALCn2M8AAAABVlvh1w', '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}, 'body': None, 'commit_id': 'd08bddeaabbfba79f76407018ab02bdf68fa2d46', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14972#pullrequestreview-5743829463', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14972#pullrequestreview-5743829463'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972'}}, 'submitted_at': '2026-11-02T21:44:34Z', 'updated_at': '2026-11-02T21:44:34Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972', 'id': 5114352385, 'node_id': 'PR_kwDOALCn2M8AAAABMNbTAQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14972', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14972.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14972.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14972', 'number': 14972, 'state': 'open', 'locked': False, 'title': 'Minor cleanups with "parenthesized initialization of aggregates".', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'created_at': '2026-11-02T03:10:45Z', 'updated_at': '2026-11-02T03:10:45Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '5eb87c2a8858013e4333383eaee37190ab2fd9e7', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972/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/14972/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/d08bddeaabbfba79f76407018ab02bdf68fa2d46', 'head': {'label': 'jordan-woyak:paren-init-aggregate', 'ref': 'paren-init-aggregate', 'sha': 'd08bddeaabbfba79f76407018ab02bdf68fa2d46', '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-11-02T20:12:49Z', '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': 530487, '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': '833d8c05965ac1e2242799d3c9b0e0fadbcbb7f8', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14972'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14972'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14972'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14972/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14972/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/14972/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/d08bddeaabbfba79f76407018ab02bdf68fa2d46'}}, 'author_association': 'MEMBER', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T21:37:38.369163	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'unlabeled', 'number': 14819, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819', 'id': 4291358893, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'number': 14819, 'state': 'open', 'locked': False, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T21:37:34Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '989d64447a216568eab564918d8193a39fa53a31', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/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/14819/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/814e11dace409c67172618a2fc01c1fc6a313aae', 'head': {'label': 'JosJuice:prune-adreno-bugs', 'ref': 'prune-adreno-bugs', 'sha': '814e11dace409c67172618a2fc01c1fc6a313aae', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 26057138, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNjA1NzEzOA==', 'name': 'dolphin', 'full_name': 'JosJuice/dolphin', 'private': False, 'owner': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/JosJuice/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/JosJuice/dolphin', 'forks_url': 'https://api.github.com/repos/JosJuice/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JosJuice/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JosJuice/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JosJuice/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JosJuice/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JosJuice/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JosJuice/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JosJuice/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JosJuice/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JosJuice/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JosJuice/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JosJuice/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JosJuice/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JosJuice/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JosJuice/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JosJuice/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JosJuice/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JosJuice/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JosJuice/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JosJuice/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JosJuice/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JosJuice/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JosJuice/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JosJuice/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JosJuice/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JosJuice/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JosJuice/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JosJuice/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JosJuice/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JosJuice/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JosJuice/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JosJuice/dolphin/deployments', 'created_at': '2014-11-01T17:12:40Z', 'updated_at': '2026-10-31T15:20:01Z', 'pushed_at': '2026-11-02T20:39:11Z', 'git_url': 'git://github.com/JosJuice/dolphin.git', 'ssh_url': 'git@github.com:JosJuice/dolphin.git', 'clone_url': 'https://github.com/JosJuice/dolphin.git', 'svn_url': 'https://github.com/JosJuice/dolphin', 'homepage': None, 'size': 529393, 'stargazers_count': 6, 'watchers_count': 6, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 6, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14819'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14819'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/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/14819/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/814e11dace409c67172618a2fc01c1fc6a313aae'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': False, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 7, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 2, 'additions': 127, 'deletions': 91, 'changed_files': 2}, 'label': {'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': 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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T21:24:06.978456	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T21:24:04Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6588817099', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6588817099', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6588817099, 'node_id': 'IC_kwDOALCn2M8AAAABiLleyw', '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-11-02T21:24:04Z', 'updated_at': '2026-11-02T21:24:04Z', 'body': "> about point 1, after around 15 seconds of no activity, the disc drive should slow down, but never stop completely, there's a watcher in the code specifically for periodically sending a spin up command to the drive in order to prevent it from idling. Could you check if your drive is stopping completely? I'm not sure how audible the desktop drives are, but on my portable BU50N I can easily tell if it still spinning (albeit slowly) or if it stopped completely just by noise\r\n\r\nIt was a lot harder to reproduce than when I originally stumbled upon it, it appears to occur completely at random... But I can confirm that the drive hasn't stopped completely, and is just almost silent in this state. It should be worth noting that this was never during a no-activity period, but always while audio was actively being streamed from the disc. \r\n", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6588817099/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T21:12:48.771380	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'edited', 'review': {'id': 5743139527, 'node_id': 'PRR_kwDOALCn2M8AAAABVlFaxw', '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}, 'body': 'Tested on Linux, LGTM.', 'commit_id': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'submitted_at': '2026-11-02T20:50:27Z', 'updated_at': '2026-11-02T21:12:46Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'id': 5117705702, 'node_id': 'PR_kwDOALCn2M8AAAABMQn95g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973', 'number': 14973, 'state': 'open', 'locked': False, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', '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': '<img width="692" height="351" alt="image" src="https://github.com/user-attachments/assets/7059d593-01ca-4d61-b5b3-2e026d23b85f" />\r\n\r\nUpdated Cubeb in Externals to latest master because a function to query a list of supported backend names was added in year 2025 https://github.com/mozilla/cubeb/commit/78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d\r\n\r\nIf Dolphin is compiled with Cubeb which lacks that function then the list in the Qt will just have "Default Backend".\r\n\r\nSince Cubeb supports both PulseAudio and ALSA, and this PR allows choosing between the two, I would propose removing our PulseAudio and ALSA audio backends in future PRs.', 'created_at': '2026-11-02T09:05:33Z', 'updated_at': '2026-11-02T20:50:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd9cbc79eab972ed505bdf64ff20015c6ff99cb44', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'head': {'label': 'jordan-woyak:cubeb-backend-selection', 'ref': 'cubeb-backend-selection', 'sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T20:12:49Z', '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': 530487, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'changes': {'body': {'from': 'Tested, LGTM.'}}, '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:50:29.459794	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5743139527, 'node_id': 'PRR_kwDOALCn2M8AAAABVlFaxw', '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}, 'body': 'Tested, LGTM.', 'commit_id': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5743139527'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'submitted_at': '2026-11-02T20:50:27Z', 'updated_at': '2026-11-02T20:50:27Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'id': 5117705702, 'node_id': 'PR_kwDOALCn2M8AAAABMQn95g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973', 'number': 14973, 'state': 'open', 'locked': False, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', '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': '<img width="692" height="351" alt="image" src="https://github.com/user-attachments/assets/7059d593-01ca-4d61-b5b3-2e026d23b85f" />\r\n\r\nUpdated Cubeb in Externals to latest master because a function to query a list of supported backend names was added in year 2025 https://github.com/mozilla/cubeb/commit/78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d\r\n\r\nIf Dolphin is compiled with Cubeb which lacks that function then the list in the Qt will just have "Default Backend".\r\n\r\nSince Cubeb supports both PulseAudio and ALSA, and this PR allows choosing between the two, I would propose removing our PulseAudio and ALSA audio backends in future PRs.', 'created_at': '2026-11-02T09:05:33Z', 'updated_at': '2026-11-02T20:09:02Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd9cbc79eab972ed505bdf64ff20015c6ff99cb44', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'head': {'label': 'jordan-woyak:cubeb-backend-selection', 'ref': 'cubeb-backend-selection', 'sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T20:12:49Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1'}}, 'author_association': 'MEMBER', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563749, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:39:15.761357	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'id': 6162397505, 'node_id': 'PR_kwDOALCn2M8AAAABMS-vaA', 'number': 14974, 'title': 'Core/DolphinQt: Restore "Boot from DVD Backup" and allow booting original discs with OmniDrive firmware', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-11-02T12:18:18Z', 'updated_at': '2026-11-02T20:39:13Z', '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/14974', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14974.patch', 'merged_at': None}, 'body': 'At long last, this PR restores the ability of running games from DVD backups (originally removed on PR #11456) and, for the first time in Dolphin, allows running games directly from original discs on drives flashed with [OmniDrive firmware](https://github.com/RibShark/OmniDrive):\r\n\r\nhttps://github.com/user-attachments/assets/626b3c7e-cd6a-48f0-9962-eaa6b1f0805a\r\n\r\nOn supported OSes (currently Windows and Linux), there\'s a new "Boot From Optical Disc" menu entry on File, and "Change Disc" now opens a popup that lets you change between a disc image or a physical disc or vice-versa:\r\n\r\nhttps://github.com/user-attachments/assets/0af57155-391c-41c8-b78c-bc70a63a7703\r\n\r\nThis implementation is heavily inspired on [redumper](https://github.com/superg/redumper), so Dolphin directly talks to the optical drive via low level SCSI multimedia commands instead of relying on the old approach that was derived from a very outdated version of libcdio.\r\n\r\n### Features and limitations\r\n* Although the UI changes are minimal (for now), I\'ve tried to make this work as intuitively as possible behind the scenes. I think the most noteworthy ones are that optical drives can be hot plugged at any time (if you\'re using USB to SATA adapters or portable drives) and if you boot from a physical disc and then eject it (either via File => Eject Disc or by pressing the Eject button on the drive itself), the disc will be ejected from the emulated console too. If you reinsert a disc later, it\'ll automatically reinsert the disc on the emulated console too (e.g. multi disc games that ask you to insert the next disc)\r\n* I didn\'t initially plan for this, but the `-i` flag from DolphinTool now accepts disc drive paths (e.g. `-i D:` or `-i /dev/sr0`). A side effect of that is you can now rip original discs to ISO, RVZ, GCZ or WIA directly from DolphinTool, if you have an OmniDrive-enabled drive\r\n* Emulated disc speed code is bypassed when using physical discs, as well as "Load Whole Game Into Memory". Beware of speeding up the emulation by setting the speed limit above 100% though, that can cause audio/video issues and even break games if you let them run too fast for too long, since the optical drive can\'t keep up ("An error occurred, please turn the GC/Wii off and refer to the operating manual")\r\n* Loading speeds are a bit slower than what I remember from playing on a real GC/Wii. The handful of games I tried still worked fine, though\r\n* When RetroAchievements are enabled, its hashing can cause a bit of slow loading speeds right after booting a game. It\'s more noticeable with Wii titles\r\n* Currently, [GameCube games that uses DTK Audio](https://wiki.dolphin-emu.org/index.php?title=Category:DTK_Audio_games) are nearly unplayable from physical discs, as the DTK audio path causes constant drive seeking, which consequently reduces the read speeds significantly. I intend to explore a few caching techniques to fix this, but it will be on a separate PR\r\n* Minimal testing was done on Linux, apart from compiling from source on Ubuntu 26.04.1 LTS and ensuring it could boot a game\r\n* Currently there\'s no macOS support, and I won\'t be adding it as I have no access to any Apple hardware. Porting should be easy, though, as all OS-specific code are isolated on `SCSIDevice.cpp/.h`\r\n\r\n### Generative AI disclosure\r\nThe source code from [redumper (b705)](https://github.com/superg/redumper/tree/b705) was fed into a LLM, which was tasked on creating a technical specs document about how it handles standard and raw OmniDrive reads. Then, I\'ve made a Windows-only CLI tool implementing only the absolute minimum required for the features that would be relevant for us, based on that document. DVD descrambling was added next and used this [reference implementation](https://github.com/Deterous/DVD-Scrambler) from Deterous. Once the CLI tool was feature complete, I used a LLM again, this time feeding it parts of the Linux (6.18 LTS) kernel source code, to assist with adding Linux compatibility to it.\r\n\r\nFinally, I started working with the Dolphin\'s source. The code this PR adds is directly derived from the CLI tool, but no LLMs were used beyond that point. I\'m also not touching any emulation code, the changes in DVDInterface reuses existing behavior or are based in code comments that already existed in Dolphin before this PR.\r\n\r\n### Licenses and attribuition\r\nThe bulk of this PR was heavily based on [redumper](https://github.com/superg/redumper), which is licensed under the GPLv3. As mentioned earlier, I also used the [descrambling implementation from Deterous](https://github.com/Deterous/DVD-Scrambler) as a reference, which the repo itself doesn\'t define a license, but directly mentions being made as the reference for redumper, so I think we\'re good? I can try contacting Deterous too for explicit approval, if needed...', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/reactions', 'total_count': 5, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 5, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6587905680', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14974#issuecomment-6587905680', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14974', 'id': 6587905680, 'node_id': 'IC_kwDOALCn2M8AAAABiKt2kA', 'user': {'login': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T20:39:13Z', 'updated_at': '2026-11-02T20:39:13Z', 'body': "I tested it with Wii Play on windows and it works great.  However, one oversight i did noticed is that when you eject the disc from the drive on the wii menu, the disc channel still thinks It's in the console. \r\n\r\nMy suggestion would be letting the drive be hooked to the disc channel so physical disc changing can be seamless. Plus if there's no disc inserted,you could have it rollback to whatever game file you had map to the virtual disc drive instead.\r\n\r\nI also do hope this also gives more functionality to homebrew apps. (i.e playing dvd videos with WiiMC-SS)", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6587905680/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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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': 'Yola-cola', 'id': 53379032, 'node_id': 'MDQ6VXNlcjUzMzc5MDMy', 'avatar_url': 'https://avatars.githubusercontent.com/u/53379032?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Yola-cola', 'html_url': 'https://github.com/Yola-cola', 'followers_url': 'https://api.github.com/users/Yola-cola/followers', 'following_url': 'https://api.github.com/users/Yola-cola/following{/other_user}', 'gists_url': 'https://api.github.com/users/Yola-cola/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Yola-cola/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Yola-cola/subscriptions', 'organizations_url': 'https://api.github.com/users/Yola-cola/orgs', 'repos_url': 'https://api.github.com/users/Yola-cola/repos', 'events_url': 'https://api.github.com/users/Yola-cola/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Yola-cola/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T20:39:14.948764	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14819, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819', 'id': 4291358893, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'number': 14819, 'state': 'open', 'locked': False, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T20:39:12Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/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/14819/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/814e11dace409c67172618a2fc01c1fc6a313aae', 'head': {'label': 'JosJuice:prune-adreno-bugs', 'ref': 'prune-adreno-bugs', 'sha': '814e11dace409c67172618a2fc01c1fc6a313aae', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 26057138, 'node_id': 'MDEwOlJlcG9zaXRvcnkyNjA1NzEzOA==', 'name': 'dolphin', 'full_name': 'JosJuice/dolphin', 'private': False, 'owner': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/JosJuice/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/JosJuice/dolphin', 'forks_url': 'https://api.github.com/repos/JosJuice/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JosJuice/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JosJuice/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JosJuice/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JosJuice/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JosJuice/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JosJuice/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JosJuice/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JosJuice/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JosJuice/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JosJuice/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JosJuice/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JosJuice/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JosJuice/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JosJuice/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JosJuice/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JosJuice/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JosJuice/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JosJuice/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JosJuice/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JosJuice/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JosJuice/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JosJuice/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JosJuice/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JosJuice/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JosJuice/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JosJuice/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JosJuice/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JosJuice/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JosJuice/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JosJuice/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JosJuice/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JosJuice/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JosJuice/dolphin/deployments', 'created_at': '2014-11-01T17:12:40Z', 'updated_at': '2026-10-31T15:20:01Z', 'pushed_at': '2026-11-02T20:39:11Z', 'git_url': 'git://github.com/JosJuice/dolphin.git', 'ssh_url': 'git@github.com:JosJuice/dolphin.git', 'clone_url': 'https://github.com/JosJuice/dolphin.git', 'svn_url': 'https://github.com/JosJuice/dolphin', 'homepage': None, 'size': 529393, 'stargazers_count': 6, 'watchers_count': 6, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 6, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14819'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14819'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14819/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/14819/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/814e11dace409c67172618a2fc01c1fc6a313aae'}}, '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': 7, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 2, 'additions': 127, 'deletions': 91, 'changed_files': 2}, 'before': '9bcbc6ce18a3c4eb9f4a6d8547c1e1f21c50d64b', 'after': '814e11dace409c67172618a2fc01c1fc6a313aae', '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-11-02T20:16:28Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:16:28.497628	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 14510, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510', 'id': 3445377694, 'node_id': 'PR_kwDOALCn2M7NXEqe', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14510', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14510.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14510.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510', 'number': 14510, 'state': 'closed', 'locked': False, 'title': 'EXI: Show on-screen error when USB Gecko fails to bind', 'user': {'login': 'Ma-Rang', 'id': 266874926, 'node_id': 'U_kgDOD-gwLg', 'avatar_url': 'https://avatars.githubusercontent.com/u/266874926?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Ma-Rang', 'html_url': 'https://github.com/Ma-Rang', 'followers_url': 'https://api.github.com/users/Ma-Rang/followers', 'following_url': 'https://api.github.com/users/Ma-Rang/following{/other_user}', 'gists_url': 'https://api.github.com/users/Ma-Rang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Ma-Rang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Ma-Rang/subscriptions', 'organizations_url': 'https://api.github.com/users/Ma-Rang/orgs', 'repos_url': 'https://api.github.com/users/Ma-Rang/repos', 'events_url': 'https://api.github.com/users/Ma-Rang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Ma-Rang/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Previously, if the USB Gecko server failed to bind to any port in the 55020-55030 range, it silently returned with no indication to the user. This simple change now displays an on-screen message and logs an error. I found this "bug" while testing a homebrew project and WSL had silently reserved a conflicting port range causing a debugging nightmare since Gecko was enabled but not communicating.\r\n\r\nAI Disclosure: Claude was used for assistance.\r\n\r\nEdit: I fixed the whitespace issue that triggered a lint failure.\r\n\r\nEdit 2: I\'ve updated the messages to be build dynamically based on the stated port rather than hard-coding it to match.', 'created_at': '2026-03-25T13:59:06Z', 'updated_at': '2026-11-02T20:16:22Z', 'closed_at': '2026-11-02T20:16:22Z', 'merged_at': '2026-11-02T20:16:22Z', 'merge_commit_sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510/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/14510/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/18190eb05d46592e12008050805d9c4bbdbb2138', 'head': {'label': 'Ma-Rang:pr/gecko-bind-error', 'ref': 'pr/gecko-bind-error', 'sha': '18190eb05d46592e12008050805d9c4bbdbb2138', 'user': {'login': 'Ma-Rang', 'id': 266874926, 'node_id': 'U_kgDOD-gwLg', 'avatar_url': 'https://avatars.githubusercontent.com/u/266874926?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Ma-Rang', 'html_url': 'https://github.com/Ma-Rang', 'followers_url': 'https://api.github.com/users/Ma-Rang/followers', 'following_url': 'https://api.github.com/users/Ma-Rang/following{/other_user}', 'gists_url': 'https://api.github.com/users/Ma-Rang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Ma-Rang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Ma-Rang/subscriptions', 'organizations_url': 'https://api.github.com/users/Ma-Rang/orgs', 'repos_url': 'https://api.github.com/users/Ma-Rang/repos', 'events_url': 'https://api.github.com/users/Ma-Rang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Ma-Rang/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1182731267, 'node_id': 'R_kgDORn8MAw', 'name': 'dolphin', 'full_name': 'Ma-Rang/dolphin', 'private': False, 'owner': {'login': 'Ma-Rang', 'id': 266874926, 'node_id': 'U_kgDOD-gwLg', 'avatar_url': 'https://avatars.githubusercontent.com/u/266874926?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Ma-Rang', 'html_url': 'https://github.com/Ma-Rang', 'followers_url': 'https://api.github.com/users/Ma-Rang/followers', 'following_url': 'https://api.github.com/users/Ma-Rang/following{/other_user}', 'gists_url': 'https://api.github.com/users/Ma-Rang/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Ma-Rang/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Ma-Rang/subscriptions', 'organizations_url': 'https://api.github.com/users/Ma-Rang/orgs', 'repos_url': 'https://api.github.com/users/Ma-Rang/repos', 'events_url': 'https://api.github.com/users/Ma-Rang/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Ma-Rang/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Ma-Rang/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/Ma-Rang/dolphin', 'forks_url': 'https://api.github.com/repos/Ma-Rang/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Ma-Rang/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Ma-Rang/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Ma-Rang/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Ma-Rang/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Ma-Rang/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Ma-Rang/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Ma-Rang/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Ma-Rang/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Ma-Rang/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Ma-Rang/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Ma-Rang/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Ma-Rang/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Ma-Rang/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Ma-Rang/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Ma-Rang/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Ma-Rang/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Ma-Rang/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Ma-Rang/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Ma-Rang/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Ma-Rang/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Ma-Rang/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Ma-Rang/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Ma-Rang/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Ma-Rang/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Ma-Rang/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Ma-Rang/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Ma-Rang/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Ma-Rang/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Ma-Rang/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Ma-Rang/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Ma-Rang/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Ma-Rang/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Ma-Rang/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Ma-Rang/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Ma-Rang/dolphin/deployments', 'created_at': '2026-03-15T22:28:54Z', 'updated_at': '2026-03-15T22:28:54Z', 'pushed_at': '2026-11-02T10:21:41Z', 'git_url': 'git://github.com/Ma-Rang/dolphin.git', 'ssh_url': 'git@github.com:Ma-Rang/dolphin.git', 'clone_url': 'https://github.com/Ma-Rang/dolphin.git', 'svn_url': 'https://github.com/Ma-Rang/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526256, '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': 'd182533d363eae8c753d37cfad4107930da2019a', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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/14510'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14510'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14510/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14510/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/14510/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/18190eb05d46592e12008050805d9c4bbdbb2138'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'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}, 'comments': 1, 'review_comments': 7, 'maintainer_can_modify': False, 'commits': 1, 'additions': 10, 'deletions': 4, '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:16:26.679904	{'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 112508889670, 'node_id': 'CS_kwDOALCn2M8AAAAaMg1qRg', 'head_branch': 'master', 'head_sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/112508889670', 'before': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'after': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], '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']}, 'created_at': '2026-11-02T20:16:24Z', 'updated_at': '2026-11-02T20:16:24Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/112508889670/check-runs', 'head_commit': {'id': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'tree_id': '8e46f548935a9288f699af64c79b0c7e892a5385', 'message': 'Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error\n\nEXI: Show on-screen error when USB Gecko fails to bind', 'timestamp': '2026-11-02T20:16:21Z', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T20:16:21Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, '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-11-02T20:16:24.358685	{'source': 'webserver', 'gh_type': 'push', 'raw': {'ref': 'refs/heads/master', 'before': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'after': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'name': 'dolphin-emu', 'email': None, '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': 1374484077, 'updated_at': '2026-11-02T19:46:40Z', 'pushed_at': 1793650581, '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 481, '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': 3375, 'open_issues': 481, 'watchers': 15758, 'default_branch': 'master', 'stargazers': 15758, 'master_branch': 'master', 'organization': 'dolphin-emu', 'custom_properties': {}}, 'pusher': {'name': 'jordan-woyak', 'email': 'jordan.woyak@gmail.com'}, 'forced': False, '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}, 'created': False, 'deleted': False, 'base_ref': None, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/a0ed231ff614...e8c42467964d', 'commits': [{'id': '18190eb05d46592e12008050805d9c4bbdbb2138', 'tree_id': '58c4dee6d082074761cd6333050daa9ceeab9d04', 'distinct': False, 'message': 'EXI: Show on-screen error when USB Gecko fails to bind\n\nPreviously, if the USB Gecko server failed to bind to any port in the\n55020-55030 range, it silently returned with no indication to the user.\nNow displays an on-screen message and logs an error.', 'timestamp': '2026-11-02T04:17:42-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/18190eb05d46592e12008050805d9c4bbdbb2138', 'author': {'name': 'Ma-Rang', 'email': '266874926+Ma-Rang@users.noreply.github.com', 'date': '2026-03-15T17:40:11-05:00', 'username': 'Ma-Rang'}, 'committer': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T04:17:42-06:00', 'username': 'jordan-woyak'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h']}, {'id': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'tree_id': '8e46f548935a9288f699af64c79b0c7e892a5385', 'distinct': True, 'message': 'Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error\n\nEXI: Show on-screen error when USB Gecko fails to bind', 'timestamp': '2026-11-02T14:16:21-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e8c42467964da77011f7da93a06f9e0a72ca868f', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T14:16:21-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-02T14:16:21-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h']}], 'head_commit': {'id': 'e8c42467964da77011f7da93a06f9e0a72ca868f', 'tree_id': '8e46f548935a9288f699af64c79b0c7e892a5385', 'distinct': True, 'message': 'Merge pull request #14510 from Ma-Rang/pr/gecko-bind-error\n\nEXI: Show on-screen error when USB Gecko fails to bind', 'timestamp': '2026-11-02T14:16:21-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e8c42467964da77011f7da93a06f9e0a72ca868f', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T14:16:21-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-02T14:16:21-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Source/Core/Core/HW/EXI/EXI_DeviceGecko.cpp', 'Source/Core/Core/HW/EXI/EXI_DeviceGecko.h']}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T20:15:21.813605	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5742725603, 'node_id': 'PRR_kwDOALCn2M8AAAABVksJ4w', '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': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14774#pullrequestreview-5742725603', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14774#pullrequestreview-5742725603'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774'}}, 'submitted_at': '2026-11-02T20:15:19Z', 'updated_at': '2026-11-02T20:15:19Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774', 'id': 4155273629, 'node_id': 'PR_kwDOALCn2M73rHGd', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14774', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14774.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14774.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14774', 'number': 14774, 'state': 'open', 'locked': False, 'title': 'Refactor the GameCube microphone code', '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}, 'body': 'This PR replaces https://github.com/dolphin-emu/dolphin/pull/14203 and is based on https://github.com/dolphin-emu/dolphin/pull/14772. It deduplicates the Wii and GameCube microphones code. ~~I\'ll put it as a draft for now, as I\'d like to implement some more features~~:\r\n - [x] Move the code to AudioCommon\r\n - [x] Refactor the GC microphone code\r\n - [x] Check the GC microphone code for regressions/improvements\r\n   * _I haven\'t seen nor heard regression so far_\r\n - [x] Allow to configure the GC microphone device (like WiiSpeak/Logitech USB)\r\n - [x] Ensure 2 GC microphones can work simultaneously\r\n\r\nI\'m able to test the following GC games:\r\n - [x] Karaoke Revolution Party\r\n    - You can hear your voice back\r\n    - It supports 2 microphones when playing duet songs\r\n - [x] Mario Party 6\r\n - [x] Mario Party 7\r\n\r\nKaraoke Revolution Party with two different microphones connected:\r\n<img width="583" height="480" alt="image" src="https://github.com/user-attachments/assets/62816d0b-b128-4d1e-be64-66390efd845e" />\r\n\r\nI also have several Wii games compatible with the Wii Speak and USB microphones.\r\n\r\nReady to be reviewed & tested.', 'created_at': '2026-07-28T21:29:25Z', 'updated_at': '2026-11-02T18:41:17Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd2017748b6bc982f59b333a2a3e73be9aee85e61', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774/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/14774/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3b40711b43a71c46bec502e5e0a5d2913e8367bd', 'head': {'label': 'sepalani:mic-dedup2', 'ref': 'mic-dedup2', 'sha': '3b40711b43a71c46bec502e5e0a5d2913e8367bd', '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}, 'repo': {'id': 36597702, 'node_id': 'MDEwOlJlcG9zaXRvcnkzNjU5NzcwMg==', 'name': 'dolphin', 'full_name': 'sepalani/dolphin', 'private': False, 'owner': {'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}, 'html_url': 'https://github.com/sepalani/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/sepalani/dolphin', 'forks_url': 'https://api.github.com/repos/sepalani/dolphin/forks', 'keys_url': 'https://api.github.com/repos/sepalani/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/sepalani/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/sepalani/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/sepalani/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/sepalani/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/sepalani/dolphin/events', 'assignees_url': 'https://api.github.com/repos/sepalani/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/sepalani/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/sepalani/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/sepalani/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/sepalani/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/sepalani/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/sepalani/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/sepalani/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/sepalani/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/sepalani/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/sepalani/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/sepalani/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/sepalani/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/sepalani/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/sepalani/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/sepalani/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/sepalani/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/sepalani/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/sepalani/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/sepalani/dolphin/merges', 'archive_url': 'https://api.github.com/repos/sepalani/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/sepalani/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/sepalani/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/sepalani/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/sepalani/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/sepalani/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/sepalani/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/sepalani/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/sepalani/dolphin/deployments', 'created_at': '2015-05-31T10:13:24Z', 'updated_at': '2026-10-23T11:01:33Z', 'pushed_at': '2026-11-02T18:36:07Z', 'git_url': 'git://github.com/sepalani/dolphin.git', 'ssh_url': 'git@github.com:sepalani/dolphin.git', 'clone_url': 'https://github.com/sepalani/dolphin.git', 'svn_url': 'https://github.com/sepalani/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 525789, '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': 'd182533d363eae8c753d37cfad4107930da2019a', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14774'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14774'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14774'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14774/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14774/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/14774/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3b40711b43a71c46bec502e5e0a5d2913e8367bd'}}, '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:12:55.453155	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5742697269, 'node_id': 'PRR_kwDOALCn2M8AAAABVkqbNQ', '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': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5742697269', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#pullrequestreview-5742697269'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'submitted_at': '2026-11-02T20:12:52Z', 'updated_at': '2026-11-02T20:12:52Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'id': 5111239071, 'node_id': 'PR_kwDOALCn2M8AAAABMKdRnw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967', 'number': 14967, 'state': 'open', 'locked': False, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', '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 avoids TCP bind calls from failing after quickly restarting while old TCP sockets are still in "TIME_WAIT".\n\ne.g. Without this, `GBA (TCP)` server fails to bind and is non-functional when restarting a game unless you wait like a full minute before restarting.\nIt\'s really annoying.', 'created_at': '2026-11-01T20:26:41Z', 'updated_at': '2026-11-02T20:12:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'c18f2747231bc4b0b19d5e1df69d79ea9c074801', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'head': {'label': 'jordan-woyak:SO_REUSEADDR', 'ref': 'SO_REUSEADDR', 'sha': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', '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-11-02T20:12:49Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14967'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d'}}, 'author_association': 'MEMBER', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:12:54.998657	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211', 'pull_request_review_id': 5742697269, 'id': 4447219211, 'node_id': 'PRRC_kwDOALCn2M8AAAABCRMuCw', 'diff_hunk': '@@ -291,6 +291,9 @@ void WiiSocket::Update(bool read, bool write, bool except)\n         memory.CopyFromEmu(&addr, ioctl.buffer_in + 8, sizeof(WiiSockAddrIn));\n         sockaddr_in local_name = WiiSockMan::ToNativeAddrIn(addr);\n \n+        if (IsTCP())\n+          Common::SetReuseAddressOnUnix(fd);', 'path': 'Source/Core/Core/IOS/Network/Socket.cpp', 'commit_id': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'original_commit_id': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', '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've added a comment there.", 'created_at': '2026-11-02T20:12:52Z', 'updated_at': '2026-11-02T20:12:52Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4447219211', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967#discussion_r4447219211'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447219211/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': 297, 'original_line': 295, 'side': 'RIGHT', 'in_reply_to_id': 4444669861, 'author_association': 'MEMBER', 'original_position': 5, 'position': 7, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'id': 5111239071, 'node_id': 'PR_kwDOALCn2M8AAAABMKdRnw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967', 'number': 14967, 'state': 'open', 'locked': False, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', '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 avoids TCP bind calls from failing after quickly restarting while old TCP sockets are still in "TIME_WAIT".\n\ne.g. Without this, `GBA (TCP)` server fails to bind and is non-functional when restarting a game unless you wait like a full minute before restarting.\nIt\'s really annoying.', 'created_at': '2026-11-01T20:26:41Z', 'updated_at': '2026-11-02T20:12:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'c18f2747231bc4b0b19d5e1df69d79ea9c074801', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'head': {'label': 'jordan-woyak:SO_REUSEADDR', 'ref': 'SO_REUSEADDR', 'sha': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', '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-11-02T20:12:49Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14967'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d'}}, 'author_association': 'MEMBER', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:12:52.585356	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14967, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967', 'id': 5111239071, 'node_id': 'PR_kwDOALCn2M8AAAABMKdRnw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14967', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14967.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967', 'number': 14967, 'state': 'open', 'locked': False, 'title': 'Common: Add helper function to set SO_REUSEADDR on TCP sockets on non-Windows.', '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 avoids TCP bind calls from failing after quickly restarting while old TCP sockets are still in "TIME_WAIT".\n\ne.g. Without this, `GBA (TCP)` server fails to bind and is non-functional when restarting a game unless you wait like a full minute before restarting.\nIt\'s really annoying.', 'created_at': '2026-11-01T20:26:41Z', 'updated_at': '2026-11-02T20:12:50Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'c9ebea39f701b3230ea6d10c232a9e7cc259522a', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', 'head': {'label': 'jordan-woyak:SO_REUSEADDR', 'ref': 'SO_REUSEADDR', 'sha': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', '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-11-02T20:12:49Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14967'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14967'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14967/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14967/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/14967/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/f9913a5b4200d8ce751f5ecbf6f3814c10d6032d'}}, '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': 8, 'maintainer_can_modify': True, 'commits': 8, 'additions': 87, 'deletions': 7, 'changed_files': 10}, 'before': '47fdf50d2cabd257b7e38387364b6516a9c6b4cc', 'after': 'f9913a5b4200d8ce751f5ecbf6f3814c10d6032d', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:09:04.804643	{'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650', 'pull_request_review_id': 5742654358, 'id': 4447183650, 'node_id': 'PRRC_kwDOALCn2M8AAAABCRKjIg', 'diff_hunk': '@@ -67,8 +68,11 @@ std::shared_ptr<cubeb> GetContext()\n     ERROR_LOG_FMT(AUDIO, "Error setting cubeb log callback");\n   }\n \n+  const auto backend_name_str = Config::Get(Config::MAIN_AUDIO_CUBEB_BACKEND);\n+  const char* const backend_name = backend_name_str.empty() ? nullptr : backend_name_str.c_str();\n+\n   cubeb* ctx;\n-  if (cubeb_init(&ctx, "Dolphin Emulator", nullptr) != CUBEB_OK)\n+  if (cubeb_init(&ctx, "Dolphin Emulator", backend_name) != CUBEB_OK)', 'path': 'Source/Core/AudioCommon/CubebUtils.cpp', 'commit_id': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'original_commit_id': 'eba464eab6960fed9b4979ab192c6634ba05ca83', '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 think this is probably fine?\r\nWe have other settings behave like this, including ones that cause an actual failure on boot.', 'created_at': '2026-11-02T20:09:02Z', 'updated_at': '2026-11-02T20:09:02Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4447183650', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#discussion_r4447183650'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/4447183650/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': 76, 'original_line': 75, 'side': 'RIGHT', 'in_reply_to_id': 4443317673, 'author_association': 'MEMBER', 'original_position': 17, 'position': 19, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'id': 5117705702, 'node_id': 'PR_kwDOALCn2M8AAAABMQn95g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973', 'number': 14973, 'state': 'open', 'locked': False, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', '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': '<img width="692" height="351" alt="image" src="https://github.com/user-attachments/assets/7059d593-01ca-4d61-b5b3-2e026d23b85f" />\r\n\r\nUpdated Cubeb in Externals to latest master because a function to query a list of supported backend names was added in year 2025 https://github.com/mozilla/cubeb/commit/78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d\r\n\r\nIf Dolphin is compiled with Cubeb which lacks that function then the list in the Qt will just have "Default Backend".\r\n\r\nSince Cubeb supports both PulseAudio and ALSA, and this PR allows choosing between the two, I would propose removing our PulseAudio and ALSA audio backends in future PRs.', 'created_at': '2026-11-02T09:05:33Z', 'updated_at': '2026-11-02T20:07:07Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd9cbc79eab972ed505bdf64ff20015c6ff99cb44', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'head': {'label': 'jordan-woyak:cubeb-backend-selection', 'ref': 'cubeb-backend-selection', 'sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T20:07:06Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1'}}, 'author_association': 'MEMBER', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:09:04.802188	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5742654358, 'node_id': 'PRR_kwDOALCn2M8AAAABVknzlg', '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': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5742654358', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973#pullrequestreview-5742654358'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973'}}, 'submitted_at': '2026-11-02T20:09:02Z', 'updated_at': '2026-11-02T20:09:02Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'id': 5117705702, 'node_id': 'PR_kwDOALCn2M8AAAABMQn95g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973', 'number': 14973, 'state': 'open', 'locked': False, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', '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': '<img width="692" height="351" alt="image" src="https://github.com/user-attachments/assets/7059d593-01ca-4d61-b5b3-2e026d23b85f" />\r\n\r\nUpdated Cubeb in Externals to latest master because a function to query a list of supported backend names was added in year 2025 https://github.com/mozilla/cubeb/commit/78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d\r\n\r\nIf Dolphin is compiled with Cubeb which lacks that function then the list in the Qt will just have "Default Backend".\r\n\r\nSince Cubeb supports both PulseAudio and ALSA, and this PR allows choosing between the two, I would propose removing our PulseAudio and ALSA audio backends in future PRs.', 'created_at': '2026-11-02T09:05:33Z', 'updated_at': '2026-11-02T20:07:07Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd9cbc79eab972ed505bdf64ff20015c6ff99cb44', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'head': {'label': 'jordan-woyak:cubeb-backend-selection', 'ref': 'cubeb-backend-selection', 'sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T20:07:06Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1'}}, 'author_association': 'MEMBER', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T20:07:09.981380	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14973, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973', 'id': 5117705702, 'node_id': 'PR_kwDOALCn2M8AAAABMQn95g', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14973', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14973.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973', 'number': 14973, 'state': 'open', 'locked': False, 'title': 'CubebUtils: Allow selecting the backend that Cubeb uses and update Cubeb in Externals.', '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': '<img width="692" height="351" alt="image" src="https://github.com/user-attachments/assets/7059d593-01ca-4d61-b5b3-2e026d23b85f" />\r\n\r\nUpdated Cubeb in Externals to latest master because a function to query a list of supported backend names was added in year 2025 https://github.com/mozilla/cubeb/commit/78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d\r\n\r\nIf Dolphin is compiled with Cubeb which lacks that function then the list in the Qt will just have "Default Backend".\r\n\r\nSince Cubeb supports both PulseAudio and ALSA, and this PR allows choosing between the two, I would propose removing our PulseAudio and ALSA audio backends in future PRs.', 'created_at': '2026-11-02T09:05:33Z', 'updated_at': '2026-11-02T20:07:07Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '405c7fbaac21888468d182e1bf6e28cb819afd62', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1', 'head': {'label': 'jordan-woyak:cubeb-backend-selection', 'ref': 'cubeb-backend-selection', 'sha': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T20:07:06Z', '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': 530463, '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': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14973'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14973'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14973/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14973/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/14973/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/6edc53cad639d7b79a79a9b1467dff7f46a69be1'}}, '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': 6, 'maintainer_can_modify': True, 'commits': 4, 'additions': 88, 'deletions': 2, 'changed_files': 8}, 'before': 'eba464eab6960fed9b4979ab192c6634ba05ca83', 'after': '6edc53cad639d7b79a79a9b1467dff7f46a69be1', '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-11-02T19:46:40Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T19:46:28.395437	{'source': 'webserver', 'gh_type': 'check_suite', 'raw': {'action': 'requested', 'check_suite': {'id': 112496331149, 'node_id': 'CS_kwDOALCn2M8AAAAaMU3JjQ', 'head_branch': 'master', 'head_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'status': 'queued', 'conclusion': None, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/112496331149', 'before': 'd182533d363eae8c753d37cfad4107930da2019a', 'after': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'pull_requests': [{'url': 'https://api.github.com/repos/Faster-Brawl/dolphin/pulls/5', 'id': 1222541325, 'number': 5, 'head': {'ref': 'master', 'sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': 'eb9e232680dfdc04ec2adab05dbc530b1e707fc9', 'repo': {'id': 577809188, 'url': 'https://api.github.com/repos/Faster-Brawl/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/dirextric-auto/dolphin/pulls/1', 'id': 571486662, 'number': 1, 'head': {'ref': 'master', 'sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '1e71904cb9930eccc036e2ce2360beaa746befa7', 'repo': {'id': 337848960, 'url': 'https://api.github.com/repos/dirextric-auto/dolphin', 'name': 'dolphin'}}}, {'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr/pulls/1', 'id': 518053317, 'number': 1, 'head': {'ref': 'master', 'sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'VR-Hydra', 'sha': 'ea9f95955e5335cc238b2f9c5a0a6dfdc8698aec', 'repo': {'id': 311469400, 'url': 'https://api.github.com/repos/zurgeg/dolphin-vr-no-ovr', 'name': 'dolphin-vr-no-ovr'}}}, {'url': 'https://api.github.com/repos/weihuoya/dolphin/pulls/1', 'id': 400884538, 'number': 1, 'head': {'ref': 'master', 'sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'repo': {'id': 11577304, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'name': 'dolphin'}}, 'base': {'ref': 'master', 'sha': '0f4c971326ae9389b3ad55b0fefacb708d148f4d', 'repo': {'id': 143011855, 'url': 'https://api.github.com/repos/weihuoya/dolphin', 'name': 'dolphin'}}}], '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']}, 'created_at': '2026-11-02T19:46:25Z', 'updated_at': '2026-11-02T19:46:25Z', 'rerequestable': True, 'runs_rerequestable': True, 'latest_check_runs_count': 0, 'check_runs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/check-suites/112496331149/check-runs', 'head_commit': {'id': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'tree_id': 'f6ede05dcd742a77a4ede4c575ed111763bc901a', 'message': 'Merge pull request #14975 from JoshuaVandaele/flathub-manifest\n\nFlatpak: Do not set the flathub::manifest tag', 'timestamp': '2026-11-02T19:46:23Z', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com'}}}, '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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T19:46:23Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T19:46:26.202910	{'source': 'webserver', 'gh_type': 'push', 'raw': {'ref': 'refs/heads/master', 'before': 'd182533d363eae8c753d37cfad4107930da2019a', 'after': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'name': 'dolphin-emu', 'email': None, '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': 1374484077, 'updated_at': '2026-11-02T18:40:18Z', 'pushed_at': 1793648783, '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, 'default_branch': 'master', 'stargazers': 15758, 'master_branch': 'master', 'organization': 'dolphin-emu', 'custom_properties': {}}, 'pusher': {'name': 'jordan-woyak', 'email': 'jordan.woyak@gmail.com'}, 'forced': False, '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}, 'created': False, 'deleted': False, 'base_ref': None, 'compare': 'https://github.com/dolphin-emu/dolphin/compare/d182533d363e...a0ed231ff614', 'commits': [{'id': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'tree_id': 'f6ede05dcd742a77a4ede4c575ed111763bc901a', 'distinct': False, 'message': 'Flatpak: Do not set the flathub::manifest tag\n\nThis resolves the recent build failures introduced by https://github.com/flathub-infra/flatpak-builder-lint/commit/df1c8f992aa5620fc473efe6c6e96b9f3b11e1ba. Nothing seems to break with it being removed.', 'timestamp': '2026-11-02T18:39:39+01:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-11-02T18:36:38+01:00', 'username': 'JoshuaVandaele'}, 'committer': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'date': '2026-11-02T18:39:39+01:00', 'username': 'JoshuaVandaele'}, 'added': [], 'removed': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml.in']}, {'id': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'tree_id': 'f6ede05dcd742a77a4ede4c575ed111763bc901a', 'distinct': True, 'message': 'Merge pull request #14975 from JoshuaVandaele/flathub-manifest\n\nFlatpak: Do not set the flathub::manifest tag', 'timestamp': '2026-11-02T13:46:23-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T13:46:23-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-02T13:46:23-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml.in']}], 'head_commit': {'id': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'tree_id': 'f6ede05dcd742a77a4ede4c575ed111763bc901a', 'distinct': True, 'message': 'Merge pull request #14975 from JoshuaVandaele/flathub-manifest\n\nFlatpak: Do not set the flathub::manifest tag', 'timestamp': '2026-11-02T13:46:23-06:00', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-11-02T13:46:23-06:00', 'username': 'jordan-woyak'}, 'committer': {'name': 'GitHub', 'email': 'noreply@github.com', 'date': '2026-11-02T13:46:23-06:00', 'username': 'web-flow'}, 'added': [], 'removed': [], 'modified': ['Flatpak/org.DolphinEmu.dolphin-emu.metainfo.xml.in']}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T19:46:26.027806	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'closed', 'number': 14975, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975', 'id': 5124853023, 'node_id': 'PR_kwDOALCn2M8AAAABMXcNHw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14975', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14975.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14975.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975', 'number': 14975, 'state': 'closed', 'locked': False, 'title': 'Flatpak: Do not set the flathub::manifest tag', '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}, 'body': 'This resolves the recent buildbot failures introduced by https://github.com/flathub-infra/flatpak-builder-lint/commit/df1c8f992aa5620fc473efe6c6e96b9f3b11e1ba. Nothing seems to break with it being removed.\n\nThe purpose of this tag is to directly upload to Flathub from our own infra, which we do not (currently) do: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#manifest-location', 'created_at': '2026-11-02T17:50:24Z', 'updated_at': '2026-11-02T19:46:23Z', 'closed_at': '2026-11-02T19:46:23Z', 'merged_at': '2026-11-02T19:46:23Z', 'merge_commit_sha': 'a0ed231ff614ec6e03716d72fa8f3a11ce57c6a0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/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/14975/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'head': {'label': 'JoshuaVandaele:flathub-manifest', 'ref': 'flathub-manifest', 'sha': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', '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}, 'repo': {'id': 915253252, 'node_id': 'R_kgDONo2oBA', 'name': 'dolphin', 'full_name': 'JoshuaVandaele/dolphin', 'private': False, 'owner': {'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}, 'html_url': 'https://github.com/JoshuaVandaele/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/JoshuaVandaele/dolphin', 'forks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/deployments', 'created_at': '2025-01-11T11:19:57Z', 'updated_at': '2026-10-25T13:00:05Z', 'pushed_at': '2026-11-02T17:42:16Z', 'git_url': 'git://github.com/JoshuaVandaele/dolphin.git', 'ssh_url': 'git@github.com:JoshuaVandaele/dolphin.git', 'clone_url': 'https://github.com/JoshuaVandaele/dolphin.git', 'svn_url': 'https://github.com/JoshuaVandaele/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 522680, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 1, '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': 'd182533d363eae8c753d37cfad4107930da2019a', '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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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/14975'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14975'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/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/14975/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2833c12b20e5c3d929f8c27a7742ecadb8a669b4'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': True, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': {'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}, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 1, 'additions': 0, 'deletions': 3, '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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 482, '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': 3375, 'open_issues': 482, 'watchers': 15758, '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-11-02T19:32:05.103842	{'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 5742201634, 'node_id': 'PRR_kwDOALCn2M8AAAABVkMLIg', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14975#pullrequestreview-5742201634', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14975#pullrequestreview-5742201634'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975'}}, 'submitted_at': '2026-11-02T19:32:03Z', 'updated_at': '2026-11-02T19:32:03Z', 'author_association': 'MEMBER'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975', 'id': 5124853023, 'node_id': 'PR_kwDOALCn2M8AAAABMXcNHw', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14975', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14975.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14975.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975', 'number': 14975, 'state': 'open', 'locked': False, 'title': 'Flatpak: Do not set the flathub::manifest tag', '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}, 'body': 'This resolves the recent buildbot failures introduced by https://github.com/flathub-infra/flatpak-builder-lint/commit/df1c8f992aa5620fc473efe6c6e96b9f3b11e1ba. Nothing seems to break with it being removed.\n\nThe purpose of this tag is to directly upload to Flathub from our own infra, which we do not (currently) do: https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines#manifest-location', 'created_at': '2026-11-02T17:50:24Z', 'updated_at': '2026-11-02T17:50:24Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '697d1379915905800109678ca2edb979f59e5842', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/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/14975/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2833c12b20e5c3d929f8c27a7742ecadb8a669b4', 'head': {'label': 'JoshuaVandaele:flathub-manifest', 'ref': 'flathub-manifest', 'sha': '2833c12b20e5c3d929f8c27a7742ecadb8a669b4', '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}, 'repo': {'id': 915253252, 'node_id': 'R_kgDONo2oBA', 'name': 'dolphin', 'full_name': 'JoshuaVandaele/dolphin', 'private': False, 'owner': {'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}, 'html_url': 'https://github.com/JoshuaVandaele/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/JoshuaVandaele/dolphin', 'forks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/forks', 'keys_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/events', 'assignees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/merges', 'archive_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/JoshuaVandaele/dolphin/deployments', 'created_at': '2025-01-11T11:19:57Z', 'updated_at': '2026-10-25T13:00:05Z', 'pushed_at': '2026-11-02T17:42:16Z', 'git_url': 'git://github.com/JoshuaVandaele/dolphin.git', 'ssh_url': 'git@github.com:JoshuaVandaele/dolphin.git', 'clone_url': 'https://github.com/JoshuaVandaele/dolphin.git', 'svn_url': 'https://github.com/JoshuaVandaele/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 522680, 'stargazers_count': 1, 'watchers_count': 1, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 1, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'has_pull_requests': True, 'pull_request_creation_policy': 'all', 'topics': [], 'visibility': 'public', 'forks': 1, 'open_issues': 0, 'watchers': 1, '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': 'd182533d363eae8c753d37cfad4107930da2019a', '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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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/14975'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14975'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14975/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14975/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/14975/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/2833c12b20e5c3d929f8c27a7742ecadb8a669b4'}}, '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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-11-02T19:17:59.806305	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T19:17:57Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586181869', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586181869', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6586181869, 'node_id': 'IC_kwDOALCn2M8AAAABiJEo7Q', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:17:57Z', 'updated_at': '2026-11-02T19:17:57Z', 'body': "It's to make sure I cover every enum member to avoid a warning about the switch being non-exhaustive.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586181869/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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-11-02T19:15:26.375188	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> Two returns to unknown? Can you please explain what you mean?\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'id': 5165948633, 'node_id': 'PR_kwDOALCn2M7_yPCt', 'number': 14819, 'title': 'DriverDetails: Set fixed versions for old Adreno bugs', '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}, 'labels': [{'id': 1667502011, 'node_id': 'MDU6TGFiZWwxNjY3NTAyMDEx', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels/needs%20rebase', 'name': 'needs rebase', 'color': '053663', 'default': False, 'description': '', 'archived_at': None, 'archived_by': None}], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-08-16T19:16:08Z', 'updated_at': '2026-11-02T19:15:20Z', '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/14819', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14819.patch', 'merged_at': None}, 'body': "I tested if the following bugs were still present on different Android devices running Adreno drivers 494.0, 676.0, and 800.70, and all of them seem to have been fixed at some point:\r\n\r\n* BUG_BROKEN_BUFFER_STREAM\r\n* BUG_BROKEN_NEGATED_BOOLEAN\r\n* BUG_BROKEN_D32F_CLEAR\r\n* BUG_BROKEN_REVERSED_DEPTH_RANGE\r\n* BUG_SLOW_CACHED_READBACK_MEMORY\r\n\r\nI set the fixed version to the oldest driver I had that didn't have the bug, so the fixed version is an upper bound rather than the exact driver that fixed the problem.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819/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/14819/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14819#issuecomment-6586123014', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14819', 'id': 6586123014, 'node_id': 'IC_kwDOALCn2M8AAAABiJBDBg', 'user': {'login': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-11-02T19:15:06Z', 'updated_at': '2026-11-02T19:15:20Z', 'body': '> Two returns to unknown? Can you please explain what you mean?\r\n\r\nSo when you are listing things, like the list of vendors, the default "unknown" case occurs both inside and outside the bracket, but logically you should only need one, and indeed this is the case for the APIs case list. \r\n\r\n\r\n', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/6586123014/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-11-02T18:40:18Z', 'pushed_at': '2026-11-02T03:35:00Z', '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': 563757, 'stargazers_count': 15758, 'watchers_count': 15758, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': False, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3375, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 483, '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': 3375, 'open_issues': 483, 'watchers': 15758, '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': 'Rumi-Larry', 'id': 65569725, 'node_id': 'MDQ6VXNlcjY1NTY5NzI1', 'avatar_url': 'https://avatars.githubusercontent.com/u/65569725?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Rumi-Larry', 'html_url': 'https://github.com/Rumi-Larry', 'followers_url': 'https://api.github.com/users/Rumi-Larry/followers', 'following_url': 'https://api.github.com/users/Rumi-Larry/following{/other_user}', 'gists_url': 'https://api.github.com/users/Rumi-Larry/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Rumi-Larry/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Rumi-Larry/subscriptions', 'organizations_url': 'https://api.github.com/users/Rumi-Larry/orgs', 'repos_url': 'https://api.github.com/users/Rumi-Larry/repos', 'events_url': 'https://api.github.com/users/Rumi-Larry/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Rumi-Larry/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}