Status for Dolphin Central
Recent events
2026-05-18T03:23:22.772935 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:23:21.375061 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:19:58.353350 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T03:19:58.070870 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T03:18:21.374682 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:18:19.583458 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:13:19.583048 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:13:18.183539 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:09:58.070642 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T03:09:57.643147 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T03:08:18.183179 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:08:16.795779 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:03:16.795437 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:03:15.391712 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:59:57.642923 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T02:59:57.366619 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T02:58:15.391285 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:58:13.927598 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:53:13.927192 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:53:12.498420 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:49:57.366368 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T02:49:57.086124 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T02:48:12.498061 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:48:11.130595 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:43:11.130235 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
Recent 'build_status' events
2026-05-16T03:14:04.082561 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': 'a373233a417b186293470a151887848e92ba8354', 'shortrev': 'a37323', 'service': 'default', 'pr': 14652, 'success': False, 'pending': False, 'url': '', 'description': 'PR not built because BeezBumba is not auto-trusted.', 'type': 'build_status'}
2026-05-16T03:13:39.974576 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': 'a373233a417b186293470a151887848e92ba8354', 'shortrev': 'a37323', 'service': 'default', 'pr': 14652, 'success': False, 'pending': False, 'url': '', 'description': 'PR not built because BeezBumba is not auto-trusted.', 'type': 'build_status'}
2026-05-15T22:24:20.512134 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-osx-universal', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/9821', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2026-05-15T22:21:01.131949 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-deb-dbg-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/9807', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-05-15T22:19:57.874484 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-dbg-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/9814', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-05-15T22:17:11.784512 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'shortrev': '3c0ddc', 'service': 'default', 'pr': 14652, 'success': False, 'pending': False, 'url': '', 'description': 'PR not built because BeezBumba is not auto-trusted.', 'type': 'build_status'}
2026-05-15T22:16:30.463353 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-arm64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/9804', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2026-05-15T22:16:29.824917 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-dbg-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/9814', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2026-05-15T22:15:47.240790 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-deb-dbg-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/9807', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2026-05-15T22:15:46.941757 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-deb-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/9805', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2026-05-15T22:15:46.342669 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-android', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/9808', 'description': 'Build succeeded on builder pr-android', 'type': 'build_status'}
2026-05-15T22:15:45.962876 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-ubu-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/27/builds/9806', 'description': 'Build succeeded on builder pr-ubu-x64', 'type': 'build_status'}
2026-05-15T22:12:31.711788 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/9807', 'description': 'Build succeeded on builder pr-win-x64', 'type': 'build_status'}
2026-05-15T22:12:31.375641 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-arm64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/9804', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}
2026-05-15T22:10:40.541472 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-flatpak-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/4951', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2026-05-15T22:09:44.323253 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-flatpak-arm64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/4895', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2026-05-15T22:08:51.626506 {'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '54c8b156807621effa2c09b8c051d3f0653bbcc1', 'shortrev': '54c8b1', 'service': 'default', 'pr': 14652, 'success': False, 'pending': False, 'url': '', 'description': 'PR not built because BeezBumba is not auto-trusted.', 'type': 'build_status'}
2026-05-15T22:08:38.967636 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-freebsd-x64', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/9811', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2026-05-15T22:08:37.089441 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'lint', 'pr': 14653, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/9/builds/9805', 'description': 'Build succeeded on builder lint', 'type': 'build_status'}
2026-05-15T22:07:57.967832 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-ubu-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/27/builds/9806', 'description': 'Auto build in progress on builder pr-ubu-x64', 'type': 'build_status'}
2026-05-15T22:07:51.344412 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-freebsd-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/9811', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2026-05-15T22:07:49.973112 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-win-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/9807', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2026-05-15T22:07:49.107294 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-osx-universal', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/9821', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2026-05-15T22:07:48.806621 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-deb-x64', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/26/builds/9805', 'description': 'Auto build in progress on builder pr-deb-x64', 'type': 'build_status'}
2026-05-15T22:07:48.531842 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'shortrev': '4618e4', 'service': 'pr-android', 'pr': 14653, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/22/builds/9808', 'description': 'Auto build in progress on builder pr-android', 'type': 'build_status'}
Recent 'command_message' events
2026-05-14T09:59:15.028252 {'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 14652', 'type': 'command_message'}
2026-05-13T13:39:46.923913 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14647', 'type': 'command_message'}
2026-05-09T16:59:59.577380 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14581', 'type': 'command_message'}
2026-05-08T08:44:58.546241 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14581', 'type': 'command_message'}
2026-05-06T12:07:13.184637 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14644', 'type': 'command_message'}
2026-05-06T11:21:18.138682 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14644', 'type': 'command_message'}
2026-05-06T11:12:45.816451 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14570', 'type': 'command_message'}
2026-05-05T19:01:13.723483 {'source': 'discord', 'who': 'joshuavandaele', 'what': '<@1320924779556900984> please rebuild 14129', 'type': 'command_message'}
2026-05-03T07:57:13.908815 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14581', 'type': 'command_message'}
2026-05-01T06:40:42.606717 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14633', 'type': 'command_message'}
2026-05-01T06:36:35.990137 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14626', 'type': 'command_message'}
2026-04-30T16:38:52.035729 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14616', 'type': 'command_message'}
2026-04-30T10:43:29.995542 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14384', 'type': 'command_message'}
2026-04-29T19:36:53.204697 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14543', 'type': 'command_message'}
2026-04-29T19:16:05.006616 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14384', 'type': 'command_message'}
2026-04-29T01:38:44.444405 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14626', 'type': 'command_message'}
2026-04-28T16:09:55.100339 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14543', 'type': 'command_message'}
2026-04-28T16:09:35.225753 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14626', 'type': 'command_message'}
2026-04-28T01:45:31.448591 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14384', 'type': 'command_message'}
2026-04-28T01:43:32.813203 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14384', 'type': 'command_message'}
2026-04-28T01:34:22.949835 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14384', 'type': 'command_message'}
2026-04-28T00:53:30.277844 {'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 14384', 'type': 'command_message'}
2026-04-25T11:14:41.245337 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14599', 'type': 'command_message'}
2026-04-25T07:02:34.306508 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14599', 'type': 'command_message'}
2026-04-24T17:16:43.140546 {'source': 'discord', 'who': 'josjuice', 'what': '<@1320924779556900984> please rebuild 14599', 'type': 'command_message'}
Recent 'dev_wark' events
2026-04-30T16:38:52.035770 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-29T19:36:53.204739 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-29T01:38:44.444438 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-28T01:45:31.448643 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-28T01:43:32.813229 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-28T01:34:22.949866 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-28T00:53:30.277869 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-19T21:20:55.920723 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-19T21:09:58.519310 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
2026-04-19T20:13:01.858560 {'source': 'discord', 'accepted': True, 'type': 'dev_wark'}
Recent 'gh_commit_comment' events
2026-05-05T11:45:06.058341 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'commit': '95dec132030e72b74da6bc46966e4fe5e4e239c0', 'url': 'https://github.com/dolphin-emu/dolphin/commit/95dec132030e72b74da6bc46966e4fe5e4e239c0#r184311570', 'type': 'gh_commit_comment'}
Recent 'gh_issue_comment' events
2026-05-17T19:19:36.805099 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'created', 'id': 13216, 'title': 'Core: Implement automatic symbol demangling', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472220637', 'safe_author': True, 'body': "> This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.\r\n\r\nAre you referring to https://github.com/dolphin-emu/dolphin/commit/57b1234feb01ad5bbe7bdbf2bffd2a14590e560e? That commit is a separate merge commit that has two parents (which you can see listed on the linked page). The first parent is the previous version's merge commit (https://github.com/dolphin-emu/dolphin/commit/0a84d93a8e64d946405b0e17edd1a29ccfac0606) and the other one is your commit (https://github.com/dolphin-emu/dolphin/commit/1c4bfc35d980856033714a84a8425e71576623eb), which has you listed as the author.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T19:19:34Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472220637', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472220637', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472220637, 'node_id': 'IC_kwDOALCn2M8AAAABCpCr3Q', 'user': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T19:19:34Z', 'updated_at': '2026-05-17T19:19:34Z', 'body': "> This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.\r\n\r\nAre you referring to https://github.com/dolphin-emu/dolphin/commit/57b1234feb01ad5bbe7bdbf2bffd2a14590e560e? That commit is a separate merge commit that has two parents (which you can see listed on the linked page). The first parent is the previous version's merge commit (https://github.com/dolphin-emu/dolphin/commit/0a84d93a8e64d946405b0e17edd1a29ccfac0606) and the other one is your commit (https://github.com/dolphin-emu/dolphin/commit/1c4bfc35d980856033714a84a8425e71576623eb), which has you listed as the author.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472220637/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-17T18:21:48.159831 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'CelestialAmber', 'action': 'edited', 'id': 13216, 'title': 'Core: Implement automatic symbol demangling', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'safe_author': True, 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'This time, could whoever merges the PR make sure I get included as an author of the commit?'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T18:21:32Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472067717, 'node_id': 'IC_kwDOALCn2M8AAAABCo5WhQ', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T18:21:32Z', 'updated_at': '2026-05-17T18:21:46Z', 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-17T18:21:34.138093 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'CelestialAmber', 'action': 'created', 'id': 13216, 'title': 'Core: Implement automatic symbol demangling', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'safe_author': True, 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T18:21:32Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472067717, 'node_id': 'IC_kwDOALCn2M8AAAABCo5WhQ', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T18:21:32Z', 'updated_at': '2026-05-17T18:21:32Z', 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit?', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-17T13:12:34.931166 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'PTwr', 'action': 'edited', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'safe_author': False, 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).\r\n\r\n(Of course there\'s the issue of not ruining framerate with script-plugins. If I remember correctly, this crappy built-in had negligible performance cost. Scripts would be more annoying to keep fast.)', 'raw': {'action': 'edited', 'changes': {'body': {'from': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T13:06:53Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470758843, 'node_id': 'IC_kwDOALCn2M8AAAABCnpduw', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T13:06:53Z', 'updated_at': '2026-05-17T13:12:31Z', 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).\r\n\r\n(Of course there\'s the issue of not ruining framerate with script-plugins. If I remember correctly, this crappy built-in had negligible performance cost. Scripts would be more annoying to keep fast.)', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-17T13:06:55.374940 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'PTwr', 'action': 'created', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'safe_author': False, 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T13:06:53Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470758843, 'node_id': 'IC_kwDOALCn2M8AAAABCnpduw', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T13:06:53Z', 'updated_at': '2026-05-17T13:06:53Z', 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-17T12:09:59.878855 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470582695', 'safe_author': True, 'body': "This seems quite unlikely unless this 3yo PR is rebased and some of the issues are addressed (e.g. [project coding style](https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md), passing buildbot tests, ...). I'll be more than happy to review this PR again when it's updated.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T12:09:57Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470582695', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470582695', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470582695, 'node_id': 'IC_kwDOALCn2M8AAAABCnetpw', '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}, 'created_at': '2026-05-17T12:09:57Z', 'updated_at': '2026-05-17T12:09:57Z', 'body': "This seems quite unlikely unless this 3yo PR is rebased and some of the issues are addressed (e.g. [project coding style](https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md), passing buildbot tests, ...). I'll be more than happy to review this PR again when it's updated.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470582695/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-16T13:43:57.670653 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'edited', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'safe_author': False, 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command. EDIT: because I don't know if for rebasing I would need to make a fresh new branch and fix messy history.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T13:33:11Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4467003607, 'node_id': 'IC_kwDOALCn2M8AAAABCkEQ1w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T13:33:11Z', 'updated_at': '2026-05-16T13:43:56Z', 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command. EDIT: because I don't know if for rebasing I would need to make a fresh new branch and fix messy history.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T10:07:56Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15028, 'watchers_count': 15028, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3082, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3082, 'open_issues': 459, 'watchers': 15028, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-16T13:33:13.329950 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'safe_author': False, 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T13:33:11Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4467003607, 'node_id': 'IC_kwDOALCn2M8AAAABCkEQ1w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T13:33:11Z', 'updated_at': '2026-05-16T13:33:11Z', 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T10:07:56Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15028, 'watchers_count': 15028, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3082, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3082, 'open_issues': 459, 'watchers': 15028, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-16T03:20:11.978466 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4465382411', 'safe_author': False, 'body': 'Yeah I will fix all the commit history stuff soon.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:20:10Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4465382411', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4465382411', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4465382411, 'node_id': 'IC_kwDOALCn2M8AAAABCihUCw', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T03:20:09Z', 'updated_at': '2026-05-16T03:20:09Z', 'body': 'Yeah I will fix all the commit history stuff soon.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4465382411/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T23:43:51.988749 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Impeta', 'action': 'edited', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'safe_author': False, 'body': '@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I\'m asking because there\'s this Tetra Trackers ENG translation project, and it\'s using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it\'s narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n<img width="1920" height="1080" alt="snapshot" src="https://github.com/user-attachments/assets/32510168-cdf9-4832-9ec4-cef575605bd7" />\r\n\r\n\r\n ', 'raw': {'action': 'edited', 'changes': {'body': {'from': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n "}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:40:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:43:50Z', 'body': '@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I\'m asking because there\'s this Tetra Trackers ENG translation project, and it\'s using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it\'s narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n<img width="1920" height="1080" alt="snapshot" src="https://github.com/user-attachments/assets/32510168-cdf9-4832-9ec4-cef575605bd7" />\r\n\r\n\r\n ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T23:40:55.825091 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Impeta', 'action': 'edited', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'safe_author': False, 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n ", 'raw': {'action': 'edited', 'changes': {'body': {'from': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\n\r\n "}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:37:27Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:40:54Z', 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n ", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T23:37:28.619498 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Impeta', 'action': 'created', 'id': 12224, 'title': 'Subtitle system for streaming audo/video', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'safe_author': False, 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\n\r\n ", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:37:27Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:37:26Z', 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\n\r\n ", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T22:04:33.747276 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4464112851', 'safe_author': False, 'body': "> Also\r\n> \r\n> > Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.\r\n> \r\n> It can in fact create an accelerated GL context using XWayland\r\n\r\nMy system's graphics stack is a little weird and does not have X11 so XWayland wont work.", 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T22:04:31Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464112851', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4464112851', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4464112851, 'node_id': 'IC_kwDOALCn2M8AAAABChT00w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T22:04:31Z', 'updated_at': '2026-05-15T22:04:31Z', 'body': "> Also\r\n> \r\n> > Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.\r\n> \r\n> It can in fact create an accelerated GL context using XWayland\r\n\r\nMy system's graphics stack is a little weird and does not have X11 so XWayland wont work.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464112851/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T11:45:49.975727 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'linkmauve', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4459465501', 'safe_author': True, 'body': 'You probably want to add the needed libraries to the Linux CI as well.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T11:45:48Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4459465501', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4459465501', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4459465501, 'node_id': 'IC_kwDOALCn2M8AAAABCc4LHQ', 'user': {'login': 'linkmauve', 'id': 7755816, 'node_id': 'MDQ6VXNlcjc3NTU4MTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7755816?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/linkmauve', 'html_url': 'https://github.com/linkmauve', 'followers_url': 'https://api.github.com/users/linkmauve/followers', 'following_url': 'https://api.github.com/users/linkmauve/following{/other_user}', 'gists_url': 'https://api.github.com/users/linkmauve/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/linkmauve/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/linkmauve/subscriptions', 'organizations_url': 'https://api.github.com/users/linkmauve/orgs', 'repos_url': 'https://api.github.com/users/linkmauve/repos', 'events_url': 'https://api.github.com/users/linkmauve/events{/privacy}', 'received_events_url': 'https://api.github.com/users/linkmauve/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T11:45:48Z', 'updated_at': '2026-05-15T11:45:48Z', 'body': 'You probably want to add the needed libraries to the Linux CI as well.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4459465501/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T08:30:43Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15026, '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': 'linkmauve', 'id': 7755816, 'node_id': 'MDQ6VXNlcjc3NTU4MTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7755816?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/linkmauve', 'html_url': 'https://github.com/linkmauve', 'followers_url': 'https://api.github.com/users/linkmauve/followers', 'following_url': 'https://api.github.com/users/linkmauve/following{/other_user}', 'gists_url': 'https://api.github.com/users/linkmauve/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/linkmauve/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/linkmauve/subscriptions', 'organizations_url': 'https://api.github.com/users/linkmauve/orgs', 'repos_url': 'https://api.github.com/users/linkmauve/repos', 'events_url': 'https://api.github.com/users/linkmauve/events{/privacy}', 'received_events_url': 'https://api.github.com/users/linkmauve/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T05:46:30.072330 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4457227430', 'safe_author': True, 'body': 'Also\r\n\r\n> Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.\r\n\r\nIt can in fact create an accelerated GL context using XWayland', 'raw': {'action': 'edited', 'changes': {'body': {'from': '> Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T05:46:05Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4457227430', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4457227430', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4457227430, 'node_id': 'IC_kwDOALCn2M8AAAABCavkpg', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T05:46:05Z', 'updated_at': '2026-05-15T05:46:28Z', 'body': 'Also\r\n\r\n> Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.\r\n\r\nIt can in fact create an accelerated GL context using XWayland', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4457227430/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T22:36:57Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-15T05:46:08.245809 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4457227430', 'safe_author': True, 'body': '> Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T05:46:05Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4457227430', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4457227430', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4457227430, 'node_id': 'IC_kwDOALCn2M8AAAABCavkpg', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T05:46:05Z', 'updated_at': '2026-05-15T05:46:05Z', 'body': '> Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4457227430/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T22:36:57Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T22:36:46.513534 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455279360', 'safe_author': True, 'body': 'Whelp, godspeed to macOS and Android.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'id': 4053888253, 'node_id': 'PR_kwDOALCn2M7JfaNH', 'number': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'user': {'login': 'TheShrubMaster', 'id': 35280298, 'node_id': 'MDQ6VXNlcjM1MjgwMjk4', 'avatar_url': 'https://avatars.githubusercontent.com/u/35280298?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TheShrubMaster', 'html_url': 'https://github.com/TheShrubMaster', 'followers_url': 'https://api.github.com/users/TheShrubMaster/followers', 'following_url': 'https://api.github.com/users/TheShrubMaster/following{/other_user}', 'gists_url': 'https://api.github.com/users/TheShrubMaster/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TheShrubMaster/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TheShrubMaster/subscriptions', 'organizations_url': 'https://api.github.com/users/TheShrubMaster/orgs', 'repos_url': 'https://api.github.com/users/TheShrubMaster/repos', 'events_url': 'https://api.github.com/users/TheShrubMaster/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TheShrubMaster/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-03-10T19:50:17Z', 'updated_at': '2026-05-14T22:36:44Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14448', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.patch', 'merged_at': None}, 'body': 'Added Individual Wiimote Audio for individual audio output support', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 2, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455279360', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455279360', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'id': 4455279360, 'node_id': 'IC_kwDOALCn2M8AAAABCY4rAA', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T22:36:44Z', 'updated_at': '2026-05-14T22:36:44Z', 'body': 'Whelp, godspeed to macOS and Android.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455279360/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T22:18:55Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3080, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3080, 'open_issues': 459, 'watchers': 15025, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T22:36:28.955277 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'created', 'id': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455277628', 'safe_author': True, 'body': 'Still working fine on Windows...', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'id': 4053888253, 'node_id': 'PR_kwDOALCn2M7JfaNH', 'number': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'user': {'login': 'TheShrubMaster', 'id': 35280298, 'node_id': 'MDQ6VXNlcjM1MjgwMjk4', 'avatar_url': 'https://avatars.githubusercontent.com/u/35280298?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TheShrubMaster', 'html_url': 'https://github.com/TheShrubMaster', 'followers_url': 'https://api.github.com/users/TheShrubMaster/followers', 'following_url': 'https://api.github.com/users/TheShrubMaster/following{/other_user}', 'gists_url': 'https://api.github.com/users/TheShrubMaster/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TheShrubMaster/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TheShrubMaster/subscriptions', 'organizations_url': 'https://api.github.com/users/TheShrubMaster/orgs', 'repos_url': 'https://api.github.com/users/TheShrubMaster/repos', 'events_url': 'https://api.github.com/users/TheShrubMaster/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TheShrubMaster/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-03-10T19:50:17Z', 'updated_at': '2026-05-14T22:36:26Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14448', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.patch', 'merged_at': None}, 'body': 'Added Individual Wiimote Audio for individual audio output support', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 2, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455277628', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455277628', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'id': 4455277628, 'node_id': 'IC_kwDOALCn2M8AAAABCY4kPA', '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-05-14T22:36:26Z', 'updated_at': '2026-05-14T22:36:26Z', 'body': 'Still working fine on Windows...', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455277628/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T22:18:55Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3080, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3080, 'open_issues': 459, 'watchers': 15025, '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-05-14T22:35:08.206449 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'created', 'id': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455270933', 'safe_author': True, 'body': 'Tested and working on Linux after rebase.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'id': 4053888253, 'node_id': 'PR_kwDOALCn2M7JfaNH', 'number': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'user': {'login': 'TheShrubMaster', 'id': 35280298, 'node_id': 'MDQ6VXNlcjM1MjgwMjk4', 'avatar_url': 'https://avatars.githubusercontent.com/u/35280298?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TheShrubMaster', 'html_url': 'https://github.com/TheShrubMaster', 'followers_url': 'https://api.github.com/users/TheShrubMaster/followers', 'following_url': 'https://api.github.com/users/TheShrubMaster/following{/other_user}', 'gists_url': 'https://api.github.com/users/TheShrubMaster/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TheShrubMaster/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TheShrubMaster/subscriptions', 'organizations_url': 'https://api.github.com/users/TheShrubMaster/orgs', 'repos_url': 'https://api.github.com/users/TheShrubMaster/repos', 'events_url': 'https://api.github.com/users/TheShrubMaster/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TheShrubMaster/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2026-03-10T19:50:17Z', 'updated_at': '2026-05-14T22:35:06Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14448', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.patch', 'merged_at': None}, 'body': 'Added Individual Wiimote Audio for individual audio output support', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 2, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455270933', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4455270933', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'id': 4455270933, 'node_id': 'IC_kwDOALCn2M8AAAABCY4KFQ', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T22:35:06Z', 'updated_at': '2026-05-14T22:35:06Z', 'body': 'Tested and working on Linux after rebase.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4455270933/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T22:18:55Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3080, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3080, 'open_issues': 459, 'watchers': 15025, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T21:12:13.115438 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'teapotonmars', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4454781576', 'safe_author': False, 'body': '> Would you mind at least linking to where the code originally came from?\r\n\r\nThe code originally came from https://github.com/TellowKrinkle/dolphin/tree/Wayland', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-14T21:12:11Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4454781576', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4454781576', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4454781576, 'node_id': 'IC_kwDOALCn2M8AAAABCYaSiA', 'user': {'login': 'teapotonmars', 'id': 15724613, 'node_id': 'MDQ6VXNlcjE1NzI0NjEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/15724613?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/teapotonmars', 'html_url': 'https://github.com/teapotonmars', 'followers_url': 'https://api.github.com/users/teapotonmars/followers', 'following_url': 'https://api.github.com/users/teapotonmars/following{/other_user}', 'gists_url': 'https://api.github.com/users/teapotonmars/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/teapotonmars/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/teapotonmars/subscriptions', 'organizations_url': 'https://api.github.com/users/teapotonmars/orgs', 'repos_url': 'https://api.github.com/users/teapotonmars/repos', 'events_url': 'https://api.github.com/users/teapotonmars/events{/privacy}', 'received_events_url': 'https://api.github.com/users/teapotonmars/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T21:12:11Z', 'updated_at': '2026-05-14T21:12:11Z', 'body': '> Would you mind at least linking to where the code originally came from?\r\n\r\nThe code originally came from https://github.com/TellowKrinkle/dolphin/tree/Wayland', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4454781576/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T20:40:02Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15024, 'watchers_count': 15024, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3080, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3080, 'open_issues': 459, 'watchers': 15024, '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': 'teapotonmars', 'id': 15724613, 'node_id': 'MDQ6VXNlcjE1NzI0NjEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/15724613?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/teapotonmars', 'html_url': 'https://github.com/teapotonmars', 'followers_url': 'https://api.github.com/users/teapotonmars/followers', 'following_url': 'https://api.github.com/users/teapotonmars/following{/other_user}', 'gists_url': 'https://api.github.com/users/teapotonmars/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/teapotonmars/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/teapotonmars/subscriptions', 'organizations_url': 'https://api.github.com/users/teapotonmars/orgs', 'repos_url': 'https://api.github.com/users/teapotonmars/repos', 'events_url': 'https://api.github.com/users/teapotonmars/events{/privacy}', 'received_events_url': 'https://api.github.com/users/teapotonmars/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T19:53:04.709654 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14448, 'title': 'WiimoteAudioMixerV1', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4393685159', 'safe_author': True, 'body': 'Oh, I only just noticed, can you please clean up the secondary lines in the commit message, there\'s irrelevant stuff in there like, "Removed semicolon from PR version comment".\r\n\r\nEdit: I\'ve rebased this and edited the commit message.', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'Oh, I only just noticed, can you please clean up the secondary lines in the commit message, there\'s irrelevant stuff in there like, "Removed semicolon from PR version comment".'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'id': 4053888253, 'node_id': 'PR_kwDOALCn2M7JfaNH', 'number': 14448, 'title': 'WiimoteAudioMixerV1', 'user': {'login': 'TheShrubMaster', 'id': 35280298, 'node_id': 'MDQ6VXNlcjM1MjgwMjk4', 'avatar_url': 'https://avatars.githubusercontent.com/u/35280298?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TheShrubMaster', 'html_url': 'https://github.com/TheShrubMaster', 'followers_url': 'https://api.github.com/users/TheShrubMaster/followers', 'following_url': 'https://api.github.com/users/TheShrubMaster/following{/other_user}', 'gists_url': 'https://api.github.com/users/TheShrubMaster/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TheShrubMaster/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TheShrubMaster/subscriptions', 'organizations_url': 'https://api.github.com/users/TheShrubMaster/orgs', 'repos_url': 'https://api.github.com/users/TheShrubMaster/repos', 'events_url': 'https://api.github.com/users/TheShrubMaster/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TheShrubMaster/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2026-03-10T19:50:17Z', 'updated_at': '2026-05-14T19:52:36Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14448', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14448.patch', 'merged_at': None}, 'body': 'Added Individual Wiimote Audio for individual audio output support', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 2, 'eyes': 0}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4393685159', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14448#issuecomment-4393685159', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14448', 'id': 4393685159, 'node_id': 'IC_kwDOALCn2M8AAAABBeJQpw', '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-05-07T02:14:46Z', 'updated_at': '2026-05-14T19:53:03Z', 'body': 'Oh, I only just noticed, can you please clean up the secondary lines in the commit message, there\'s irrelevant stuff in there like, "Removed semicolon from PR version comment".\r\n\r\nEdit: I\'ve rebased this and edited the commit message.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4393685159/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T10:47:36Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15023, 'watchers_count': 15023, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3080, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3080, 'open_issues': 459, 'watchers': 15023, '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-05-14T13:38:11.062987 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'cobalt2727', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4451167763', 'safe_author': False, 'body': 'Would you mind at least linking to where the code originally came from?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 3, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-14T13:38:09Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4451167763', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4451167763', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4451167763, 'node_id': 'IC_kwDOALCn2M8AAAABCU9uEw', 'user': {'login': 'cobalt2727', 'id': 60624944, 'node_id': 'MDQ6VXNlcjYwNjI0OTQ0', 'avatar_url': 'https://avatars.githubusercontent.com/u/60624944?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cobalt2727', 'html_url': 'https://github.com/cobalt2727', 'followers_url': 'https://api.github.com/users/cobalt2727/followers', 'following_url': 'https://api.github.com/users/cobalt2727/following{/other_user}', 'gists_url': 'https://api.github.com/users/cobalt2727/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cobalt2727/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cobalt2727/subscriptions', 'organizations_url': 'https://api.github.com/users/cobalt2727/orgs', 'repos_url': 'https://api.github.com/users/cobalt2727/repos', 'events_url': 'https://api.github.com/users/cobalt2727/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cobalt2727/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T13:38:09Z', 'updated_at': '2026-05-14T13:38:09Z', 'body': 'Would you mind at least linking to where the code originally came from?', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4451167763/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-14T10:47:36Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15023, 'watchers_count': 15023, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15023, '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': 'cobalt2727', 'id': 60624944, 'node_id': 'MDQ6VXNlcjYwNjI0OTQ0', 'avatar_url': 'https://avatars.githubusercontent.com/u/60624944?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/cobalt2727', 'html_url': 'https://github.com/cobalt2727', 'followers_url': 'https://api.github.com/users/cobalt2727/followers', 'following_url': 'https://api.github.com/users/cobalt2727/following{/other_user}', 'gists_url': 'https://api.github.com/users/cobalt2727/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/cobalt2727/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/cobalt2727/subscriptions', 'organizations_url': 'https://api.github.com/users/cobalt2727/orgs', 'repos_url': 'https://api.github.com/users/cobalt2727/repos', 'events_url': 'https://api.github.com/users/cobalt2727/events{/privacy}', 'received_events_url': 'https://api.github.com/users/cobalt2727/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T01:22:02.880244 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4446523130', 'safe_author': False, 'body': 'the code was not vibe coded. and yes I did modify summary with ai to make it cleaner and more concise.', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-14T01:22:01Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4446523130', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4446523130', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4446523130, 'node_id': 'IC_kwDOALCn2M8AAAABCQiO-g', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T01:22:01Z', 'updated_at': '2026-05-14T01:22:01Z', 'body': 'the code was not vibe coded. and yes I did modify summary with ai to make it cleaner and more concise.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4446523130/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-13T20:34:52Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15022, 'watchers_count': 15022, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3079, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3079, 'open_issues': 459, 'watchers': 15022, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-14T01:05:05.808749 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'autofire372', 'action': 'created', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4446435214', 'safe_author': False, 'body': 'This has all the hallmarks of, at least, an AI-written summary. Was this vibe coded?', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 1, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-14T01:05:04Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4446435214', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4446435214', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4446435214, 'node_id': 'IC_kwDOALCn2M8AAAABCQc3jg', 'user': {'login': 'autofire372', 'id': 8486750, 'node_id': 'MDQ6VXNlcjg0ODY3NTA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8486750?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/autofire372', 'html_url': 'https://github.com/autofire372', 'followers_url': 'https://api.github.com/users/autofire372/followers', 'following_url': 'https://api.github.com/users/autofire372/following{/other_user}', 'gists_url': 'https://api.github.com/users/autofire372/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/autofire372/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/autofire372/subscriptions', 'organizations_url': 'https://api.github.com/users/autofire372/orgs', 'repos_url': 'https://api.github.com/users/autofire372/repos', 'events_url': 'https://api.github.com/users/autofire372/events{/privacy}', 'received_events_url': 'https://api.github.com/users/autofire372/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-14T01:05:03Z', 'updated_at': '2026-05-14T01:05:03Z', 'body': 'This has all the hallmarks of, at least, an AI-written summary. Was this vibe coded?', 'author_association': 'CONTRIBUTOR', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4446435214/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-13T20:34:52Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15022, 'watchers_count': 15022, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3079, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3079, 'open_issues': 459, 'watchers': 15022, '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': 'autofire372', 'id': 8486750, 'node_id': 'MDQ6VXNlcjg0ODY3NTA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8486750?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/autofire372', 'html_url': 'https://github.com/autofire372', 'followers_url': 'https://api.github.com/users/autofire372/followers', 'following_url': 'https://api.github.com/users/autofire372/following{/other_user}', 'gists_url': 'https://api.github.com/users/autofire372/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/autofire372/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/autofire372/subscriptions', 'organizations_url': 'https://api.github.com/users/autofire372/orgs', 'repos_url': 'https://api.github.com/users/autofire372/repos', 'events_url': 'https://api.github.com/users/autofire372/events{/privacy}', 'received_events_url': 'https://api.github.com/users/autofire372/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2026-05-13T18:48:18.868387 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'DacoTaco', 'action': 'created', 'id': 14651, 'title': 'fixes: make dolreader validate section addresses and sizes', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14651#issuecomment-4444247761', 'safe_author': True, 'body': '@LordNyriox : saw it, and updated the code :)', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14651', 'id': 4440290844, 'node_id': 'PR_kwDOALCn2M7bPTsR', 'number': 14651, 'title': 'fixes: make dolreader validate section addresses and sizes', 'user': {'login': 'DacoTaco', 'id': 12701306, 'node_id': 'MDQ6VXNlcjEyNzAxMzA2', 'avatar_url': 'https://avatars.githubusercontent.com/u/12701306?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/DacoTaco', 'html_url': 'https://github.com/DacoTaco', 'followers_url': 'https://api.github.com/users/DacoTaco/followers', 'following_url': 'https://api.github.com/users/DacoTaco/following{/other_user}', 'gists_url': 'https://api.github.com/users/DacoTaco/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/DacoTaco/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/DacoTaco/subscriptions', 'organizations_url': 'https://api.github.com/users/DacoTaco/orgs', 'repos_url': 'https://api.github.com/users/DacoTaco/repos', 'events_url': 'https://api.github.com/users/DacoTaco/events{/privacy}', 'received_events_url': 'https://api.github.com/users/DacoTaco/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2026-05-13T18:32:53Z', 'updated_at': '2026-05-13T18:48:16Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14651', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14651', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14651.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14651.patch', 'merged_at': None}, 'body': "IOS and IPL reject non-32byte aligned sections and with recent libogc changes we didn't notice it until it was to late. \r\nim going over existing tools and documentation so it never happens again :)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651/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/14651/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4444247761', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14651#issuecomment-4444247761', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14651', 'id': 4444247761, 'node_id': 'IC_kwDOALCn2M8AAAABCOXW0Q', 'user': {'login': 'DacoTaco', 'id': 12701306, 'node_id': 'MDQ6VXNlcjEyNzAxMzA2', 'avatar_url': 'https://avatars.githubusercontent.com/u/12701306?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/DacoTaco', 'html_url': 'https://github.com/DacoTaco', 'followers_url': 'https://api.github.com/users/DacoTaco/followers', 'following_url': 'https://api.github.com/users/DacoTaco/following{/other_user}', 'gists_url': 'https://api.github.com/users/DacoTaco/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/DacoTaco/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/DacoTaco/subscriptions', 'organizations_url': 'https://api.github.com/users/DacoTaco/orgs', 'repos_url': 'https://api.github.com/users/DacoTaco/repos', 'events_url': 'https://api.github.com/users/DacoTaco/events{/privacy}', 'received_events_url': 'https://api.github.com/users/DacoTaco/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-13T18:48:16Z', 'updated_at': '2026-05-13T18:48:16Z', 'body': '@LordNyriox : saw it, and updated the code :)', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4444247761/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-13T14:43:38Z', 'pushed_at': '2026-05-13T00:14:06Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 548698, 'stargazers_count': 15022, 'watchers_count': 15022, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3078, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3078, 'open_issues': 458, 'watchers': 15022, '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': 'DacoTaco', 'id': 12701306, 'node_id': 'MDQ6VXNlcjEyNzAxMzA2', 'avatar_url': 'https://avatars.githubusercontent.com/u/12701306?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/DacoTaco', 'html_url': 'https://github.com/DacoTaco', 'followers_url': 'https://api.github.com/users/DacoTaco/followers', 'following_url': 'https://api.github.com/users/DacoTaco/following{/other_user}', 'gists_url': 'https://api.github.com/users/DacoTaco/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/DacoTaco/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/DacoTaco/subscriptions', 'organizations_url': 'https://api.github.com/users/DacoTaco/orgs', 'repos_url': 'https://api.github.com/users/DacoTaco/repos', 'events_url': 'https://api.github.com/users/DacoTaco/events{/privacy}', 'received_events_url': 'https://api.github.com/users/DacoTaco/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-05-16T03:14:03.745367 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'synchronize', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'head_sha': '9dc790c34f673733c72e7e6796b2bf2c9e79c6da', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-16T03:13:39.218900 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'synchronize', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': 'a373233a417b186293470a151887848e92ba8354', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T22:17:10.899072 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'synchronize', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T22:08:50.768048 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'synchronize', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '54c8b156807621effa2c09b8c051d3f0653bbcc1', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T22:06:06.685909 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'opened', 'id': 14653, 'title': 'IOS/Network: reduce log verbosity of SO_EAGAIN to info level', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14653', 'head_ref_name': 'net_accept', 'safe_author': True, 'base_sha': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'head_sha': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T20:04:11.403024 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Linkinworm', 'action': 'synchronize', 'id': 14605, 'title': 'Android: GBA systems added', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14605', 'head_ref_name': 'Android_GBA_Enabler', 'safe_author': True, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': '09ea81120f3a696f2b0775bc55946870971de8cc', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T15:00:27.334606 {'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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'head_sha': 'febcd4abc44421925fad1416b759c7e124a65a48', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T08:47:10.619989 {'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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'head_sha': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-15T08:37:25.010163 {'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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'head_sha': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-14T22:36:51.443011 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'closed', 'id': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'head_ref_name': 'main', 'safe_author': True, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': 'adcfbda2a3436151771c80f654c5c490ad9478a3', 'merged': True, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-05-14T19:53:22.127944 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 14448, 'title': 'AudioCommon: Add individual Wiimote audio mixer', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'head_ref_name': 'main', 'safe_author': True, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': 'adcfbda2a3436151771c80f654c5c490ad9478a3', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-05-14T19:52:37.688481 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 14448, 'title': 'WiimoteAudioMixerV1', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448', 'head_ref_name': 'main', 'safe_author': True, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': 'adcfbda2a3436151771c80f654c5c490ad9478a3', 'merged': False, 'requested_reviewers': [{'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}], 'type': 'gh_pull_request'}
2026-05-14T03:53:37.911844 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'XenuIsWatching', 'action': 'synchronize', 'id': 14450, 'title': 'Common/MemArena: make shared memory name unique per DLL instance', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14450', 'head_ref_name': 'fix/memarena-unique-shm-name-per-dll', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '5ba32c94cad594391773e571d43a5ed89b8d6eec', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-14T00:41:09.430715 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'edited', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-14T00:40:10.886216 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'edited', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-14T00:11:01.763528 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'opened', 'id': 14652, 'title': 'Add Standalone Wayland Support', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'head_ref_name': 'merge-wayland', 'safe_author': False, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T20:45:24.279974 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Linkinworm', 'action': 'edited', 'id': 14605, 'title': 'Android: GBA systems added', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14605', 'head_ref_name': 'Android_GBA_Enabler', 'safe_author': True, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': '1c26fc5f477314d5f7f0d13a36f01cf5c0ff845f', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T18:47:10.961899 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Linkinworm', 'action': 'synchronize', 'id': 14605, 'title': 'Android: GBA systems added', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14605', 'head_ref_name': 'Android_GBA_Enabler', 'safe_author': True, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': '1c26fc5f477314d5f7f0d13a36f01cf5c0ff845f', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T18:46:32.417091 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'DacoTaco', 'action': 'synchronize', 'id': 14651, 'title': 'fixes: make dolreader validate section addresses and sizes', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14651', 'head_ref_name': 'fixes/dolalignment', 'safe_author': True, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '21d44f32bad3a384396efafc612d74ef6f5eff8e', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T18:32:55.313143 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'DacoTaco', 'action': 'opened', 'id': 14651, 'title': 'fixes: make dolreader validate section addresses and sizes', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14651', 'head_ref_name': 'fixes/dolalignment', 'safe_author': True, 'base_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'head_sha': '1389315544b14f652d6574f3706cfe58ce3d661a', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T15:18:49.311294 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'converted_to_draft', 'id': 14640, 'title': 'DSPAccelerator: fix overflow behavior', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14640', 'head_ref_name': 'dsp_accel', 'safe_author': True, 'base_sha': 'eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'head_sha': 'eb4fcb70af11ed573038057527644a143d57cbbf', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-13T00:14:08.620603 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'closed', 'id': 14635, 'title': 'Android: Move alert message log from Kotlin to C++', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14635', 'head_ref_name': 'android-panic-log-crash', 'safe_author': True, 'base_sha': 'd19952cc113940391ebcf264ced7ddc56310ba75', 'head_sha': '4470534dc594532714768586c2041d27476ae77f', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-12T20:06:39.660120 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tom-pratt', 'action': 'synchronize', 'id': 14647, 'title': 'Android netplay', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647', 'head_ref_name': 'netplay', 'safe_author': False, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-12T19:41:52.227399 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Linkinworm', 'action': 'synchronize', 'id': 14605, 'title': 'Android: GBA systems added', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14605', 'head_ref_name': 'Android_GBA_Enabler', 'safe_author': True, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': 'c40e014465fbee27ec47bb37c2fc33fb936aeec6', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2026-05-12T19:27:04.262230 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Linkinworm', 'action': 'synchronize', 'id': 14605, 'title': 'Android: GBA systems added', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14605', 'head_ref_name': 'Android_GBA_Enabler', 'safe_author': True, 'base_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'head_sha': '724285182f8b9431d084e33e6896d41e69d16cf8', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
Recent 'gh_pull_request_comment' events
2026-05-16T03:12:29.278898 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'hash': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251914053', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-16T03:05:06.458631 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'created', 'id': 14652, 'hash': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251904174', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-15T22:02:41.909978 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'created', 'id': 14652, 'hash': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251230494', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-15T09:40:53.119465 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 14652, 'hash': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3247106517', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-15T05:39:37.904195 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'created', 'id': 14652, 'hash': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3246099834', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-14T03:56:09.138447 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'XenuIsWatching', 'action': 'created', 'id': 14450, 'hash': '5ba32c94cad594391773e571d43a5ed89b8d6eec', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14450#discussion_r3238965241', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-13T13:48:39.191835 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234765954', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:48:39.160424 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234766911', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:48:39.083827 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234764817', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.740299 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234631684', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.732331 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234648485', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.581837 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234557448', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.552926 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234596298', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.525358 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234446275', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.473848 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234567927', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.395134 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234454954', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.386577 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234417400', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.385868 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234426394', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.352992 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234547814', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-13T13:39:38.317332 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 14647, 'hash': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234411791', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2026-05-11T21:45:53.365279 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'created', 'id': 14506, 'hash': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222339622', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-11T21:42:47.547691 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'edited', 'id': 14506, 'hash': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222317622', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-11T21:41:33.075081 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'edited', 'id': 14506, 'hash': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222317622', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-11T21:41:21.490986 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'created', 'id': 14506, 'hash': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222317622', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2026-05-11T21:37:33.060312 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'created', 'id': 14506, 'hash': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222300947', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
Recent 'gh_pull_request_review' events
2026-05-17T17:12:06.922084 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 13216, 'pr_title': 'Core: Implement automatic symbol demangling', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13216#pullrequestreview-4305924263', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-17T11:50:03.893863 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 14653, 'pr_title': 'IOS/Network: reduce log verbosity of SO_EAGAIN to info level', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14653#pullrequestreview-4305376172', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-16T03:12:29.209379 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'submitted', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302548791', 'comments': [{'id': 3251914053, 'node_id': 'PRRC_kwDOALCn2M7B1EVF', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053', 'pull_request_review_id': 4302548791, 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'position': 5, 'original_position': 5, 'commit_id': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Oh wait, your right. Not sure why I did that. Had lots of tabs open when editing files so I guess I was looking at the wrong repo.', 'created_at': '2026-05-16T03:12:27Z', 'updated_at': '2026-05-16T03:12:27Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251914053', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251914053'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3246099834}], 'type': 'gh_pull_request_review'}
2026-05-16T03:05:06.457849 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'submitted', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302539220', 'comments': [{'id': 3251904174, 'node_id': 'PRRC_kwDOALCn2M7B1B6u', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174', 'pull_request_review_id': 4302539220, 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'position': 5, 'original_position': 5, 'commit_id': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'What strings do other wayland variants use here?', 'created_at': '2026-05-16T03:05:04Z', 'updated_at': '2026-05-16T03:05:04Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251904174', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251904174'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3246099834}], 'type': 'gh_pull_request_review'}
2026-05-15T22:02:41.907869 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'BeezBumba', 'action': 'submitted', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4301657568', 'comments': [{'id': 3251230494, 'node_id': 'PRRC_kwDOALCn2M7Bydce', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494', 'pull_request_review_id': 4301657568, 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'position': 5, 'original_position': 5, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'so that it worked with different wayland variants. Do you want me to remove that?', 'created_at': '2026-05-15T22:02:39Z', 'updated_at': '2026-05-15T22:02:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251230494', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251230494'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3246099834}], 'type': 'gh_pull_request_review'}
2026-05-15T09:40:53.117622 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4296878043', 'comments': [{'id': 3247106517, 'node_id': 'PRRC_kwDOALCn2M7BiunV', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3247106517', 'pull_request_review_id': 4296878043, 'diff_hunk': '@@ -514,6 +515,11 @@ if(ENABLE_X11)\n endif()\n endif()\n \n+if(ENABLE_WAYLAND)\n+ find_package(Wayland REQUIRED)', 'path': 'CMakeLists.txt', 'position': 13, 'original_position': 13, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', '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 `REQUIRED` keyword here for `ENABLE_WAYLAND` doesn't match the behavior of `ENABLE_X11`, which just gives a warning if X11 cannot be found. Could you please make the behavior consistent between the two? ", 'created_at': '2026-05-15T09:08:32Z', 'updated_at': '2026-05-15T09:40:51Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3247106517', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3247106517'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3247106517'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3247106517/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-15T05:39:37.902475 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'submitted', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4295636355', 'comments': [{'id': 3246099834, 'node_id': 'PRRC_kwDOALCn2M7Be416', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834', 'pull_request_review_id': 4295636355, 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'position': 5, 'original_position': 5, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Why?', 'created_at': '2026-05-15T05:32:13Z', 'updated_at': '2026-05-15T05:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3246099834', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3246099834'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-15T05:39:37.612071 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'TellowKrinkle', 'action': 'edited', 'pr_id': 14652, 'pr_title': 'Add Standalone Wayland Support', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4295636355', 'comments': [{'id': 3246099834, 'node_id': 'PRRC_kwDOALCn2M7Be416', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834', 'pull_request_review_id': 4295636355, 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'position': 5, 'original_position': 5, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Why?', 'created_at': '2026-05-15T05:32:13Z', 'updated_at': '2026-05-15T05:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3246099834', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3246099834'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3246099834/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-14T03:56:09.137497 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'XenuIsWatching', 'action': 'submitted', 'pr_id': 14450, 'pr_title': 'Common/MemArena: make shared memory name unique per DLL instance', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14450#pullrequestreview-4287133787', 'comments': [{'id': 3238965241, 'node_id': 'PRRC_kwDOALCn2M7BDq_5', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3238965241', 'pull_request_review_id': 4287133787, 'diff_hunk': '@@ -120,7 +120,14 @@ static DWORD GetLowDWORD(u64 value)\n \n void MemArena::GrabSHMSegment(size_t size, std::string_view base_name)\n {\n- const std::string name = fmt::format("{}.{}", base_name, GetCurrentProcessId());\n+ // Include the address of a static local as a per-DLL-instance unique ID.\n+ // When multiple copies of this DLL are loaded in the same process they share\n+ // the same PID, so we need an additional discriminator. Each copy is mapped\n+ // at a different base address, so s_dll_id\'s address (and thus its value) is\n+ // unique per loaded instance.\n+ static const uintptr_t s_dll_id = reinterpret_cast<uintptr_t>(&s_dll_id);\n+ const std::string name =\n+ fmt::format("{}.{}.{:x}", base_name, GetCurrentProcessId(), s_dll_id);\n m_memory_handle =\n CreateFileMapping(INVALID_HANDLE_VALUE, nullptr, PAGE_READWRITE, GetHighDWORD(size),', 'path': 'Source/Core/Common/MemArenaWin.cpp', 'position': 9, 'original_position': 14, 'commit_id': '5ba32c94cad594391773e571d43a5ed89b8d6eec', 'user': {'login': 'XenuIsWatching', 'id': 6809037, 'node_id': 'MDQ6VXNlcjY4MDkwMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6809037?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/XenuIsWatching', 'html_url': 'https://github.com/XenuIsWatching', 'followers_url': 'https://api.github.com/users/XenuIsWatching/followers', 'following_url': 'https://api.github.com/users/XenuIsWatching/following{/other_user}', 'gists_url': 'https://api.github.com/users/XenuIsWatching/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/XenuIsWatching/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/XenuIsWatching/subscriptions', 'organizations_url': 'https://api.github.com/users/XenuIsWatching/orgs', 'repos_url': 'https://api.github.com/users/XenuIsWatching/repos', 'events_url': 'https://api.github.com/users/XenuIsWatching/events{/privacy}', 'received_events_url': 'https://api.github.com/users/XenuIsWatching/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'ok... anything else you guys need? this is all ready for review', 'created_at': '2026-05-14T03:56:07Z', 'updated_at': '2026-05-14T03:56:07Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14450#discussion_r3238965241', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14450', 'author_association': 'NONE', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3238965241'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14450#discussion_r3238965241'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14450'}}, 'original_commit_id': '7be243a8b4fcaefc88ed59d8bfc3f875f5b440dd', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3238965241/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 2921186977}], 'type': 'gh_pull_request_review'}
2026-05-13T23:56:01.268527 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14650, 'pr_title': 'Externals: Update SDL to release-3.4.8', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14650#pullrequestreview-4286186215', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-13T13:48:39.081886 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14647, 'pr_title': 'Android netplay', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#pullrequestreview-4282243061', 'comments': [{'id': 3234764817, 'node_id': 'PRRC_kwDOALCn2M7AzpgR', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234764817', 'pull_request_review_id': 4282243061, 'diff_hunk': '@@ -0,0 +1,261 @@\n+// Copyright 2003 Dolphin Emulator Project', 'path': 'Source/Android/jni/NetPlay/Netplay.cpp', 'position': 1, 'original_position': 1, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n// Copyright 2026 Dolphin Emulator Project\r\n```', 'created_at': '2026-05-13T13:48:09Z', 'updated_at': '2026-05-13T13:48:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234764817', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234764817'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234764817'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234764817/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234765954, 'node_id': 'PRRC_kwDOALCn2M7AzpyC', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234765954', 'pull_request_review_id': 4282243061, 'diff_hunk': '@@ -0,0 +1,75 @@\n+#pragma once', 'path': 'Source/Android/jni/NetPlay/NetPlayUICallbacks.h', 'position': 1, 'original_position': 1, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': 'Missing copyright header.', 'created_at': '2026-05-13T13:48:19Z', 'updated_at': '2026-05-13T13:48:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234765954', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234765954'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234765954'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234765954/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234766911, 'node_id': 'PRRC_kwDOALCn2M7AzqA_', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234766911', 'pull_request_review_id': 4282243061, 'diff_hunk': '@@ -0,0 +1,455 @@\n+// Copyright 2003 Dolphin Emulator Project', 'path': 'Source/Android/jni/NetPlay/NetPlayUICallbacks.cpp', 'position': 1, 'original_position': 1, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\n// Copyright 2026 Dolphin Emulator Project\r\n```', 'created_at': '2026-05-13T13:48:27Z', 'updated_at': '2026-05-13T13:48:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234766911', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234766911'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234766911'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234766911/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-13T13:39:38.170852 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 14647, 'pr_title': 'Android netplay', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14647#pullrequestreview-4281825935', 'comments': [{'id': 3234411791, 'node_id': 'PRRC_kwDOALCn2M7AyTUP', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234411791', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,1346 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.netplay.ui\n+\n+import android.content.Intent\n+import android.content.res.Configuration\n+import androidx.compose.foundation.layout.Arrangement\n+import androidx.compose.foundation.layout.Box\n+import androidx.compose.foundation.layout.BoxWithConstraints\n+import androidx.compose.foundation.layout.Column\n+import androidx.compose.foundation.layout.PaddingValues\n+import androidx.compose.foundation.layout.Row\n+import androidx.compose.foundation.layout.Spacer\n+import androidx.compose.foundation.layout.aspectRatio\n+import androidx.compose.foundation.layout.consumeWindowInsets\n+import androidx.compose.foundation.layout.fillMaxHeight\n+import androidx.compose.foundation.layout.fillMaxSize\n+import androidx.compose.foundation.layout.fillMaxWidth\n+import androidx.compose.foundation.layout.height\n+import androidx.compose.foundation.layout.padding\n+import androidx.compose.foundation.layout.size\n+import androidx.compose.foundation.layout.statusBarsPadding\n+import androidx.compose.foundation.layout.width\n+import androidx.compose.foundation.lazy.LazyColumn\n+import androidx.compose.foundation.lazy.LazyListScope\n+import androidx.compose.foundation.lazy.grid.GridCells\n+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid\n+import androidx.compose.foundation.lazy.grid.items\n+import androidx.compose.foundation.rememberScrollState\n+import androidx.compose.foundation.shape.RoundedCornerShape\n+import androidx.compose.foundation.text.KeyboardActions\n+import androidx.compose.foundation.text.KeyboardOptions\n+import androidx.compose.foundation.verticalScroll\n+import androidx.compose.material.icons.Icons\n+import androidx.compose.material.icons.automirrored.filled.ArrowBack\n+import androidx.compose.material.icons.automirrored.filled.Send\n+import androidx.compose.material.icons.filled.Add\n+import androidx.compose.material.icons.filled.Refresh\n+import androidx.compose.material.icons.filled.Remove\n+import androidx.compose.material.icons.filled.Share\n+import androidx.compose.material3.AlertDialog\n+import androidx.compose.material3.Button\n+import androidx.compose.material3.Card\n+import androidx.compose.material3.CircularProgressIndicator\n+import androidx.compose.material3.DropdownMenuItem\n+import androidx.compose.material3.ExperimentalMaterial3Api\n+import androidx.compose.material3.ExposedDropdownMenuBox\n+import androidx.compose.material3.ExposedDropdownMenuDefaults\n+import androidx.compose.material3.ExtendedFloatingActionButton\n+import androidx.compose.material3.HorizontalDivider\n+import androidx.compose.material3.Icon\n+import androidx.compose.material3.IconButton\n+import androidx.compose.material3.LinearProgressIndicator\n+import androidx.compose.material3.LocalTextStyle\n+import androidx.compose.material3.MaterialTheme\n+import androidx.compose.material3.MediumTopAppBar\n+import androidx.compose.material3.MenuAnchorType\n+import androidx.compose.material3.ModalBottomSheet\n+import androidx.compose.material3.OutlinedTextField\n+import androidx.compose.material3.Scaffold\n+import androidx.compose.material3.SheetValue\n+import androidx.compose.material3.Text\n+import androidx.compose.material3.TextButton\n+import androidx.compose.runtime.Composable\n+import androidx.compose.runtime.LaunchedEffect\n+import androidx.compose.runtime.getValue\n+import androidx.compose.runtime.mutableIntStateOf\n+import androidx.compose.runtime.mutableStateOf\n+import androidx.compose.runtime.remember\n+import androidx.compose.runtime.saveable.rememberSaveable\n+import androidx.compose.runtime.setValue\n+import androidx.compose.ui.Alignment\n+import androidx.compose.ui.Modifier\n+import androidx.compose.ui.layout.ContentScale\n+import androidx.compose.ui.layout.onGloballyPositioned\n+import androidx.compose.ui.platform.LocalConfiguration\n+import androidx.compose.ui.platform.LocalContext\n+import androidx.compose.ui.platform.LocalDensity\n+import androidx.compose.ui.res.stringResource\n+import androidx.compose.ui.text.TextRange\n+import androidx.compose.ui.text.font.FontWeight\n+import androidx.compose.ui.text.input.ImeAction\n+import androidx.compose.ui.text.input.KeyboardType\n+import androidx.compose.ui.text.input.TextFieldValue\n+import androidx.compose.ui.text.style.TextAlign\n+import androidx.compose.ui.text.style.TextOverflow\n+import androidx.compose.ui.tooling.preview.Preview\n+import androidx.compose.ui.unit.dp\n+import androidx.compose.ui.unit.sp\n+import coil.compose.AsyncImage\n+import coil.request.ImageRequest\n+import kotlinx.coroutines.flow.Flow\n+import kotlinx.coroutines.flow.emptyFlow\n+import org.dolphinemu.dolphinemu.R\n+import org.dolphinemu.dolphinemu.features.netplay.model.GameDigestProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinAddress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinInfoType\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetplayMessage\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetworkMode\n+import org.dolphinemu.dolphinemu.features.netplay.model.Player\n+import org.dolphinemu.dolphinemu.features.netplay.model.SaveTransferProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.TraversalState\n+import org.dolphinemu.dolphinemu.model.GameFile\n+import org.dolphinemu.dolphinemu.ui.theme.DolphinTheme\n+import org.dolphinemu.dolphinemu.ui.theme.MenuSpacer\n+import org.dolphinemu.dolphinemu.ui.theme.OutlinedBox\n+import org.dolphinemu.dolphinemu.ui.theme.PreviewTheme\n+import org.dolphinemu.dolphinemu.ui.theme.ReadOnlyTextField\n+import org.dolphinemu.dolphinemu.ui.theme.rememberSheetState\n+import org.dolphinemu.dolphinemu.utils.CoilUtils\n+import java.util.Locale\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+fun NetplayScreen(\n+ onBackClicked: () -> Unit,\n+ isHosting: Boolean,\n+ connectionLost: Flow<Unit>,\n+ fatalTraversalError: Flow<TraversalState.Failure>,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ game: String,\n+ onStartGame: () -> Unit,\n+ onGameSelected: (GameFile) -> Unit,\n+ gameFiles: List<GameFile>,\n+ notAllPlayersHaveGame: Flow<Unit>,\n+ onConfirmStartGame: () -> Unit,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ players: List<Player>,\n+ saveTransferProgress: SaveTransferProgress?,\n+ gameDigestProgress: GameDigestProgress?,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+) {\n+ Scaffold(\n+ topBar = {\n+ MediumTopAppBar(\n+ title = { Text(stringResource(R.string.netplay_title)) },\n+ navigationIcon = {\n+ IconButton(onClick = onBackClicked) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.ArrowBack,\n+ contentDescription = "Back",\n+ )\n+ }\n+ },\n+ )\n+ },\n+ floatingActionButton = {\n+ if (isHosting) {\n+ ExtendedFloatingActionButton(onClick = onStartGame) {\n+ Text(stringResource(R.string.netplay_start))\n+ }\n+ }\n+ },\n+ ) { innerPadding ->\n+ val modifier = Modifier\n+ .fillMaxSize()\n+ .consumeWindowInsets(innerPadding)\n+ .padding(innerPadding)\n+\n+ // State which must live above the landscape/portrait split.\n+ var showChat by rememberSaveable { mutableStateOf(false) }\n+ var showGamePicker by rememberSaveable { mutableStateOf(false) }\n+ var selectedJoinInfoType by rememberSaveable {\n+ mutableStateOf(joinAddresses.keys.firstOrNull() ?: JoinInfoType.EXTERNAL)\n+ }\n+\n+ if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE) {', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/ui/NetplayScreen.kt', 'position': 174, 'original_position': 174, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': "Instead of checking the orientation, I think it would make sense to use the landscape layout if the screen width is high enough, and otherwise use the portrait layout. There may be some screens out there that aren't very wide despite being wider than they're tall.", 'created_at': '2026-05-13T12:57:59Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234411791', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234411791'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234411791'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234411791/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234417400, 'node_id': 'PRRC_kwDOALCn2M7AyUr4', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234417400', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,38 @@\n+// Copyright 2003 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/NetplayManager.kt', 'position': 2, 'original_position': 2, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': "For Kotlin files, we use a header that looks like this:\r\n\r\n```suggestion\r\n// SPDX-License-Identifier: GPL-2.0-or-later\r\n```\r\n\r\nSome existing files aren't consistent about it, but let's do it this way for all new files.", 'created_at': '2026-05-13T12:58:47Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234417400', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234417400'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234417400'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234417400/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234426394, 'node_id': 'PRRC_kwDOALCn2M7AyW4a', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234426394', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,1346 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.netplay.ui\n+\n+import android.content.Intent\n+import android.content.res.Configuration\n+import androidx.compose.foundation.layout.Arrangement\n+import androidx.compose.foundation.layout.Box\n+import androidx.compose.foundation.layout.BoxWithConstraints\n+import androidx.compose.foundation.layout.Column\n+import androidx.compose.foundation.layout.PaddingValues\n+import androidx.compose.foundation.layout.Row\n+import androidx.compose.foundation.layout.Spacer\n+import androidx.compose.foundation.layout.aspectRatio\n+import androidx.compose.foundation.layout.consumeWindowInsets\n+import androidx.compose.foundation.layout.fillMaxHeight\n+import androidx.compose.foundation.layout.fillMaxSize\n+import androidx.compose.foundation.layout.fillMaxWidth\n+import androidx.compose.foundation.layout.height\n+import androidx.compose.foundation.layout.padding\n+import androidx.compose.foundation.layout.size\n+import androidx.compose.foundation.layout.statusBarsPadding\n+import androidx.compose.foundation.layout.width\n+import androidx.compose.foundation.lazy.LazyColumn\n+import androidx.compose.foundation.lazy.LazyListScope\n+import androidx.compose.foundation.lazy.grid.GridCells\n+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid\n+import androidx.compose.foundation.lazy.grid.items\n+import androidx.compose.foundation.rememberScrollState\n+import androidx.compose.foundation.shape.RoundedCornerShape\n+import androidx.compose.foundation.text.KeyboardActions\n+import androidx.compose.foundation.text.KeyboardOptions\n+import androidx.compose.foundation.verticalScroll\n+import androidx.compose.material.icons.Icons\n+import androidx.compose.material.icons.automirrored.filled.ArrowBack\n+import androidx.compose.material.icons.automirrored.filled.Send\n+import androidx.compose.material.icons.filled.Add\n+import androidx.compose.material.icons.filled.Refresh\n+import androidx.compose.material.icons.filled.Remove\n+import androidx.compose.material.icons.filled.Share\n+import androidx.compose.material3.AlertDialog\n+import androidx.compose.material3.Button\n+import androidx.compose.material3.Card\n+import androidx.compose.material3.CircularProgressIndicator\n+import androidx.compose.material3.DropdownMenuItem\n+import androidx.compose.material3.ExperimentalMaterial3Api\n+import androidx.compose.material3.ExposedDropdownMenuBox\n+import androidx.compose.material3.ExposedDropdownMenuDefaults\n+import androidx.compose.material3.ExtendedFloatingActionButton\n+import androidx.compose.material3.HorizontalDivider\n+import androidx.compose.material3.Icon\n+import androidx.compose.material3.IconButton\n+import androidx.compose.material3.LinearProgressIndicator\n+import androidx.compose.material3.LocalTextStyle\n+import androidx.compose.material3.MaterialTheme\n+import androidx.compose.material3.MediumTopAppBar\n+import androidx.compose.material3.MenuAnchorType\n+import androidx.compose.material3.ModalBottomSheet\n+import androidx.compose.material3.OutlinedTextField\n+import androidx.compose.material3.Scaffold\n+import androidx.compose.material3.SheetValue\n+import androidx.compose.material3.Text\n+import androidx.compose.material3.TextButton\n+import androidx.compose.runtime.Composable\n+import androidx.compose.runtime.LaunchedEffect\n+import androidx.compose.runtime.getValue\n+import androidx.compose.runtime.mutableIntStateOf\n+import androidx.compose.runtime.mutableStateOf\n+import androidx.compose.runtime.remember\n+import androidx.compose.runtime.saveable.rememberSaveable\n+import androidx.compose.runtime.setValue\n+import androidx.compose.ui.Alignment\n+import androidx.compose.ui.Modifier\n+import androidx.compose.ui.layout.ContentScale\n+import androidx.compose.ui.layout.onGloballyPositioned\n+import androidx.compose.ui.platform.LocalConfiguration\n+import androidx.compose.ui.platform.LocalContext\n+import androidx.compose.ui.platform.LocalDensity\n+import androidx.compose.ui.res.stringResource\n+import androidx.compose.ui.text.TextRange\n+import androidx.compose.ui.text.font.FontWeight\n+import androidx.compose.ui.text.input.ImeAction\n+import androidx.compose.ui.text.input.KeyboardType\n+import androidx.compose.ui.text.input.TextFieldValue\n+import androidx.compose.ui.text.style.TextAlign\n+import androidx.compose.ui.text.style.TextOverflow\n+import androidx.compose.ui.tooling.preview.Preview\n+import androidx.compose.ui.unit.dp\n+import androidx.compose.ui.unit.sp\n+import coil.compose.AsyncImage\n+import coil.request.ImageRequest\n+import kotlinx.coroutines.flow.Flow\n+import kotlinx.coroutines.flow.emptyFlow\n+import org.dolphinemu.dolphinemu.R\n+import org.dolphinemu.dolphinemu.features.netplay.model.GameDigestProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinAddress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinInfoType\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetplayMessage\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetworkMode\n+import org.dolphinemu.dolphinemu.features.netplay.model.Player\n+import org.dolphinemu.dolphinemu.features.netplay.model.SaveTransferProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.TraversalState\n+import org.dolphinemu.dolphinemu.model.GameFile\n+import org.dolphinemu.dolphinemu.ui.theme.DolphinTheme\n+import org.dolphinemu.dolphinemu.ui.theme.MenuSpacer\n+import org.dolphinemu.dolphinemu.ui.theme.OutlinedBox\n+import org.dolphinemu.dolphinemu.ui.theme.PreviewTheme\n+import org.dolphinemu.dolphinemu.ui.theme.ReadOnlyTextField\n+import org.dolphinemu.dolphinemu.ui.theme.rememberSheetState\n+import org.dolphinemu.dolphinemu.utils.CoilUtils\n+import java.util.Locale\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+fun NetplayScreen(\n+ onBackClicked: () -> Unit,\n+ isHosting: Boolean,\n+ connectionLost: Flow<Unit>,\n+ fatalTraversalError: Flow<TraversalState.Failure>,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ game: String,\n+ onStartGame: () -> Unit,\n+ onGameSelected: (GameFile) -> Unit,\n+ gameFiles: List<GameFile>,\n+ notAllPlayersHaveGame: Flow<Unit>,\n+ onConfirmStartGame: () -> Unit,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ players: List<Player>,\n+ saveTransferProgress: SaveTransferProgress?,\n+ gameDigestProgress: GameDigestProgress?,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+) {\n+ Scaffold(\n+ topBar = {\n+ MediumTopAppBar(\n+ title = { Text(stringResource(R.string.netplay_title)) },\n+ navigationIcon = {\n+ IconButton(onClick = onBackClicked) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.ArrowBack,\n+ contentDescription = "Back",\n+ )\n+ }\n+ },\n+ )\n+ },\n+ floatingActionButton = {\n+ if (isHosting) {\n+ ExtendedFloatingActionButton(onClick = onStartGame) {\n+ Text(stringResource(R.string.netplay_start))\n+ }\n+ }\n+ },\n+ ) { innerPadding ->\n+ val modifier = Modifier\n+ .fillMaxSize()\n+ .consumeWindowInsets(innerPadding)\n+ .padding(innerPadding)\n+\n+ // State which must live above the landscape/portrait split.\n+ var showChat by rememberSaveable { mutableStateOf(false) }\n+ var showGamePicker by rememberSaveable { mutableStateOf(false) }\n+ var selectedJoinInfoType by rememberSaveable {\n+ mutableStateOf(joinAddresses.keys.firstOrNull() ?: JoinInfoType.EXTERNAL)\n+ }\n+\n+ if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE) {\n+ LandscapeContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ } else {\n+ PortraitContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ }\n+\n+ var showConnectionLostDialog by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ connectionLost.collect { showConnectionLostDialog = true }\n+ }\n+\n+ var traversalError by rememberSaveable { mutableStateOf<TraversalState.Failure?>(null) }\n+ LaunchedEffect(Unit) {\n+ fatalTraversalError.collect { traversalError = it }\n+ }\n+\n+ var showNotAllPlayersHaveGame by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ notAllPlayersHaveGame.collect { showNotAllPlayersHaveGame = true }\n+ }\n+\n+ var dismissSaveTransferProgressDialog by rememberSaveable { mutableStateOf(false) }\n+ if (saveTransferProgress == null) {\n+ dismissSaveTransferProgressDialog = false\n+ }\n+\n+ var dismissGameDigestDialog by rememberSaveable { mutableStateOf(false) }\n+ if (gameDigestProgress == null) {\n+ dismissGameDigestDialog = false\n+ }\n+\n+ val currentTraversalError = traversalError\n+\n+ when {\n+ showConnectionLostDialog -> {\n+ AlertDialog(\n+ text = { Text(stringResource(R.string.netplay_connection_lost)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ currentTraversalError != null -> {\n+ AlertDialog(\n+ text = { Text(currentTraversalError.message(LocalContext.current)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ saveTransferProgress != null && !dismissSaveTransferProgressDialog -> {\n+ SaveTransferProgressDialog(\n+ saveTransferProgress = saveTransferProgress,\n+ onDismiss = { dismissSaveTransferProgressDialog = true },\n+ )\n+ }\n+\n+ gameDigestProgress != null && !dismissGameDigestDialog -> {\n+ GameDigestProgressDialog(\n+ gameDigestProgress = gameDigestProgress,\n+ onDismiss = { dismissGameDigestDialog = true },\n+ )\n+ }\n+\n+ showNotAllPlayersHaveGame -> {\n+ AlertDialog(\n+ title = { Text(stringResource(R.string.netplay_start_warning_title)) },\n+ text = { Text(stringResource(R.string.netplay_start_warning_not_all_players_have_game)) },\n+ confirmButton = {\n+ TextButton(onClick = {\n+ showNotAllPlayersHaveGame = false\n+ onConfirmStartGame()\n+ }) {\n+ Text(stringResource(R.string.yes))\n+ }\n+ },\n+ dismissButton = {\n+ TextButton(onClick = { showNotAllPlayersHaveGame = false }) {\n+ Text(stringResource(R.string.no))\n+ }\n+ },\n+ onDismissRequest = { showNotAllPlayersHaveGame = false },\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PortraitContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Column(\n+ modifier = modifier\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .height(200.dp)\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ )\n+\n+ MenuSpacer()\n+\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding),\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun LandscapeContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Row(\n+ modifier = modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .weight(1f)\n+ .fillMaxHeight()\n+ )\n+\n+ Spacer(modifier = Modifier.width(16.dp))\n+\n+ Column(\n+ modifier = Modifier\n+ .weight(1f)\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PLayersAndSettings(', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/ui/NetplayScreen.kt', 'position': 461, 'original_position': 461, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '```suggestion\r\nprivate fun PlayersAndSettings(\r\n```', 'created_at': '2026-05-13T13:00:02Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234426394', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234426394'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234426394'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234426394/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234446275, 'node_id': 'PRRC_kwDOALCn2M7AybvD', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234446275', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,1346 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.netplay.ui\n+\n+import android.content.Intent\n+import android.content.res.Configuration\n+import androidx.compose.foundation.layout.Arrangement\n+import androidx.compose.foundation.layout.Box\n+import androidx.compose.foundation.layout.BoxWithConstraints\n+import androidx.compose.foundation.layout.Column\n+import androidx.compose.foundation.layout.PaddingValues\n+import androidx.compose.foundation.layout.Row\n+import androidx.compose.foundation.layout.Spacer\n+import androidx.compose.foundation.layout.aspectRatio\n+import androidx.compose.foundation.layout.consumeWindowInsets\n+import androidx.compose.foundation.layout.fillMaxHeight\n+import androidx.compose.foundation.layout.fillMaxSize\n+import androidx.compose.foundation.layout.fillMaxWidth\n+import androidx.compose.foundation.layout.height\n+import androidx.compose.foundation.layout.padding\n+import androidx.compose.foundation.layout.size\n+import androidx.compose.foundation.layout.statusBarsPadding\n+import androidx.compose.foundation.layout.width\n+import androidx.compose.foundation.lazy.LazyColumn\n+import androidx.compose.foundation.lazy.LazyListScope\n+import androidx.compose.foundation.lazy.grid.GridCells\n+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid\n+import androidx.compose.foundation.lazy.grid.items\n+import androidx.compose.foundation.rememberScrollState\n+import androidx.compose.foundation.shape.RoundedCornerShape\n+import androidx.compose.foundation.text.KeyboardActions\n+import androidx.compose.foundation.text.KeyboardOptions\n+import androidx.compose.foundation.verticalScroll\n+import androidx.compose.material.icons.Icons\n+import androidx.compose.material.icons.automirrored.filled.ArrowBack\n+import androidx.compose.material.icons.automirrored.filled.Send\n+import androidx.compose.material.icons.filled.Add\n+import androidx.compose.material.icons.filled.Refresh\n+import androidx.compose.material.icons.filled.Remove\n+import androidx.compose.material.icons.filled.Share\n+import androidx.compose.material3.AlertDialog\n+import androidx.compose.material3.Button\n+import androidx.compose.material3.Card\n+import androidx.compose.material3.CircularProgressIndicator\n+import androidx.compose.material3.DropdownMenuItem\n+import androidx.compose.material3.ExperimentalMaterial3Api\n+import androidx.compose.material3.ExposedDropdownMenuBox\n+import androidx.compose.material3.ExposedDropdownMenuDefaults\n+import androidx.compose.material3.ExtendedFloatingActionButton\n+import androidx.compose.material3.HorizontalDivider\n+import androidx.compose.material3.Icon\n+import androidx.compose.material3.IconButton\n+import androidx.compose.material3.LinearProgressIndicator\n+import androidx.compose.material3.LocalTextStyle\n+import androidx.compose.material3.MaterialTheme\n+import androidx.compose.material3.MediumTopAppBar\n+import androidx.compose.material3.MenuAnchorType\n+import androidx.compose.material3.ModalBottomSheet\n+import androidx.compose.material3.OutlinedTextField\n+import androidx.compose.material3.Scaffold\n+import androidx.compose.material3.SheetValue\n+import androidx.compose.material3.Text\n+import androidx.compose.material3.TextButton\n+import androidx.compose.runtime.Composable\n+import androidx.compose.runtime.LaunchedEffect\n+import androidx.compose.runtime.getValue\n+import androidx.compose.runtime.mutableIntStateOf\n+import androidx.compose.runtime.mutableStateOf\n+import androidx.compose.runtime.remember\n+import androidx.compose.runtime.saveable.rememberSaveable\n+import androidx.compose.runtime.setValue\n+import androidx.compose.ui.Alignment\n+import androidx.compose.ui.Modifier\n+import androidx.compose.ui.layout.ContentScale\n+import androidx.compose.ui.layout.onGloballyPositioned\n+import androidx.compose.ui.platform.LocalConfiguration\n+import androidx.compose.ui.platform.LocalContext\n+import androidx.compose.ui.platform.LocalDensity\n+import androidx.compose.ui.res.stringResource\n+import androidx.compose.ui.text.TextRange\n+import androidx.compose.ui.text.font.FontWeight\n+import androidx.compose.ui.text.input.ImeAction\n+import androidx.compose.ui.text.input.KeyboardType\n+import androidx.compose.ui.text.input.TextFieldValue\n+import androidx.compose.ui.text.style.TextAlign\n+import androidx.compose.ui.text.style.TextOverflow\n+import androidx.compose.ui.tooling.preview.Preview\n+import androidx.compose.ui.unit.dp\n+import androidx.compose.ui.unit.sp\n+import coil.compose.AsyncImage\n+import coil.request.ImageRequest\n+import kotlinx.coroutines.flow.Flow\n+import kotlinx.coroutines.flow.emptyFlow\n+import org.dolphinemu.dolphinemu.R\n+import org.dolphinemu.dolphinemu.features.netplay.model.GameDigestProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinAddress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinInfoType\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetplayMessage\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetworkMode\n+import org.dolphinemu.dolphinemu.features.netplay.model.Player\n+import org.dolphinemu.dolphinemu.features.netplay.model.SaveTransferProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.TraversalState\n+import org.dolphinemu.dolphinemu.model.GameFile\n+import org.dolphinemu.dolphinemu.ui.theme.DolphinTheme\n+import org.dolphinemu.dolphinemu.ui.theme.MenuSpacer\n+import org.dolphinemu.dolphinemu.ui.theme.OutlinedBox\n+import org.dolphinemu.dolphinemu.ui.theme.PreviewTheme\n+import org.dolphinemu.dolphinemu.ui.theme.ReadOnlyTextField\n+import org.dolphinemu.dolphinemu.ui.theme.rememberSheetState\n+import org.dolphinemu.dolphinemu.utils.CoilUtils\n+import java.util.Locale\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+fun NetplayScreen(\n+ onBackClicked: () -> Unit,\n+ isHosting: Boolean,\n+ connectionLost: Flow<Unit>,\n+ fatalTraversalError: Flow<TraversalState.Failure>,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ game: String,\n+ onStartGame: () -> Unit,\n+ onGameSelected: (GameFile) -> Unit,\n+ gameFiles: List<GameFile>,\n+ notAllPlayersHaveGame: Flow<Unit>,\n+ onConfirmStartGame: () -> Unit,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ players: List<Player>,\n+ saveTransferProgress: SaveTransferProgress?,\n+ gameDigestProgress: GameDigestProgress?,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+) {\n+ Scaffold(\n+ topBar = {\n+ MediumTopAppBar(\n+ title = { Text(stringResource(R.string.netplay_title)) },\n+ navigationIcon = {\n+ IconButton(onClick = onBackClicked) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.ArrowBack,\n+ contentDescription = "Back",\n+ )\n+ }\n+ },\n+ )\n+ },\n+ floatingActionButton = {\n+ if (isHosting) {\n+ ExtendedFloatingActionButton(onClick = onStartGame) {\n+ Text(stringResource(R.string.netplay_start))\n+ }\n+ }\n+ },\n+ ) { innerPadding ->\n+ val modifier = Modifier\n+ .fillMaxSize()\n+ .consumeWindowInsets(innerPadding)\n+ .padding(innerPadding)\n+\n+ // State which must live above the landscape/portrait split.\n+ var showChat by rememberSaveable { mutableStateOf(false) }\n+ var showGamePicker by rememberSaveable { mutableStateOf(false) }\n+ var selectedJoinInfoType by rememberSaveable {\n+ mutableStateOf(joinAddresses.keys.firstOrNull() ?: JoinInfoType.EXTERNAL)\n+ }\n+\n+ if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE) {\n+ LandscapeContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ } else {\n+ PortraitContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ }\n+\n+ var showConnectionLostDialog by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ connectionLost.collect { showConnectionLostDialog = true }\n+ }\n+\n+ var traversalError by rememberSaveable { mutableStateOf<TraversalState.Failure?>(null) }\n+ LaunchedEffect(Unit) {\n+ fatalTraversalError.collect { traversalError = it }\n+ }\n+\n+ var showNotAllPlayersHaveGame by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ notAllPlayersHaveGame.collect { showNotAllPlayersHaveGame = true }\n+ }\n+\n+ var dismissSaveTransferProgressDialog by rememberSaveable { mutableStateOf(false) }\n+ if (saveTransferProgress == null) {\n+ dismissSaveTransferProgressDialog = false\n+ }\n+\n+ var dismissGameDigestDialog by rememberSaveable { mutableStateOf(false) }\n+ if (gameDigestProgress == null) {\n+ dismissGameDigestDialog = false\n+ }\n+\n+ val currentTraversalError = traversalError\n+\n+ when {\n+ showConnectionLostDialog -> {\n+ AlertDialog(\n+ text = { Text(stringResource(R.string.netplay_connection_lost)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ currentTraversalError != null -> {\n+ AlertDialog(\n+ text = { Text(currentTraversalError.message(LocalContext.current)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ saveTransferProgress != null && !dismissSaveTransferProgressDialog -> {\n+ SaveTransferProgressDialog(\n+ saveTransferProgress = saveTransferProgress,\n+ onDismiss = { dismissSaveTransferProgressDialog = true },\n+ )\n+ }\n+\n+ gameDigestProgress != null && !dismissGameDigestDialog -> {\n+ GameDigestProgressDialog(\n+ gameDigestProgress = gameDigestProgress,\n+ onDismiss = { dismissGameDigestDialog = true },\n+ )\n+ }\n+\n+ showNotAllPlayersHaveGame -> {\n+ AlertDialog(\n+ title = { Text(stringResource(R.string.netplay_start_warning_title)) },\n+ text = { Text(stringResource(R.string.netplay_start_warning_not_all_players_have_game)) },\n+ confirmButton = {\n+ TextButton(onClick = {\n+ showNotAllPlayersHaveGame = false\n+ onConfirmStartGame()\n+ }) {\n+ Text(stringResource(R.string.yes))\n+ }\n+ },\n+ dismissButton = {\n+ TextButton(onClick = { showNotAllPlayersHaveGame = false }) {\n+ Text(stringResource(R.string.no))\n+ }\n+ },\n+ onDismissRequest = { showNotAllPlayersHaveGame = false },\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PortraitContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Column(\n+ modifier = modifier\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .height(200.dp)\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ )\n+\n+ MenuSpacer()\n+\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding),\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun LandscapeContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Row(\n+ modifier = modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .weight(1f)\n+ .fillMaxHeight()\n+ )\n+\n+ Spacer(modifier = Modifier.width(16.dp))\n+\n+ Column(\n+ modifier = Modifier\n+ .weight(1f)\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PLayersAndSettings(\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ isHosting: Boolean,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Column(\n+ modifier = modifier\n+ ) {\n+ GamePicker(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ isHosting = isHosting,\n+ )\n+\n+ if (isHosting) {\n+ MenuSpacer()\n+\n+ JoinAddressSection(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedJoinInfoType,\n+ onSelectedTypeChanged = onSelectedJoinInfoTypeChanged,\n+ )\n+ }\n+\n+ MenuSpacer()\n+\n+ OutlinedBox(\n+ label = { Text(stringResource(R.string.netplay_players_label)) },\n+ ) {\n+ PlayersTable(\n+ rows = buildList {\n+ add(\n+ listOf(\n+ stringResource(R.string.netplay_players_name),\n+ stringResource(R.string.netplay_players_ping),\n+ stringResource(R.string.netplay_players_mapping),\n+ )\n+ )\n+ addAll(players.map { listOf(it.name, it.ping.toString(), it.mapping) })\n+ repeat(4 - players.size) { add(listOf("", "", "")) }\n+ },\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ )\n+ }\n+\n+ if (isHosting) {\n+ MenuSpacer()\n+\n+ NetworkModeDropdown(\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ )\n+ }\n+\n+ if (isHosting && !hostInputAuthorityEnabled) {\n+ MenuSpacer()\n+\n+ BufferInput(\n+ value = buffer,\n+ onValueChange = onBufferChanged,\n+ label = stringResource(R.string.netplay_buffer),\n+ )\n+ }\n+\n+ if (!isHosting && hostInputAuthorityEnabled) {\n+ MenuSpacer()\n+\n+ BufferInput(\n+ value = clientBuffer,\n+ onValueChange = onClientBufferChanged,\n+ label = stringResource(R.string.netplay_client_buffer),\n+ )\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun Chat(\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showBottomSheet: Boolean,\n+ onShowBottomSheetChanged: (Boolean) -> Unit,\n+ modifier: Modifier,\n+) {\n+ val context = LocalContext.current\n+\n+ fun LazyListScope.messages() {\n+ items(messages.size) { index ->\n+ Text(\n+ text = messages[index].message(context),\n+ style = MaterialTheme.typography.bodyMedium.copy(lineHeight = 18.sp),\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .padding(vertical = 2.dp)\n+ )\n+ }\n+ }\n+\n+ var draftMessage by remember { mutableStateOf("") }\n+ val submitMessage = {\n+ onSendMessage(draftMessage)\n+ draftMessage = ""\n+ }\n+\n+ val bottomSheetState = rememberSheetState(\n+ skipPartiallyExpanded = true,\n+ initialValue = if (showBottomSheet) SheetValue.Expanded else SheetValue.Hidden,\n+ )\n+\n+ if (showBottomSheet) {\n+ ModalBottomSheet(\n+ onDismissRequest = { onShowBottomSheetChanged(false) },\n+ sheetState = bottomSheetState,\n+ modifier = Modifier\n+ .statusBarsPadding()\n+ ) {\n+ LazyColumn(\n+ reverseLayout = true,\n+ contentPadding = PaddingValues(bottom = 4.dp),\n+ modifier = Modifier\n+ .weight(1f, fill = false)\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ ) {\n+ messages()\n+ }\n+\n+ Row(\n+ horizontalArrangement = Arrangement.spacedBy(8.dp),\n+ verticalAlignment = Alignment.CenterVertically,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .padding(8.dp)\n+ ) {\n+ OutlinedTextField(\n+ value = draftMessage,\n+ onValueChange = { draftMessage = it },\n+ keyboardOptions = KeyboardOptions(imeAction = ImeAction.Send),\n+ keyboardActions = KeyboardActions(onSend = { submitMessage() }),\n+ modifier = Modifier\n+ .weight(1f)\n+ )\n+ IconButton(\n+ onClick = submitMessage,\n+ enabled = draftMessage.isNotBlank(),\n+ ) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.Send,\n+ contentDescription = stringResource(R.string.netplay_chat_send),\n+ )\n+ }\n+ }\n+ }\n+ }\n+\n+ OutlinedBox(\n+ onClick = { onShowBottomSheetChanged(true) },\n+ label = { Text(stringResource(R.string.netplay_chat_label)) },\n+ fadeContentTop = true,\n+ modifier = modifier\n+ ) {\n+ LazyColumn(\n+ reverseLayout = true,\n+ userScrollEnabled = false,\n+ modifier = Modifier\n+ .fillMaxSize()\n+ ) {\n+ messages()\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun GamePicker(\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ isHosting: Boolean,\n+) {\n+ val bottomSheetState = rememberSheetState(\n+ skipPartiallyExpanded = true,\n+ initialValue = if (showGamePicker) SheetValue.Expanded else SheetValue.Hidden,\n+ )\n+\n+ if (showGamePicker) {\n+ ModalBottomSheet(\n+ onDismissRequest = { onShowGamePickerChanged(false) },\n+ sheetState = bottomSheetState,\n+ modifier = Modifier.statusBarsPadding()\n+ ) {\n+ GameList(\n+ gameFiles = gameFiles,\n+ onGameSelected = { gameFile ->\n+ onGameSelected(gameFile)\n+ onShowGamePickerChanged(false)\n+ },\n+ contentPadding = PaddingValues(\n+ start = DolphinTheme.scaffoldPadding,\n+ end = DolphinTheme.scaffoldPadding,\n+ bottom = 16.dp\n+ ),\n+ )\n+ }\n+ }\n+\n+ ReadOnlyTextField(\n+ value = game,\n+ label = stringResource(R.string.netplay_game_label),\n+ onClick = if (isHosting) {\n+ { onShowGamePickerChanged(true) }\n+ } else {\n+ null\n+ },\n+ modifier = Modifier.fillMaxWidth()\n+ )\n+}\n+\n+@Composable\n+private fun GameList(\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ contentPadding: PaddingValues = PaddingValues(),\n+) {\n+ LazyVerticalGrid(\n+ columns = GridCells.Adaptive(minSize = 120.dp),\n+ contentPadding = contentPadding,\n+ horizontalArrangement = Arrangement.spacedBy(12.dp),\n+ verticalArrangement = Arrangement.spacedBy(12.dp),\n+ ) {\n+ items(gameFiles, key = { it.getPath() }) { gameFile ->\n+ GameGridItem(\n+ gameFile = gameFile,\n+ onClick = { onGameSelected(gameFile) },\n+ )\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun GameGridItem(\n+ gameFile: GameFile,\n+ onClick: () -> Unit,\n+) {\n+ Card(\n+ onClick = onClick,\n+ ) {\n+ Column {\n+ AsyncImage(\n+ model = ImageRequest.Builder(LocalContext.current)\n+ .data(gameFile)\n+ .error(R.drawable.no_banner)\n+ .build(),\n+ contentDescription = gameFile.getTitle(),\n+ contentScale = ContentScale.Crop,\n+ imageLoader = CoilUtils.imageLoader,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .aspectRatio(0.7f)\n+ )\n+ Text(\n+ text = gameFile.getTitle(),\n+ style = MaterialTheme.typography.bodySmall,\n+ maxLines = 2,\n+ minLines = 2,\n+ overflow = TextOverflow.Ellipsis,\n+ modifier = Modifier\n+ .padding(8.dp)\n+ )\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun JoinAddressSection(\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedType: JoinInfoType,\n+ onSelectedTypeChanged: (JoinInfoType) -> Unit,\n+) {\n+ val address = joinAddresses[selectedType] ?: joinAddresses.values.first()\n+\n+ @Suppress("UnusedBoxWithConstraintsScope")\n+ BoxWithConstraints(modifier = Modifier.fillMaxWidth()) {\n+ if (maxWidth > 392.dp) {\n+ Row(\n+ horizontalArrangement = Arrangement.spacedBy(8.dp),\n+ modifier = Modifier.fillMaxWidth()\n+ ) {\n+ JoinInfoDropdown(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedType,\n+ onSelectedTypeChanged = onSelectedTypeChanged,\n+ modifier = Modifier.weight(0.39f),\n+ )\n+ AddressRow(\n+ joinInfoType = selectedType,\n+ address = address,\n+ modifier = Modifier.weight(0.61f),\n+ )\n+ }\n+ } else {\n+ Column(modifier = Modifier.fillMaxWidth()) {\n+ JoinInfoDropdown(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedType,\n+ onSelectedTypeChanged = onSelectedTypeChanged,\n+ modifier = Modifier.fillMaxWidth(),\n+ )\n+ MenuSpacer()\n+ AddressRow(\n+ joinInfoType = selectedType,\n+ address = address,\n+ modifier = Modifier.fillMaxWidth(),\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun JoinInfoDropdown(\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedType: JoinInfoType,\n+ onSelectedTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ var expanded by remember { mutableStateOf(false) }\n+\n+ ExposedDropdownMenuBox(\n+ expanded = expanded,\n+ onExpandedChange = { expanded = it },\n+ modifier = modifier,\n+ ) {\n+ OutlinedTextField(\n+ value = stringResource(selectedType.labelId),\n+ onValueChange = {},\n+ readOnly = true,\n+ label = { Text(stringResource(R.string.netplay_host_address_label)) },\n+ trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) },\n+ modifier = Modifier\n+ .menuAnchor(MenuAnchorType.PrimaryNotEditable)\n+ .fillMaxWidth()\n+ )\n+\n+ ExposedDropdownMenu(\n+ expanded = expanded,\n+ onDismissRequest = { expanded = false },\n+ ) {\n+ joinAddresses.keys.forEach { type ->\n+ DropdownMenuItem(\n+ text = { Text(stringResource(type.labelId)) },\n+ onClick = {\n+ onSelectedTypeChanged(type)\n+ expanded = false\n+ },\n+ contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun AddressRow(\n+ joinInfoType: JoinInfoType,\n+ address: JoinAddress,\n+ modifier: Modifier = Modifier,\n+) {\n+ val context = LocalContext.current\n+\n+ ReadOnlyTextField(\n+ value = when (address) {\n+ is JoinAddress.Loading -> stringResource(R.string.netplay_address_loading)\n+ is JoinAddress.Loaded -> address.address\n+ is JoinAddress.Unknown -> stringResource(R.string.netplay_address_unknown)\n+ },\n+ label = stringResource(\n+ if (joinInfoType == JoinInfoType.ROOM_ID) R.string.netplay_code_label\n+ else R.string.netplay_address_label\n+ ),\n+ onClick = when (address) {\n+ is JoinAddress.Loaded -> {\n+ {', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/ui/NetplayScreen.kt', 'position': 866, 'original_position': 866, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': 'Unnecessary extra curly braces?', 'created_at': '2026-05-13T13:02:58Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234446275', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234446275'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234446275'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234446275/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234454954, 'node_id': 'PRRC_kwDOALCn2M7Ayd2q', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234454954', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,1346 @@\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.netplay.ui\n+\n+import android.content.Intent\n+import android.content.res.Configuration\n+import androidx.compose.foundation.layout.Arrangement\n+import androidx.compose.foundation.layout.Box\n+import androidx.compose.foundation.layout.BoxWithConstraints\n+import androidx.compose.foundation.layout.Column\n+import androidx.compose.foundation.layout.PaddingValues\n+import androidx.compose.foundation.layout.Row\n+import androidx.compose.foundation.layout.Spacer\n+import androidx.compose.foundation.layout.aspectRatio\n+import androidx.compose.foundation.layout.consumeWindowInsets\n+import androidx.compose.foundation.layout.fillMaxHeight\n+import androidx.compose.foundation.layout.fillMaxSize\n+import androidx.compose.foundation.layout.fillMaxWidth\n+import androidx.compose.foundation.layout.height\n+import androidx.compose.foundation.layout.padding\n+import androidx.compose.foundation.layout.size\n+import androidx.compose.foundation.layout.statusBarsPadding\n+import androidx.compose.foundation.layout.width\n+import androidx.compose.foundation.lazy.LazyColumn\n+import androidx.compose.foundation.lazy.LazyListScope\n+import androidx.compose.foundation.lazy.grid.GridCells\n+import androidx.compose.foundation.lazy.grid.LazyVerticalGrid\n+import androidx.compose.foundation.lazy.grid.items\n+import androidx.compose.foundation.rememberScrollState\n+import androidx.compose.foundation.shape.RoundedCornerShape\n+import androidx.compose.foundation.text.KeyboardActions\n+import androidx.compose.foundation.text.KeyboardOptions\n+import androidx.compose.foundation.verticalScroll\n+import androidx.compose.material.icons.Icons\n+import androidx.compose.material.icons.automirrored.filled.ArrowBack\n+import androidx.compose.material.icons.automirrored.filled.Send\n+import androidx.compose.material.icons.filled.Add\n+import androidx.compose.material.icons.filled.Refresh\n+import androidx.compose.material.icons.filled.Remove\n+import androidx.compose.material.icons.filled.Share\n+import androidx.compose.material3.AlertDialog\n+import androidx.compose.material3.Button\n+import androidx.compose.material3.Card\n+import androidx.compose.material3.CircularProgressIndicator\n+import androidx.compose.material3.DropdownMenuItem\n+import androidx.compose.material3.ExperimentalMaterial3Api\n+import androidx.compose.material3.ExposedDropdownMenuBox\n+import androidx.compose.material3.ExposedDropdownMenuDefaults\n+import androidx.compose.material3.ExtendedFloatingActionButton\n+import androidx.compose.material3.HorizontalDivider\n+import androidx.compose.material3.Icon\n+import androidx.compose.material3.IconButton\n+import androidx.compose.material3.LinearProgressIndicator\n+import androidx.compose.material3.LocalTextStyle\n+import androidx.compose.material3.MaterialTheme\n+import androidx.compose.material3.MediumTopAppBar\n+import androidx.compose.material3.MenuAnchorType\n+import androidx.compose.material3.ModalBottomSheet\n+import androidx.compose.material3.OutlinedTextField\n+import androidx.compose.material3.Scaffold\n+import androidx.compose.material3.SheetValue\n+import androidx.compose.material3.Text\n+import androidx.compose.material3.TextButton\n+import androidx.compose.runtime.Composable\n+import androidx.compose.runtime.LaunchedEffect\n+import androidx.compose.runtime.getValue\n+import androidx.compose.runtime.mutableIntStateOf\n+import androidx.compose.runtime.mutableStateOf\n+import androidx.compose.runtime.remember\n+import androidx.compose.runtime.saveable.rememberSaveable\n+import androidx.compose.runtime.setValue\n+import androidx.compose.ui.Alignment\n+import androidx.compose.ui.Modifier\n+import androidx.compose.ui.layout.ContentScale\n+import androidx.compose.ui.layout.onGloballyPositioned\n+import androidx.compose.ui.platform.LocalConfiguration\n+import androidx.compose.ui.platform.LocalContext\n+import androidx.compose.ui.platform.LocalDensity\n+import androidx.compose.ui.res.stringResource\n+import androidx.compose.ui.text.TextRange\n+import androidx.compose.ui.text.font.FontWeight\n+import androidx.compose.ui.text.input.ImeAction\n+import androidx.compose.ui.text.input.KeyboardType\n+import androidx.compose.ui.text.input.TextFieldValue\n+import androidx.compose.ui.text.style.TextAlign\n+import androidx.compose.ui.text.style.TextOverflow\n+import androidx.compose.ui.tooling.preview.Preview\n+import androidx.compose.ui.unit.dp\n+import androidx.compose.ui.unit.sp\n+import coil.compose.AsyncImage\n+import coil.request.ImageRequest\n+import kotlinx.coroutines.flow.Flow\n+import kotlinx.coroutines.flow.emptyFlow\n+import org.dolphinemu.dolphinemu.R\n+import org.dolphinemu.dolphinemu.features.netplay.model.GameDigestProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinAddress\n+import org.dolphinemu.dolphinemu.features.netplay.model.JoinInfoType\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetplayMessage\n+import org.dolphinemu.dolphinemu.features.netplay.model.NetworkMode\n+import org.dolphinemu.dolphinemu.features.netplay.model.Player\n+import org.dolphinemu.dolphinemu.features.netplay.model.SaveTransferProgress\n+import org.dolphinemu.dolphinemu.features.netplay.model.TraversalState\n+import org.dolphinemu.dolphinemu.model.GameFile\n+import org.dolphinemu.dolphinemu.ui.theme.DolphinTheme\n+import org.dolphinemu.dolphinemu.ui.theme.MenuSpacer\n+import org.dolphinemu.dolphinemu.ui.theme.OutlinedBox\n+import org.dolphinemu.dolphinemu.ui.theme.PreviewTheme\n+import org.dolphinemu.dolphinemu.ui.theme.ReadOnlyTextField\n+import org.dolphinemu.dolphinemu.ui.theme.rememberSheetState\n+import org.dolphinemu.dolphinemu.utils.CoilUtils\n+import java.util.Locale\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+fun NetplayScreen(\n+ onBackClicked: () -> Unit,\n+ isHosting: Boolean,\n+ connectionLost: Flow<Unit>,\n+ fatalTraversalError: Flow<TraversalState.Failure>,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ game: String,\n+ onStartGame: () -> Unit,\n+ onGameSelected: (GameFile) -> Unit,\n+ gameFiles: List<GameFile>,\n+ notAllPlayersHaveGame: Flow<Unit>,\n+ onConfirmStartGame: () -> Unit,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ players: List<Player>,\n+ saveTransferProgress: SaveTransferProgress?,\n+ gameDigestProgress: GameDigestProgress?,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+) {\n+ Scaffold(\n+ topBar = {\n+ MediumTopAppBar(\n+ title = { Text(stringResource(R.string.netplay_title)) },\n+ navigationIcon = {\n+ IconButton(onClick = onBackClicked) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.ArrowBack,\n+ contentDescription = "Back",\n+ )\n+ }\n+ },\n+ )\n+ },\n+ floatingActionButton = {\n+ if (isHosting) {\n+ ExtendedFloatingActionButton(onClick = onStartGame) {\n+ Text(stringResource(R.string.netplay_start))\n+ }\n+ }\n+ },\n+ ) { innerPadding ->\n+ val modifier = Modifier\n+ .fillMaxSize()\n+ .consumeWindowInsets(innerPadding)\n+ .padding(innerPadding)\n+\n+ // State which must live above the landscape/portrait split.\n+ var showChat by rememberSaveable { mutableStateOf(false) }\n+ var showGamePicker by rememberSaveable { mutableStateOf(false) }\n+ var selectedJoinInfoType by rememberSaveable {\n+ mutableStateOf(joinAddresses.keys.firstOrNull() ?: JoinInfoType.EXTERNAL)\n+ }\n+\n+ if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_LANDSCAPE) {\n+ LandscapeContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ } else {\n+ PortraitContent(\n+ isHosting = isHosting,\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showChat = showChat,\n+ onShowChatChanged = { showChat = it },\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = { showGamePicker = it },\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = { selectedJoinInfoType = it },\n+ modifier = modifier\n+ )\n+ }\n+\n+ var showConnectionLostDialog by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ connectionLost.collect { showConnectionLostDialog = true }\n+ }\n+\n+ var traversalError by rememberSaveable { mutableStateOf<TraversalState.Failure?>(null) }\n+ LaunchedEffect(Unit) {\n+ fatalTraversalError.collect { traversalError = it }\n+ }\n+\n+ var showNotAllPlayersHaveGame by rememberSaveable { mutableStateOf(false) }\n+ LaunchedEffect(Unit) {\n+ notAllPlayersHaveGame.collect { showNotAllPlayersHaveGame = true }\n+ }\n+\n+ var dismissSaveTransferProgressDialog by rememberSaveable { mutableStateOf(false) }\n+ if (saveTransferProgress == null) {\n+ dismissSaveTransferProgressDialog = false\n+ }\n+\n+ var dismissGameDigestDialog by rememberSaveable { mutableStateOf(false) }\n+ if (gameDigestProgress == null) {\n+ dismissGameDigestDialog = false\n+ }\n+\n+ val currentTraversalError = traversalError\n+\n+ when {\n+ showConnectionLostDialog -> {\n+ AlertDialog(\n+ text = { Text(stringResource(R.string.netplay_connection_lost)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ currentTraversalError != null -> {\n+ AlertDialog(\n+ text = { Text(currentTraversalError.message(LocalContext.current)) },\n+ confirmButton = {\n+ TextButton(onClick = onBackClicked) {\n+ Text(stringResource(R.string.ok))\n+ }\n+ },\n+ onDismissRequest = onBackClicked,\n+ )\n+ }\n+\n+ saveTransferProgress != null && !dismissSaveTransferProgressDialog -> {\n+ SaveTransferProgressDialog(\n+ saveTransferProgress = saveTransferProgress,\n+ onDismiss = { dismissSaveTransferProgressDialog = true },\n+ )\n+ }\n+\n+ gameDigestProgress != null && !dismissGameDigestDialog -> {\n+ GameDigestProgressDialog(\n+ gameDigestProgress = gameDigestProgress,\n+ onDismiss = { dismissGameDigestDialog = true },\n+ )\n+ }\n+\n+ showNotAllPlayersHaveGame -> {\n+ AlertDialog(\n+ title = { Text(stringResource(R.string.netplay_start_warning_title)) },\n+ text = { Text(stringResource(R.string.netplay_start_warning_not_all_players_have_game)) },\n+ confirmButton = {\n+ TextButton(onClick = {\n+ showNotAllPlayersHaveGame = false\n+ onConfirmStartGame()\n+ }) {\n+ Text(stringResource(R.string.yes))\n+ }\n+ },\n+ dismissButton = {\n+ TextButton(onClick = { showNotAllPlayersHaveGame = false }) {\n+ Text(stringResource(R.string.no))\n+ }\n+ },\n+ onDismissRequest = { showNotAllPlayersHaveGame = false },\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PortraitContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Column(\n+ modifier = modifier\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .height(200.dp)\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ )\n+\n+ MenuSpacer()\n+\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding),\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun LandscapeContent(\n+ isHosting: Boolean,\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showChat: Boolean,\n+ onShowChatChanged: (Boolean) -> Unit,\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Row(\n+ modifier = modifier\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ ) {\n+ Chat(\n+ messages = messages,\n+ onSendMessage = onSendMessage,\n+ showBottomSheet = showChat,\n+ onShowBottomSheetChanged = onShowChatChanged,\n+ modifier = Modifier\n+ .weight(1f)\n+ .fillMaxHeight()\n+ )\n+\n+ Spacer(modifier = Modifier.width(16.dp))\n+\n+ Column(\n+ modifier = Modifier\n+ .weight(1f)\n+ .verticalScroll(rememberScrollState())\n+ ) {\n+ PLayersAndSettings(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ players = players,\n+ hostInputAuthorityEnabled = hostInputAuthorityEnabled,\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ buffer = buffer,\n+ onBufferChanged = onBufferChanged,\n+ clientBuffer = clientBuffer,\n+ onClientBufferChanged = onClientBufferChanged,\n+ isHosting = isHosting,\n+ joinAddresses = joinAddresses,\n+ selectedJoinInfoType = selectedJoinInfoType,\n+ onSelectedJoinInfoTypeChanged = onSelectedJoinInfoTypeChanged,\n+ modifier = Modifier\n+ )\n+\n+ if (isHosting) {\n+ Spacer(modifier = Modifier.height(DolphinTheme.fabClearancePadding))\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun PLayersAndSettings(\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ players: List<Player>,\n+ hostInputAuthorityEnabled: Boolean,\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+ buffer: Int,\n+ onBufferChanged: (Int) -> Unit,\n+ clientBuffer: Int,\n+ onClientBufferChanged: (Int) -> Unit,\n+ isHosting: Boolean,\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedJoinInfoType: JoinInfoType,\n+ onSelectedJoinInfoTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ Column(\n+ modifier = modifier\n+ ) {\n+ GamePicker(\n+ game = game,\n+ gameFiles = gameFiles,\n+ onGameSelected = onGameSelected,\n+ showGamePicker = showGamePicker,\n+ onShowGamePickerChanged = onShowGamePickerChanged,\n+ isHosting = isHosting,\n+ )\n+\n+ if (isHosting) {\n+ MenuSpacer()\n+\n+ JoinAddressSection(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedJoinInfoType,\n+ onSelectedTypeChanged = onSelectedJoinInfoTypeChanged,\n+ )\n+ }\n+\n+ MenuSpacer()\n+\n+ OutlinedBox(\n+ label = { Text(stringResource(R.string.netplay_players_label)) },\n+ ) {\n+ PlayersTable(\n+ rows = buildList {\n+ add(\n+ listOf(\n+ stringResource(R.string.netplay_players_name),\n+ stringResource(R.string.netplay_players_ping),\n+ stringResource(R.string.netplay_players_mapping),\n+ )\n+ )\n+ addAll(players.map { listOf(it.name, it.ping.toString(), it.mapping) })\n+ repeat(4 - players.size) { add(listOf("", "", "")) }\n+ },\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ )\n+ }\n+\n+ if (isHosting) {\n+ MenuSpacer()\n+\n+ NetworkModeDropdown(\n+ networkMode = networkMode,\n+ onNetworkModeChanged = onNetworkModeChanged,\n+ )\n+ }\n+\n+ if (isHosting && !hostInputAuthorityEnabled) {\n+ MenuSpacer()\n+\n+ BufferInput(\n+ value = buffer,\n+ onValueChange = onBufferChanged,\n+ label = stringResource(R.string.netplay_buffer),\n+ )\n+ }\n+\n+ if (!isHosting && hostInputAuthorityEnabled) {\n+ MenuSpacer()\n+\n+ BufferInput(\n+ value = clientBuffer,\n+ onValueChange = onClientBufferChanged,\n+ label = stringResource(R.string.netplay_client_buffer),\n+ )\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun Chat(\n+ messages: List<NetplayMessage>,\n+ onSendMessage: (String) -> Unit,\n+ showBottomSheet: Boolean,\n+ onShowBottomSheetChanged: (Boolean) -> Unit,\n+ modifier: Modifier,\n+) {\n+ val context = LocalContext.current\n+\n+ fun LazyListScope.messages() {\n+ items(messages.size) { index ->\n+ Text(\n+ text = messages[index].message(context),\n+ style = MaterialTheme.typography.bodyMedium.copy(lineHeight = 18.sp),\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .padding(vertical = 2.dp)\n+ )\n+ }\n+ }\n+\n+ var draftMessage by remember { mutableStateOf("") }\n+ val submitMessage = {\n+ onSendMessage(draftMessage)\n+ draftMessage = ""\n+ }\n+\n+ val bottomSheetState = rememberSheetState(\n+ skipPartiallyExpanded = true,\n+ initialValue = if (showBottomSheet) SheetValue.Expanded else SheetValue.Hidden,\n+ )\n+\n+ if (showBottomSheet) {\n+ ModalBottomSheet(\n+ onDismissRequest = { onShowBottomSheetChanged(false) },\n+ sheetState = bottomSheetState,\n+ modifier = Modifier\n+ .statusBarsPadding()\n+ ) {\n+ LazyColumn(\n+ reverseLayout = true,\n+ contentPadding = PaddingValues(bottom = 4.dp),\n+ modifier = Modifier\n+ .weight(1f, fill = false)\n+ .padding(horizontal = DolphinTheme.scaffoldPadding)\n+ ) {\n+ messages()\n+ }\n+\n+ Row(\n+ horizontalArrangement = Arrangement.spacedBy(8.dp),\n+ verticalAlignment = Alignment.CenterVertically,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .padding(8.dp)\n+ ) {\n+ OutlinedTextField(\n+ value = draftMessage,\n+ onValueChange = { draftMessage = it },\n+ keyboardOptions = KeyboardOptions(imeAction = ImeAction.Send),\n+ keyboardActions = KeyboardActions(onSend = { submitMessage() }),\n+ modifier = Modifier\n+ .weight(1f)\n+ )\n+ IconButton(\n+ onClick = submitMessage,\n+ enabled = draftMessage.isNotBlank(),\n+ ) {\n+ Icon(\n+ imageVector = Icons.AutoMirrored.Filled.Send,\n+ contentDescription = stringResource(R.string.netplay_chat_send),\n+ )\n+ }\n+ }\n+ }\n+ }\n+\n+ OutlinedBox(\n+ onClick = { onShowBottomSheetChanged(true) },\n+ label = { Text(stringResource(R.string.netplay_chat_label)) },\n+ fadeContentTop = true,\n+ modifier = modifier\n+ ) {\n+ LazyColumn(\n+ reverseLayout = true,\n+ userScrollEnabled = false,\n+ modifier = Modifier\n+ .fillMaxSize()\n+ ) {\n+ messages()\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun GamePicker(\n+ game: String,\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ showGamePicker: Boolean,\n+ onShowGamePickerChanged: (Boolean) -> Unit,\n+ isHosting: Boolean,\n+) {\n+ val bottomSheetState = rememberSheetState(\n+ skipPartiallyExpanded = true,\n+ initialValue = if (showGamePicker) SheetValue.Expanded else SheetValue.Hidden,\n+ )\n+\n+ if (showGamePicker) {\n+ ModalBottomSheet(\n+ onDismissRequest = { onShowGamePickerChanged(false) },\n+ sheetState = bottomSheetState,\n+ modifier = Modifier.statusBarsPadding()\n+ ) {\n+ GameList(\n+ gameFiles = gameFiles,\n+ onGameSelected = { gameFile ->\n+ onGameSelected(gameFile)\n+ onShowGamePickerChanged(false)\n+ },\n+ contentPadding = PaddingValues(\n+ start = DolphinTheme.scaffoldPadding,\n+ end = DolphinTheme.scaffoldPadding,\n+ bottom = 16.dp\n+ ),\n+ )\n+ }\n+ }\n+\n+ ReadOnlyTextField(\n+ value = game,\n+ label = stringResource(R.string.netplay_game_label),\n+ onClick = if (isHosting) {\n+ { onShowGamePickerChanged(true) }\n+ } else {\n+ null\n+ },\n+ modifier = Modifier.fillMaxWidth()\n+ )\n+}\n+\n+@Composable\n+private fun GameList(\n+ gameFiles: List<GameFile>,\n+ onGameSelected: (GameFile) -> Unit,\n+ contentPadding: PaddingValues = PaddingValues(),\n+) {\n+ LazyVerticalGrid(\n+ columns = GridCells.Adaptive(minSize = 120.dp),\n+ contentPadding = contentPadding,\n+ horizontalArrangement = Arrangement.spacedBy(12.dp),\n+ verticalArrangement = Arrangement.spacedBy(12.dp),\n+ ) {\n+ items(gameFiles, key = { it.getPath() }) { gameFile ->\n+ GameGridItem(\n+ gameFile = gameFile,\n+ onClick = { onGameSelected(gameFile) },\n+ )\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun GameGridItem(\n+ gameFile: GameFile,\n+ onClick: () -> Unit,\n+) {\n+ Card(\n+ onClick = onClick,\n+ ) {\n+ Column {\n+ AsyncImage(\n+ model = ImageRequest.Builder(LocalContext.current)\n+ .data(gameFile)\n+ .error(R.drawable.no_banner)\n+ .build(),\n+ contentDescription = gameFile.getTitle(),\n+ contentScale = ContentScale.Crop,\n+ imageLoader = CoilUtils.imageLoader,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ .aspectRatio(0.7f)\n+ )\n+ Text(\n+ text = gameFile.getTitle(),\n+ style = MaterialTheme.typography.bodySmall,\n+ maxLines = 2,\n+ minLines = 2,\n+ overflow = TextOverflow.Ellipsis,\n+ modifier = Modifier\n+ .padding(8.dp)\n+ )\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun JoinAddressSection(\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedType: JoinInfoType,\n+ onSelectedTypeChanged: (JoinInfoType) -> Unit,\n+) {\n+ val address = joinAddresses[selectedType] ?: joinAddresses.values.first()\n+\n+ @Suppress("UnusedBoxWithConstraintsScope")\n+ BoxWithConstraints(modifier = Modifier.fillMaxWidth()) {\n+ if (maxWidth > 392.dp) {\n+ Row(\n+ horizontalArrangement = Arrangement.spacedBy(8.dp),\n+ modifier = Modifier.fillMaxWidth()\n+ ) {\n+ JoinInfoDropdown(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedType,\n+ onSelectedTypeChanged = onSelectedTypeChanged,\n+ modifier = Modifier.weight(0.39f),\n+ )\n+ AddressRow(\n+ joinInfoType = selectedType,\n+ address = address,\n+ modifier = Modifier.weight(0.61f),\n+ )\n+ }\n+ } else {\n+ Column(modifier = Modifier.fillMaxWidth()) {\n+ JoinInfoDropdown(\n+ joinAddresses = joinAddresses,\n+ selectedType = selectedType,\n+ onSelectedTypeChanged = onSelectedTypeChanged,\n+ modifier = Modifier.fillMaxWidth(),\n+ )\n+ MenuSpacer()\n+ AddressRow(\n+ joinInfoType = selectedType,\n+ address = address,\n+ modifier = Modifier.fillMaxWidth(),\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun JoinInfoDropdown(\n+ joinAddresses: Map<JoinInfoType, JoinAddress>,\n+ selectedType: JoinInfoType,\n+ onSelectedTypeChanged: (JoinInfoType) -> Unit,\n+ modifier: Modifier = Modifier,\n+) {\n+ var expanded by remember { mutableStateOf(false) }\n+\n+ ExposedDropdownMenuBox(\n+ expanded = expanded,\n+ onExpandedChange = { expanded = it },\n+ modifier = modifier,\n+ ) {\n+ OutlinedTextField(\n+ value = stringResource(selectedType.labelId),\n+ onValueChange = {},\n+ readOnly = true,\n+ label = { Text(stringResource(R.string.netplay_host_address_label)) },\n+ trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded) },\n+ modifier = Modifier\n+ .menuAnchor(MenuAnchorType.PrimaryNotEditable)\n+ .fillMaxWidth()\n+ )\n+\n+ ExposedDropdownMenu(\n+ expanded = expanded,\n+ onDismissRequest = { expanded = false },\n+ ) {\n+ joinAddresses.keys.forEach { type ->\n+ DropdownMenuItem(\n+ text = { Text(stringResource(type.labelId)) },\n+ onClick = {\n+ onSelectedTypeChanged(type)\n+ expanded = false\n+ },\n+ contentPadding = ExposedDropdownMenuDefaults.ItemContentPadding,\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun AddressRow(\n+ joinInfoType: JoinInfoType,\n+ address: JoinAddress,\n+ modifier: Modifier = Modifier,\n+) {\n+ val context = LocalContext.current\n+\n+ ReadOnlyTextField(\n+ value = when (address) {\n+ is JoinAddress.Loading -> stringResource(R.string.netplay_address_loading)\n+ is JoinAddress.Loaded -> address.address\n+ is JoinAddress.Unknown -> stringResource(R.string.netplay_address_unknown)\n+ },\n+ label = stringResource(\n+ if (joinInfoType == JoinInfoType.ROOM_ID) R.string.netplay_code_label\n+ else R.string.netplay_address_label\n+ ),\n+ onClick = when (address) {\n+ is JoinAddress.Loaded -> {\n+ {\n+ val intent = Intent(Intent.ACTION_SEND).apply {\n+ type = "text/plain"\n+ putExtra(Intent.EXTRA_TEXT, address.address)\n+ }\n+ context.startActivity(Intent.createChooser(intent, null))\n+ }\n+ }\n+\n+ is JoinAddress.Unknown -> address.retry\n+ is JoinAddress.Loading -> null\n+ },\n+ textStyle = if (address is JoinAddress.Loading) {\n+ LocalTextStyle.current.copy(color = MaterialTheme.colorScheme.onSurfaceVariant)\n+ } else {\n+ null\n+ },\n+ trailingIcon = {\n+ when (address) {\n+ is JoinAddress.Loaded -> Icon(\n+ imageVector = Icons.Filled.Share,\n+ contentDescription = stringResource(R.string.netplay_address_share),\n+ )\n+\n+ is JoinAddress.Unknown -> Icon(\n+ imageVector = Icons.Filled.Refresh,\n+ contentDescription = stringResource(R.string.netplay_address_retry),\n+ )\n+\n+ is JoinAddress.Loading -> CircularProgressIndicator(\n+ modifier = Modifier.size(24.dp),\n+ strokeWidth = 2.dp,\n+ )\n+ }\n+ },\n+ modifier = modifier,\n+ )\n+}\n+\n+/**\n+ * A table arranged into columns sized to wrap the largest item. Except the\n+ * first column which takes up the remaining space left by the other columns.\n+ * The first row is treated as the column titles.\n+ */\n+@Composable\n+private fun PlayersTable(\n+ rows: List<List<String>>,\n+ modifier: Modifier = Modifier,\n+) {\n+ rows.zipWithNext { a, b -> if (a.size != b.size) throw IllegalArgumentException("Rows must all contain the same number of elements.") }\n+ val maxWidths = remember { List(rows.first().size) { mutableIntStateOf(0) } }\n+ val density = LocalDensity.current\n+\n+ Column(\n+ verticalArrangement = Arrangement.spacedBy(6.dp),\n+ modifier = modifier\n+ ) {\n+ rows.forEachIndexed { rowIndex, row ->\n+ Row(\n+ horizontalArrangement = Arrangement.spacedBy(16.dp),\n+ ) {\n+ row.forEachIndexed { itemIndex, text ->\n+ Box(\n+ modifier = Modifier\n+ .then(\n+ when {\n+ itemIndex == 0 -> Modifier.weight(1f)\n+\n+ maxWidths[itemIndex].intValue > 0 -> Modifier\n+ .width(with(density) { maxWidths[itemIndex].intValue.toDp() })\n+\n+ else -> Modifier\n+ }\n+ )\n+ .onGloballyPositioned { coordinates ->\n+ val width = coordinates.size.width\n+ if (width > maxWidths[itemIndex].intValue) {\n+ maxWidths[itemIndex].intValue = width\n+ }\n+ }\n+ ) {\n+ Text(\n+ text = text,\n+ fontWeight = if (rowIndex == 0) FontWeight.Medium else FontWeight.Normal,\n+ style = MaterialTheme.typography.bodyMedium,\n+ )\n+ }\n+ }\n+ }\n+ if (rowIndex == 0) {\n+ HorizontalDivider()\n+ }\n+ }\n+ }\n+}\n+\n+@OptIn(ExperimentalMaterial3Api::class)\n+@Composable\n+private fun NetworkModeDropdown(\n+ networkMode: NetworkMode,\n+ onNetworkModeChanged: (NetworkMode) -> Unit,\n+) {\n+ var expanded by remember { mutableStateOf(false) }\n+\n+ ExposedDropdownMenuBox(\n+ expanded = expanded,\n+ onExpandedChange = { expanded = it },\n+ ) {\n+ OutlinedTextField(\n+ value = stringResource(networkMode.labelId),\n+ onValueChange = {},\n+ readOnly = true,\n+ label = { Text(stringResource(R.string.netplay_network_mode_label)) },\n+ trailingIcon = { ExposedDropdownMenuDefaults.TrailingIcon(expanded = expanded) },\n+ colors = ExposedDropdownMenuDefaults.outlinedTextFieldColors(),\n+ modifier = Modifier\n+ .menuAnchor(MenuAnchorType.PrimaryNotEditable)\n+ .fillMaxWidth(),\n+ )\n+ ExposedDropdownMenu(\n+ expanded = expanded,\n+ onDismissRequest = { expanded = false },\n+ ) {\n+ // No golf mode for now since it requires in game UI.\n+ listOf(NetworkMode.FAIR_INPUT_DELAY, NetworkMode.HOST_INPUT_AUTHORITY).forEach { mode ->\n+ DropdownMenuItem(\n+ text = { Text(stringResource(mode.labelId)) },\n+ onClick = {\n+ onNetworkModeChanged(mode)\n+ expanded = false\n+ },\n+ )\n+ }\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun BufferInput(\n+ value: Int,\n+ onValueChange: (Int) -> Unit,\n+ label: String,\n+) {\n+ val range = 0..99\n+ var maybeEmptyValue by remember(value) {\n+ mutableStateOf("$value")\n+ }\n+\n+ Row(\n+ verticalAlignment = Alignment.CenterVertically,\n+ modifier = Modifier\n+ .fillMaxWidth()\n+ ) {\n+ OutlinedTextField(\n+ value = TextFieldValue(\n+ text = maybeEmptyValue,\n+ selection = TextRange(maybeEmptyValue.length)\n+ ),\n+ onValueChange = { newValue ->\n+ if (newValue.text.isEmpty()) {\n+ maybeEmptyValue = newValue.text\n+ return@OutlinedTextField\n+ }\n+ newValue.text.toIntOrNull()?.let {\n+ if (it in range) {\n+ onValueChange(it)\n+ }\n+ }\n+ },\n+ label = { Text(label) },\n+ textStyle = LocalTextStyle.current.copy(\n+ textAlign = TextAlign.Center\n+ ),\n+ keyboardOptions = KeyboardOptions(\n+ keyboardType = KeyboardType.Number,\n+ ),\n+ singleLine = true,\n+ modifier = Modifier\n+ .weight(1f)\n+ )\n+\n+ Spacer(modifier = Modifier.width(12.dp))\n+\n+ Button(\n+ onClick = {\n+ if (maybeEmptyValue.isEmpty()) {\n+ maybeEmptyValue = "0"\n+ onValueChange(0)\n+ } else {\n+ val newValue = value - 1\n+ if (newValue in range) {\n+ onValueChange(newValue)\n+ }\n+ }\n+ },\n+ shape = RoundedCornerShape(\n+ topStartPercent = 50,\n+ topEndPercent = 0,\n+ bottomEndPercent = 0,\n+ bottomStartPercent = 50,\n+ ),\n+ modifier = Modifier\n+ .height(60.dp)\n+ .padding(top = 8.dp)\n+ ) {\n+ Icon(Icons.Filled.Remove, contentDescription = "Back")\n+ }\n+\n+ Spacer(modifier = Modifier.width(2.dp))\n+\n+ Button(\n+ onClick = {\n+ if (maybeEmptyValue.isEmpty()) {\n+ maybeEmptyValue = "0"\n+ onValueChange(0)\n+ } else {\n+ val newValue = value + 1\n+ if (newValue in range) {\n+ onValueChange(newValue)\n+ }\n+ }\n+ },\n+ shape = RoundedCornerShape(\n+ topStartPercent = 0,\n+ topEndPercent = 50,\n+ bottomEndPercent = 50,\n+ bottomStartPercent = 0,\n+ ),\n+ modifier = Modifier\n+ .height(60.dp)\n+ .padding(top = 8.dp)\n+ ) {\n+ Icon(Icons.Filled.Add, contentDescription = "Back")\n+ }\n+ }\n+}\n+\n+@Composable\n+private fun SaveTransferProgressDialog(\n+ saveTransferProgress: SaveTransferProgress,\n+ onDismiss: () -> Unit,\n+) {\n+ AlertDialog(\n+ title = { Text(saveTransferProgress.title) },\n+ text = {\n+ Column(\n+ verticalArrangement = Arrangement.spacedBy(12.dp),\n+ modifier = Modifier.verticalScroll(rememberScrollState()),\n+ ) {\n+ saveTransferProgress.playerProgresses.forEachIndexed { index, playerProgress ->\n+ SaveTransferProgressRow(\n+ playerProgress = playerProgress,\n+ totalSize = saveTransferProgress.totalSize,\n+ )\n+\n+ if (index < saveTransferProgress.playerProgresses.lastIndex) {\n+ HorizontalDivider()\n+ }\n+ }\n+ }\n+ },\n+ confirmButton = {\n+ TextButton(onClick = onDismiss) {\n+ Text(stringResource(R.string.netplay_save_transfer_progress_close))\n+ }\n+ },\n+ onDismissRequest = onDismiss,\n+ )\n+}\n+\n+@Composable\n+private fun SaveTransferProgressRow(\n+ playerProgress: SaveTransferProgress.PlayerProgress,\n+ totalSize: Long,\n+) {\n+ fun formatMib(bytes: Long) = String.format(Locale.US, "%.2f", bytes / 1024f / 1024f)\n+ val progressFraction = (playerProgress.progress.toFloat() / totalSize).coerceIn(0f, 1f)\n+\n+ Column(\n+ verticalArrangement = Arrangement.spacedBy(8.dp),\n+ ) {\n+ LinearProgressIndicator(\n+ progress = { progressFraction },\n+ modifier = Modifier.fillMaxWidth(),\n+ )\n+ Row(\n+ modifier = Modifier.fillMaxWidth(),\n+ ) {\n+ Text(\n+ text = playerProgress.name,\n+ modifier = Modifier.weight(1f),\n+ )\n+ Spacer(modifier = Modifier.width(16.dp))\n+ Text(\n+ text = "${formatMib(playerProgress.progress)}/${formatMib(totalSize)} MiB",', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/ui/NetplayScreen.kt', 'position': 1160, 'original_position': 1160, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This string should be a string resource so it's translatable. (We currently don't have translations, but we would like to add them.)", 'created_at': '2026-05-13T13:04:13Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234454954', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234454954'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234454954'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234454954/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234547814, 'node_id': 'PRRC_kwDOALCn2M7Ay0hm', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234547814', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -615,6 +774,62 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)\n s_game_file_cache_pointer = env->GetFieldID(game_file_cache_class, "pointer", "J");\n env->DeleteLocalRef(game_file_cache_class);\n \n+ const jclass game_file_cache_manager_class =\n+ env->FindClass("org/dolphinemu/dolphinemu/services/GameFileCacheManager");\n+ s_game_file_cache_manager_class =\n+ reinterpret_cast<jclass>(env->NewGlobalRef(game_file_cache_manager_class));\n+ s_game_file_cache_manager_instance = env->GetStaticFieldID(\n+ game_file_cache_manager_class, "gameFileCache",\n+ "Lorg/dolphinemu/dolphinemu/model/GameFileCache;");', 'path': 'Source/Android/jni/AndroidCommon/IDCache.cpp', 'position': 183, 'original_position': 183, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Please mark the corresponding field in Kotlin as `@Keep` so it won't accidentally get optimized out. Same for the `NetplaySession` fields below.", 'created_at': '2026-05-13T13:18:30Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234547814', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234547814'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234547814'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234547814/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234557448, 'node_id': 'PRRC_kwDOALCn2M7Ay24I', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234557448', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -615,6 +774,62 @@ JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)\n s_game_file_cache_pointer = env->GetFieldID(game_file_cache_class, "pointer", "J");\n env->DeleteLocalRef(game_file_cache_class);\n \n+ const jclass game_file_cache_manager_class =\n+ env->FindClass("org/dolphinemu/dolphinemu/services/GameFileCacheManager");\n+ s_game_file_cache_manager_class =\n+ reinterpret_cast<jclass>(env->NewGlobalRef(game_file_cache_manager_class));\n+ s_game_file_cache_manager_instance = env->GetStaticFieldID(\n+ game_file_cache_manager_class, "gameFileCache",\n+ "Lorg/dolphinemu/dolphinemu/model/GameFileCache;");\n+ env->DeleteLocalRef(game_file_cache_manager_class);\n+\n+ const jclass netplay_class =\n+ env->FindClass("org/dolphinemu/dolphinemu/features/netplay/NetplaySession");\n+ s_netplay_class = reinterpret_cast<jclass>(env->NewGlobalRef(netplay_class));\n+ s_net_play_ui_callbacks_pointer =\n+ env->GetFieldID(netplay_class, "netPlayUICallbacksPointer", "J");\n+ s_net_play_client_pointer = env->GetFieldID(netplay_class, "netPlayClientPointer", "J");\n+ s_net_play_server_pointer = env->GetFieldID(netplay_class, "netPlayServerPointer", "J");\n+ s_netplay_on_boot_game = env->GetMethodID(netplay_class, "onBootGame", "(Ljava/lang/String;J)V");\n+ s_netplay_on_stop_game = env->GetMethodID(netplay_class, "onStopGame", "()V");\n+ s_netplay_on_connection_lost = env->GetMethodID(netplay_class, "onConnectionLost", "()V");\n+ s_netplay_on_connection_error = env->GetMethodID(netplay_class, "onConnectionError", "(Ljava/lang/String;)V");\n+ s_netplay_on_game_changed =\n+ env->GetMethodID(netplay_class, "onGameChanged", "(Ljava/lang/String;)V");\n+ s_netplay_on_host_input_authority_changed =\n+ env->GetMethodID(netplay_class, "onHostInputAuthorityChanged", "(Z)V");\n+ s_netplay_on_pad_buffer_changed =\n+ env->GetMethodID(netplay_class, "onPadBufferChanged", "(I)V");\n+ s_netplay_on_chat_message_received =\n+ env->GetMethodID(netplay_class, "onChatMessageReceived", "(Ljava/lang/String;)V");\n+ s_netplay_update = env->GetMethodID(netplay_class, "onUpdate", "([Lorg/dolphinemu/dolphinemu/features/netplay/model/Player;)V");\n+ s_netplay_on_show_chunked_progress_dialog =\n+ env->GetMethodID(netplay_class, "onShowChunkedProgressDialog", "(Ljava/lang/String;J[I)V");\n+ s_netplay_on_set_chunked_progress =\n+ env->GetMethodID(netplay_class, "onSetChunkedProgress", "(IJ)V");\n+ s_netplay_on_hide_chunked_progress_dialog =\n+ env->GetMethodID(netplay_class, "onHideChunkedProgressDialog", "()V");\n+ s_netplay_on_desync =\n+ env->GetMethodID(netplay_class, "onDesync", "(ILjava/lang/String;)V");\n+ s_netplay_on_show_game_digest_dialog =\n+ env->GetMethodID(netplay_class, "onShowGameDigestDialog", "(Ljava/lang/String;)V");\n+ s_netplay_on_set_game_digest_progress =\n+ env->GetMethodID(netplay_class, "onSetGameDigestProgress", "(II)V");\n+ s_netplay_on_set_game_digest_result =\n+ env->GetMethodID(netplay_class, "onSetGameDigestResult", "(ILjava/lang/String;)V");\n+ s_netplay_on_abort_game_digest =\n+ env->GetMethodID(netplay_class, "onAbortGameDigest", "()V");\n+ s_netplay_on_traversal_state_changed = env->GetMethodID(\n+ netplay_class, "onTraversalStateChanged",\n+ "(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)V");\n+ env->DeleteLocalRef(netplay_class);\n+\n+ const jclass netplay_player_class =\n+ env->FindClass("org/dolphinemu/dolphinemu/features/netplay/model/Player");\n+ s_netplay_player_class = reinterpret_cast<jclass>(env->NewGlobalRef(netplay_player_class));\n+ s_netplay_player_constructor = env->GetMethodID(netplay_player_class, "<init>", "(ILjava/lang/String;Ljava/lang/String;IZLjava/lang/String;)V");', 'path': 'Source/Android/jni/AndroidCommon/IDCache.cpp', 'position': 230, 'original_position': 230, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': "`@Keep` should be added for `Player`'s constructor.", 'created_at': '2026-05-13T13:19:52Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234557448', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234557448'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234557448'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234557448/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234567927, 'node_id': 'PRRC_kwDOALCn2M7Ay5b3', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234567927', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,38 @@\n+// Copyright 2003 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+package org.dolphinemu.dolphinemu.features.netplay\n+\n+import kotlinx.coroutines.CompletableDeferred\n+import kotlinx.coroutines.sync.Mutex\n+import kotlinx.coroutines.sync.withLock\n+\n+object NetplayManager {\n+\n+ private val mutex = Mutex()\n+\n+ @Volatile\n+ private var closeComplete: CompletableDeferred<Unit>? = null\n+\n+ @Volatile\n+ var activeSession: NetplaySession? = null\n+ private set\n+\n+ suspend fun createSession(): NetplaySession = mutex.withLock {\n+ closeComplete?.await()\n+\n+ // Sessions should be closed by UI navigation, but just in case.\n+ activeSession?.closeBlocking()\n+\n+ closeComplete = CompletableDeferred()\n+\n+ NetplaySession(\n+ onClosed = {\n+ activeSession = null', 'path': 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/netplay/NetplayManager.kt', 'position': 31, 'original_position': 31, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': 'Since `activeSession` is a native pointer: Do we have a guarantee that nobody is using `activeSession` anymore at the point this runs?', 'created_at': '2026-05-13T13:21:13Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234567927', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234567927'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234567927'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234567927/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234596298, 'node_id': 'PRRC_kwDOALCn2M7AzAXK', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234596298', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,455 @@\n+// Copyright 2003 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <android/log.h>\n+\n+#include "UICommon/GameFile.h"\n+#include "UICommon/UICommon.h"\n+#include "NetPlayUICallbacks.h"\n+#include "Common/TraversalClient.h"\n+#include "Core/Boot/Boot.h"\n+#include "Core/Core.h"\n+#include "Core/System.h"\n+#include "jni/AndroidCommon/AndroidCommon.h"\n+#include "jni/AndroidCommon/IDCache.h"\n+\n+namespace\n+{\n+std::string InetAddressToString(const Common::TraversalInetAddress& addr)\n+{\n+ std::string ip;\n+\n+ if (addr.isIPV6)\n+ {\n+ ip = "IPv6-Not-Implemented";\n+ }\n+ else\n+ {\n+ const auto ipv4 = reinterpret_cast<const u8*>(addr.address);\n+ ip = std::to_string(ipv4[0]);\n+ for (u32 i = 1; i != 4; ++i)\n+ {\n+ ip += ".";\n+ ip += std::to_string(ipv4[i]);\n+ }\n+ }\n+\n+ return ip + ":" + std::to_string(ntohs(addr.port));\n+}\n+\n+const char* FailureReasonToString(Common::TraversalClient::FailureReason reason)\n+{\n+ switch (reason)\n+ {\n+ case Common::TraversalClient::FailureReason::BadHost:\n+ return "BadHost";\n+ case Common::TraversalClient::FailureReason::VersionTooOld:\n+ return "VersionTooOld";\n+ case Common::TraversalClient::FailureReason::ServerForgotAboutUs:\n+ return "ServerForgotAboutUs";\n+ case Common::TraversalClient::FailureReason::SocketSendError:\n+ return "SocketSendError";\n+ case Common::TraversalClient::FailureReason::ResendTimeout:\n+ return "ResendTimeout";\n+ default:\n+ return "Unknown";\n+ }\n+}\n+} // namespace\n+\n+namespace NetPlay {\n+\n+NetPlayUICallbacks::NetPlayUICallbacks(jobject netplay_session,\n+ std::vector<std::shared_ptr<const UICommon::GameFile>> games)\n+ : m_netplay_session(IDCache::GetEnvForThread()->NewWeakGlobalRef(netplay_session)),\n+ m_games(std::move(games))\n+{\n+ m_state_changed_hook = Core::AddOnStateChangedCallback([this](Core::State state) {\n+ if ((state == Core::State::Uninitialized || state == Core::State::Stopping) &&\n+ !m_got_stop_request)\n+ {\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ jobject netplay_session = GetNetplaySessionLocalRef(env);\n+ if (!netplay_session)\n+ return;\n+\n+ auto* client = reinterpret_cast<NetPlay::NetPlayClient*>(\n+ env->GetLongField(netplay_session, IDCache::GetNetPlayClientPointer()));\n+ if (client)\n+ client->RequestStopGame();\n+\n+ env->DeleteLocalRef(netplay_session);\n+ }\n+ });\n+}\n+\n+NetPlayUICallbacks::~NetPlayUICallbacks()\n+{\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ env->DeleteWeakGlobalRef(m_netplay_session);\n+}\n+\n+jobject NetPlayUICallbacks::GetNetplaySessionLocalRef(JNIEnv* env) const\n+{\n+ return env->NewLocalRef(m_netplay_session);\n+}\n+\n+void NetPlayUICallbacks::BootGame(const std::string& filename,\n+ std::unique_ptr<BootSessionData> boot_session_data)\n+{\n+ m_got_stop_request = false;\n+\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ jobject netplay_session = GetNetplaySessionLocalRef(env);\n+ if (!netplay_session)\n+ return;\n+\n+ env->CallVoidMethod(netplay_session, IDCache::GetNetplayOnBootGame(), ToJString(env, filename),\n+ reinterpret_cast<jlong>(boot_session_data.release()));\n+ env->DeleteLocalRef(netplay_session);\n+}\n+\n+void NetPlayUICallbacks::StopGame()\n+{\n+ if (m_got_stop_request)\n+ return;\n+\n+ m_got_stop_request = true;\n+\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ jobject netplay_session = GetNetplaySessionLocalRef(env);\n+ if (!netplay_session)\n+ return;\n+\n+ env->CallVoidMethod(netplay_session, IDCache::GetNetplayOnStopGame());\n+ env->DeleteLocalRef(netplay_session);\n+}\n+\n+// Only used by Qt UI code, never by the C++ core. On Android, hosting state\n+// is tracked in Kotlin (NetplaySession.isHosting).\n+bool NetPlayUICallbacks::IsHosting() const { return false; }\n+\n+void NetPlayUICallbacks::Update()\n+{\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ jobject netplay_session = GetNetplaySessionLocalRef(env);\n+ if (!netplay_session)\n+ return;\n+\n+ auto* client = reinterpret_cast<NetPlay::NetPlayClient*>(\n+ env->GetLongField(netplay_session, IDCache::GetNetPlayClientPointer()));\n+ if (!client)\n+ {\n+ env->DeleteLocalRef(netplay_session);\n+ return;\n+ }\n+\n+ const std::vector<const NetPlay::Player*> players = client->GetPlayers();\n+\n+ jobjectArray player_array =\n+ env->NewObjectArray(static_cast<jsize>(players.size()), IDCache::GetNetplayPlayerClass(), nullptr);\n+\n+ for (jsize i = 0; i < static_cast<jsize>(players.size()); i++)\n+ {\n+ const NetPlay::Player* player = players[i];\n+ const std::string mapping = NetPlay::GetPlayerMappingString(\n+ player->pid, client->GetPadMapping(), client->GetGBAConfig(), client->GetWiimoteMapping());\n+ jobject player_obj = env->NewObject(\n+ IDCache::GetNetplayPlayerClass(), IDCache::GetNetplayPlayerConstructor(),\n+ static_cast<jint>(player->pid),\n+ ToJString(env, player->name),\n+ ToJString(env, player->revision),\n+ static_cast<jint>(player->ping),\n+ static_cast<jboolean>(player->IsHost()),\n+ ToJString(env, mapping));\n+ env->SetObjectArrayElement(player_array, i, player_obj);\n+ env->DeleteLocalRef(player_obj);\n+ }\n+\n+ env->CallVoidMethod(netplay_session, IDCache::GetNetplayUpdate(), player_array);\n+ env->DeleteLocalRef(player_array);\n+ env->DeleteLocalRef(netplay_session);\n+}\n+\n+void NetPlayUICallbacks::AppendChat(const std::string& message)\n+{\n+ JNIEnv* env = IDCache::GetEnvForThread();\n+ jobject netplay_session = GetNetplaySessionLocalRef(env);\n+ if (!netplay_session)\n+ return;\n+\n+ env->CallVoidMethod(netplay_session, IDCache::GetNetplayOnChatMessageReceived(),\n+ ToJString(env, message));\n+ env->DeleteLocalRef(netplay_session);', 'path': 'Source/Android/jni/NetPlay/NetPlayUICallbacks.cpp', 'position': 183, 'original_position': 183, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'user': {'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This pattern where you get the local ref, do something with it, and then delete it occurs many times in this file. A helper function that takes a lambda for the thing you actually want to do would be useful.', 'created_at': '2026-05-13T13:24:55Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234596298', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234596298'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234596298'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234596298/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234631684, 'node_id': 'PRRC_kwDOALCn2M7AzJAE', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234631684', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,261 @@\n+// Copyright 2003 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <memory>\n+#include <string>\n+#include <vector>\n+\n+#include <jni.h>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/TraversalClient.h"\n+#include "Core/NetPlayCommon.h"\n+#include "Core/Boot/Boot.h"\n+#include "Core/Config/NetplaySettings.h"\n+#include "Core/NetPlayClient.h"\n+#include "Core/NetPlayServer.h"\n+#include "UICommon/GameFile.h"\n+#include "UICommon/GameFileCache.h"\n+\n+#include "jni/AndroidCommon/AndroidCommon.h"\n+#include "jni/AndroidCommon/IDCache.h"\n+#include "jni/NetPlay/NetPlayUICallbacks.h"\n+\n+static NetPlay::NetPlayUICallbacks* GetUICallbacksPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayUICallbacks*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayUICallbacksPointer()));\n+}\n+\n+static NetPlay::NetPlayClient* GetClientPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayClient*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayClientPointer()));\n+}\n+\n+static NetPlay::NetPlayServer* GetServerPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayServer*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayServerPointer()));\n+}\n+\n+extern "C" {\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeSendMessage(JNIEnv* env, jobject obj,\n+ jstring jmessage)\n+{\n+ if (auto* client = GetClientPointer(env, obj))\n+ client->SendChatMessage(GetJString(env, jmessage));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeSetHostInputAuthority(\n+ JNIEnv* env, jobject obj, jboolean enable)\n+{\n+ if (auto* server = GetServerPointer(env, obj))\n+ server->SetHostInputAuthority(static_cast<bool>(enable));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeAdjustClientPadBufferSize(JNIEnv* env,\n+ jobject obj,\n+ jint buffer)\n+{\n+ if (auto* client = GetClientPointer(env, obj))\n+ client->AdjustPadBufferSize(static_cast<u32>(buffer));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeAdjustServerPadBufferSize(\n+ JNIEnv* env, jobject obj, jint buffer)\n+{\n+ if (auto* server = GetServerPointer(env, obj))\n+ server->AdjustPadBufferSize(static_cast<u32>(buffer));\n+}\n+\n+JNIEXPORT jlong JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeCreateUICallbacks(JNIEnv* env,\n+ jobject obj)\n+{\n+ jobject jgame_file_cache = env->GetStaticObjectField(\n+ IDCache::GetGameFileCacheManagerClass(), IDCache::GetGameFileCacheManagerInstance());\n+ auto* game_file_cache = reinterpret_cast<UICommon::GameFileCache*>(\n+ env->GetLongField(jgame_file_cache, IDCache::GetGameFileCachePointer()));\n+\n+ std::vector<std::shared_ptr<const UICommon::GameFile>> games;\n+ game_file_cache->ForEach(', 'path': 'Source/Android/jni/NetPlay/Netplay.cpp', 'position': 87, 'original_position': 87, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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 don't think `GameFileCache::ForEach` is thread safe in case another thread is adding more games.", 'created_at': '2026-05-13T13:29:43Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234631684', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234631684'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234631684'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234631684/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 3234648485, 'node_id': 'PRRC_kwDOALCn2M7AzNGl', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234648485', 'pull_request_review_id': 4281825935, 'diff_hunk': '@@ -0,0 +1,261 @@\n+// Copyright 2003 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include <memory>\n+#include <string>\n+#include <vector>\n+\n+#include <jni.h>\n+\n+#include "Common/CommonTypes.h"\n+#include "Common/TraversalClient.h"\n+#include "Core/NetPlayCommon.h"\n+#include "Core/Boot/Boot.h"\n+#include "Core/Config/NetplaySettings.h"\n+#include "Core/NetPlayClient.h"\n+#include "Core/NetPlayServer.h"\n+#include "UICommon/GameFile.h"\n+#include "UICommon/GameFileCache.h"\n+\n+#include "jni/AndroidCommon/AndroidCommon.h"\n+#include "jni/AndroidCommon/IDCache.h"\n+#include "jni/NetPlay/NetPlayUICallbacks.h"\n+\n+static NetPlay::NetPlayUICallbacks* GetUICallbacksPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayUICallbacks*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayUICallbacksPointer()));\n+}\n+\n+static NetPlay::NetPlayClient* GetClientPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayClient*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayClientPointer()));\n+}\n+\n+static NetPlay::NetPlayServer* GetServerPointer(JNIEnv* env, jobject obj)\n+{\n+ return reinterpret_cast<NetPlay::NetPlayServer*>(\n+ env->GetLongField(obj, IDCache::GetNetPlayServerPointer()));\n+}\n+\n+extern "C" {\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeSendMessage(JNIEnv* env, jobject obj,\n+ jstring jmessage)\n+{\n+ if (auto* client = GetClientPointer(env, obj))\n+ client->SendChatMessage(GetJString(env, jmessage));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeSetHostInputAuthority(\n+ JNIEnv* env, jobject obj, jboolean enable)\n+{\n+ if (auto* server = GetServerPointer(env, obj))\n+ server->SetHostInputAuthority(static_cast<bool>(enable));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeAdjustClientPadBufferSize(JNIEnv* env,\n+ jobject obj,\n+ jint buffer)\n+{\n+ if (auto* client = GetClientPointer(env, obj))\n+ client->AdjustPadBufferSize(static_cast<u32>(buffer));\n+}\n+\n+JNIEXPORT void JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeAdjustServerPadBufferSize(\n+ JNIEnv* env, jobject obj, jint buffer)\n+{\n+ if (auto* server = GetServerPointer(env, obj))\n+ server->AdjustPadBufferSize(static_cast<u32>(buffer));\n+}\n+\n+JNIEXPORT jlong JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeCreateUICallbacks(JNIEnv* env,\n+ jobject obj)\n+{\n+ jobject jgame_file_cache = env->GetStaticObjectField(\n+ IDCache::GetGameFileCacheManagerClass(), IDCache::GetGameFileCacheManagerInstance());\n+ auto* game_file_cache = reinterpret_cast<UICommon::GameFileCache*>(\n+ env->GetLongField(jgame_file_cache, IDCache::GetGameFileCachePointer()));\n+\n+ std::vector<std::shared_ptr<const UICommon::GameFile>> games;\n+ game_file_cache->ForEach(\n+ [&games](const std::shared_ptr<const UICommon::GameFile>& game) { games.push_back(game); });\n+\n+ return reinterpret_cast<jlong>(new NetPlay::NetPlayUICallbacks(obj, std::move(games)));\n+}\n+\n+JNIEXPORT jlong JNICALL\n+Java_org_dolphinemu_dolphinemu_features_netplay_NetplaySession_nativeJoin(JNIEnv* env, jobject obj)\n+{\n+ auto* ui = GetUICallbacksPointer(env, obj);\n+\n+ const std::string traversal_host = Config::Get(Config::NETPLAY_TRAVERSAL_SERVER);\n+ const u16 traversal_port = Config::Get(Config::NETPLAY_TRAVERSAL_PORT);\n+ const std::string nickname = Config::Get(Config::NETPLAY_NICKNAME);\n+\n+ std::string host_ip;\n+ u16 host_port;\n+ bool is_traversal;\n+\n+ // When hosting, join our own server on localhost\n+ if (auto* server = GetServerPointer(env, obj))\n+ {\n+ host_ip = "127.0.0.1";\n+ host_port = server->GetPort();\n+ is_traversal = false;\n+ }\n+ else\n+ {\n+ const std::string traversal_choice = Config::Get(Config::NETPLAY_TRAVERSAL_CHOICE);\n+ is_traversal = traversal_choice == "traversal";\n+ host_ip = is_traversal ? Config::Get(Config::NETPLAY_HOST_CODE) :\n+ Config::Get(Config::NETPLAY_ADDRESS);\n+ host_port = Config::Get(Config::NETPLAY_CONNECT_PORT);\n+ }\n+\n+ auto* client = new NetPlay::NetPlayClient(\n+ host_ip, host_port, ui, nickname,\n+ NetPlay::NetTraversalConfig{is_traversal, traversal_host, traversal_port});\n+\n+ if (!client->IsConnected())\n+ {\n+ delete client;', 'path': 'Source/Android/jni/NetPlay/Netplay.cpp', 'position': 128, 'original_position': 128, 'commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', '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': 'Raw `delete` should be avoided wherever possible. I recommend using an `std::unique_ptr` instead, with a call to `release` in the case that everything succeeds and you pass on the pointer to Java. Same in the function below.', 'created_at': '2026-05-13T13:32:02Z', 'updated_at': '2026-05-13T13:39:35Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234648485', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234648485'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14647#discussion_r3234648485'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14647'}}, 'original_commit_id': '24d57fe33089ae1bfab5aac751e5c0d1cc74caf3', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3234648485/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-13T00:13:59.050134 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'submitted', 'pr_id': 14635, 'pr_title': 'Android: Move alert message log from Kotlin to C++', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14635#pullrequestreview-4277128877', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-12T18:41:21.976885 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'submitted', 'pr_id': 14640, 'pr_title': 'DSPAccelerator: fix overflow behavior', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14640#pullrequestreview-4275188536', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-11T21:45:53.364450 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14506, 'pr_title': 'Add screen crop feature', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#pullrequestreview-4267632286', 'comments': [{'id': 3222339622, 'node_id': 'PRRC_kwDOALCn2M7AEQAm', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222339622', 'pull_request_review_id': 4267632286, 'diff_hunk': '', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 1, 'original_position': 1, 'commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'user': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'To be clear, I\'m talking about the\r\n\r\n```\r\n// This also fails to acknowledge "g_ActiveConfig.bCrop".\r\n```\r\n\r\ncomment. Github doesn\'t seem to display this very well.', 'created_at': '2026-05-11T21:45:51Z', 'updated_at': '2026-05-11T21:45:51Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222339622', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222339622'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222339622'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506'}}, 'original_commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222339622/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3222252335}], 'type': 'gh_pull_request_review'}
2026-05-11T21:41:21.380495 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14506, 'pr_title': 'Add screen crop feature', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#pullrequestreview-4267608790', 'comments': [{'id': 3222317622, 'node_id': 'PRRC_kwDOALCn2M7AEKo2', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222317622', 'pull_request_review_id': 4267608790, 'diff_hunk': '@@ -498,33 +498,76 @@ void Presenter::AdjustRectanglesToFitBounds(MathUtil::Rectangle<int>* target_rec\n MathUtil::Rectangle<int>* source_rect, int fb_width,\n int fb_height)\n {\n- const int orig_target_width = target_rect->GetWidth();\n- const int orig_target_height = target_rect->GetHeight();\n- const int orig_source_width = source_rect->GetWidth();\n- const int orig_source_height = source_rect->GetHeight();\n- if (target_rect->left < 0)\n+ const int efb_scale = g_framebuffer_manager->GetEFBScale();\n+ MathUtil::Rectangle<int> original_source_rect = *source_rect;', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 10, 'original_position': 10, 'commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'user': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'This can be moved into the ` if (g_ActiveConfig.bCropCustom)` branch.', 'created_at': '2026-05-11T21:41:18Z', 'updated_at': '2026-05-11T21:41:18Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222317622', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222317622'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222317622'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506'}}, 'original_commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222317622/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-11T21:37:33.059463 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14506, 'pr_title': 'Add screen crop feature', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#pullrequestreview-4267592670', 'comments': [{'id': 3222300947, 'node_id': 'PRRC_kwDOALCn2M7AEGkT', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222300947', 'pull_request_review_id': 4267592670, 'diff_hunk': '@@ -498,33 +498,76 @@ void Presenter::AdjustRectanglesToFitBounds(MathUtil::Rectangle<int>* target_rec\n MathUtil::Rectangle<int>* source_rect, int fb_width,\n int fb_height)\n {\n- const int orig_target_width = target_rect->GetWidth();\n- const int orig_target_height = target_rect->GetHeight();\n- const int orig_source_width = source_rect->GetWidth();\n- const int orig_source_height = source_rect->GetHeight();\n- if (target_rect->left < 0)\n+ const int efb_scale = g_framebuffer_manager->GetEFBScale();\n+ MathUtil::Rectangle<int> original_source_rect = *source_rect;\n+\n+ // Crop the content.\n+ if (g_ActiveConfig.bCropCustom)\n {\n- const int offset = -target_rect->left;\n+ const int crop_left = g_ActiveConfig.iCropCustomLeft * efb_scale;\n+ const int crop_right = g_ActiveConfig.iCropCustomRight * efb_scale;\n+ const int crop_top = g_ActiveConfig.iCropCustomTop * efb_scale;\n+ const int crop_bottom = g_ActiveConfig.iCropCustomBottom * efb_scale;\n+\n+ source_rect->left = std::min(source_rect->left + crop_left, source_rect->right);\n+ source_rect->right = std::max(source_rect->right - crop_right, source_rect->left);\n+ source_rect->top = std::min(source_rect->top + crop_top, source_rect->bottom);\n+ source_rect->bottom = std::max(source_rect->bottom - crop_bottom, source_rect->top);\n+\n+ const float ratio_diff_width = static_cast<float>(source_rect->GetWidth()) /\n+ static_cast<float>(original_source_rect.GetWidth());\n+ const float ratio_diff_height = static_cast<float>(source_rect->GetHeight()) /\n+ static_cast<float>(original_source_rect.GetHeight());\n+\n+ const int new_width = static_cast<float>(target_rect->GetWidth()) * ratio_diff_width;\n+ const int new_height = static_cast<float>(target_rect->GetHeight()) * ratio_diff_height;\n+\n target_rect->left = 0;\n- source_rect->left += offset * orig_source_width / orig_target_width;\n- }\n- if (target_rect->right > fb_width)\n- {\n- const int offset = target_rect->right - fb_width;\n- target_rect->right -= offset;\n- source_rect->right -= offset * orig_source_width / orig_target_width;\n+ target_rect->right = new_width;\n+ target_rect->top = 0;\n+ target_rect->bottom = new_height;\n }\n- if (target_rect->top < 0)\n+\n+ // Center the content.\n+ const double source_aspect_ratio =\n+ static_cast<double>(source_rect->GetWidth()) / static_cast<double>(source_rect->GetHeight());\n+ const double target_aspect_ratio =\n+ static_cast<double>(target_rect->GetWidth()) / static_cast<double>(target_rect->GetHeight());\n+ const double framebuffer_aspect_ratio =\n+ static_cast<double>(fb_width) / static_cast<double>(fb_height);\n+ const double source_target_aspect_ratio = source_aspect_ratio / target_aspect_ratio;\n+ const double source_target_framebuffer_aspect_ratio =\n+ source_aspect_ratio / source_target_aspect_ratio / framebuffer_aspect_ratio;', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 57, 'original_position': 57, 'commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'user': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Isn't this just `target_aspect_ratio / framebuffer_aspect_ratio`? `(source/(source/target))` should simplify down to just `target`, no?", 'created_at': '2026-05-11T21:37:30Z', 'updated_at': '2026-05-11T21:37:30Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222300947', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222300947'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222300947'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506'}}, 'original_commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222300947/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-11T21:27:11.544964 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14506, 'pr_title': 'Add screen crop feature', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14506#pullrequestreview-4267535967', 'comments': [{'id': 3222252335, 'node_id': 'PRRC_kwDOALCn2M7AD6sv', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222252335', 'pull_request_review_id': 4267535967, 'diff_hunk': '', 'path': 'Source/Core/VideoCommon/Present.cpp', 'position': 1, 'original_position': 1, 'commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'user': {'login': 'AdmiralCurtiss', 'id': 4522237, 'node_id': 'MDQ6VXNlcjQ1MjIyMzc=', 'avatar_url': 'https://avatars.githubusercontent.com/u/4522237?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/AdmiralCurtiss', 'html_url': 'https://github.com/AdmiralCurtiss', 'followers_url': 'https://api.github.com/users/AdmiralCurtiss/followers', 'following_url': 'https://api.github.com/users/AdmiralCurtiss/following{/other_user}', 'gists_url': 'https://api.github.com/users/AdmiralCurtiss/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/AdmiralCurtiss/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/AdmiralCurtiss/subscriptions', 'organizations_url': 'https://api.github.com/users/AdmiralCurtiss/orgs', 'repos_url': 'https://api.github.com/users/AdmiralCurtiss/repos', 'events_url': 'https://api.github.com/users/AdmiralCurtiss/events{/privacy}', 'received_events_url': 'https://api.github.com/users/AdmiralCurtiss/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This comment now references a non-existent variable, you don't have to fix the bug that's acknowledged here but please update the comment.", 'created_at': '2026-05-11T21:27:08Z', 'updated_at': '2026-05-11T21:27:08Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222252335', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222252335'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14506#discussion_r3222252335'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14506'}}, 'original_commit_id': 'a5059cbca81c31fbbfceb2180b82eb59b0fe2fcb', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3222252335/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-11T21:04:09.145093 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14592, 'pr_title': 'DolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14592#pullrequestreview-4267393383', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-11T20:59:26.694061 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 14613, 'pr_title': 'DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14613#pullrequestreview-4267358845', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-09T00:16:00.066773 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'matheuswillder', 'action': 'submitted', 'pr_id': 14581, 'pr_title': "GameINI: Action Replay/Gecko codes to unlock Most Wanted Black Edition and Carbon Collector's Edition in GameCube/Wii's Need for Speed", 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14581#pullrequestreview-4256096797', 'comments': [{'id': 3211965539, 'node_id': 'PRRC_kwDOALCn2M6_crRj', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3211965539', 'pull_request_review_id': 4256096797, 'diff_hunk': '@@ -0,0 +1,14 @@\n+# GOWE69 - NFS Most Wanted\n+\n+[OnFrame]\n+# Add memory patches to be applied every frame here.\n+\n+[ActionReplay]\n+# Add action replay cheats here.\n+\n+[Gecko]\n+$Unlock Black Edition [Xanvier]\n+C241EECC 00000001\n+00000001 00000000\n+\n+[Gecko_RetroAchievements_Verified]', 'path': 'Data/Sys/GameSettings/GOWE69.ini', 'position': 1, 'original_position': 14, 'commit_id': 'a930bc27d2f962a398d2c8063586208d01c73638', 'user': {'login': 'matheuswillder', 'id': 46294160, 'node_id': 'MDQ6VXNlcjQ2Mjk0MTYw', 'avatar_url': 'https://avatars.githubusercontent.com/u/46294160?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/matheuswillder', 'html_url': 'https://github.com/matheuswillder', 'followers_url': 'https://api.github.com/users/matheuswillder/followers', 'following_url': 'https://api.github.com/users/matheuswillder/following{/other_user}', 'gists_url': 'https://api.github.com/users/matheuswillder/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/matheuswillder/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/matheuswillder/subscriptions', 'organizations_url': 'https://api.github.com/users/matheuswillder/orgs', 'repos_url': 'https://api.github.com/users/matheuswillder/repos', 'events_url': 'https://api.github.com/users/matheuswillder/events{/privacy}', 'received_events_url': 'https://api.github.com/users/matheuswillder/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "Never mind, I just reverted again to the previous Gecko code. I had previously ported/converted for this PR the PAL AR code for the GameCube's Carbon and just thought it would be good to do the same with Most Wanted, since both AR codes are from the same person, but I never thought I'd run into an issue like in one game but not in the other. Unfortunately, this is beyond my current skills and I don't have much free time right now to try to figure out why.\r\n\r\nFor my part, I think this PR is ready to be merged, if it's going to be, but as I mentioned in the PR and in some comments, I completely understand if it isn't.", 'created_at': '2026-05-09T00:15:58Z', 'updated_at': '2026-05-09T00:15:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14581#discussion_r3211965539', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14581', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3211965539'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14581#discussion_r3211965539'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14581'}}, 'original_commit_id': 'a930bc27d2f962a398d2c8063586208d01c73638', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3211965539/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3070101757}], 'type': 'gh_pull_request_review'}
2026-05-08T00:53:35.739696 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'matheuswillder', 'action': 'submitted', 'pr_id': 14581, 'pr_title': "GameINI: Action Replay/Gecko codes to unlock Most Wanted Black Edition and Carbon Collector's Edition in GameCube/Wii's Need for Speed", 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14581#pullrequestreview-4248659157', 'comments': [{'id': 3205556629, 'node_id': 'PRRC_kwDOALCn2M6_EOmV', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205556629', 'pull_request_review_id': 4248659157, 'diff_hunk': '@@ -0,0 +1,14 @@\n+# GOWE69 - NFS Most Wanted\n+\n+[OnFrame]\n+# Add memory patches to be applied every frame here.\n+\n+[ActionReplay]\n+# Add action replay cheats here.\n+\n+[Gecko]\n+$Unlock Black Edition [Xanvier]\n+C241EECC 00000001\n+00000001 00000000\n+\n+[Gecko_RetroAchievements_Verified]', 'path': 'Data/Sys/GameSettings/GOWE69.ini', 'position': 1, 'original_position': 14, 'commit_id': 'a930bc27d2f962a398d2c8063586208d01c73638', 'user': {'login': 'matheuswillder', 'id': 46294160, 'node_id': 'MDQ6VXNlcjQ2Mjk0MTYw', 'avatar_url': 'https://avatars.githubusercontent.com/u/46294160?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/matheuswillder', 'html_url': 'https://github.com/matheuswillder', 'followers_url': 'https://api.github.com/users/matheuswillder/followers', 'following_url': 'https://api.github.com/users/matheuswillder/following{/other_user}', 'gists_url': 'https://api.github.com/users/matheuswillder/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/matheuswillder/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/matheuswillder/subscriptions', 'organizations_url': 'https://api.github.com/users/matheuswillder/orgs', 'repos_url': 'https://api.github.com/users/matheuswillder/repos', 'events_url': 'https://api.github.com/users/matheuswillder/events{/privacy}', 'received_events_url': 'https://api.github.com/users/matheuswillder/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '@jordan-woyak sorry to take your time with this, but just a quick question. Earlier today I ported/converted an AR PAL cheat code to NTSC for Most Wanted, and tested it for quite a while before updating this PR with it, it works fine. But tonight, I went to play with it on my main Dolphin installation, and I get the error message in the image below. It only happens if "Skip Main Menu" is unchecked, i.e., if I run the game with the GameCube BIOS intro. This is the first time I\'ve ported/converted cheats and messed with them, so my technical knowledge still is very limited. Is there anything obvious that I could do to fix this, or should I just revert to the previous Gecko code?\r\n<img width="550" height="414" alt="Captura de tela de 2026-05-07 21-40-49" src="https://github.com/user-attachments/assets/2eb956e4-884d-413f-9558-6b01f3666f52" />', 'created_at': '2026-05-08T00:53:33Z', 'updated_at': '2026-05-08T00:53:33Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14581#discussion_r3205556629', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14581', 'author_association': 'CONTRIBUTOR', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205556629'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14581#discussion_r3205556629'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14581'}}, 'original_commit_id': 'a930bc27d2f962a398d2c8063586208d01c73638', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205556629/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'in_reply_to_id': 3070101757}], 'type': 'gh_pull_request_review'}
2026-05-08T00:14:54.057015 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'submitted', 'pr_id': 14635, 'pr_title': 'Android: Move alert message log from Kotlin to C++', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14635#pullrequestreview-4248483222', 'comments': [{'id': 3205395260, 'node_id': 'PRRC_kwDOALCn2M6_DnM8', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205395260', 'pull_request_review_id': 4248483222, 'diff_hunk': '@@ -203,6 +203,9 @@ std::unique_ptr<GBAHostInterface> Host_CreateGBAHost(std::weak_ptr<HW::GBA::Core\n \n static bool MsgAlert(const char* caption, const char* text, bool yes_no, Common::MsgType style)\n {\n+ __android_log_print(ANDROID_LOG_ERROR, DOLPHIN_TAG, "%s",\n+ (std::string("[NativeLibrary] Alert: ") + text).c_str());', 'path': 'Source/Android/jni/MainAndroid.cpp', 'position': 5, 'original_position': 5, 'commit_id': '79c2d7b8e548dff37a0af1c6e56b67627d59d9fe', 'user': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'How about this:\n```\n__android_log_print(ANDROID_LOG_ERROR, DOLPHIN_TAG, "[NativeLibrary] Alert: %s", text);\n```', 'created_at': '2026-05-08T00:14:51Z', 'updated_at': '2026-05-08T00:14:51Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14635#discussion_r3205395260', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14635', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205395260'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14635#discussion_r3205395260'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14635'}}, 'original_commit_id': '79c2d7b8e548dff37a0af1c6e56b67627d59d9fe', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3205395260/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2026-05-07T02:11:55.146709 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 14448, 'pr_title': 'WiimoteAudioMixerV1', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14448#pullrequestreview-4240810973', 'comments': [], 'type': 'gh_pull_request_review'}
2026-05-06T22:23:09.737751 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'submitted', 'pr_id': 14645, 'pr_title': 'MsgHandler: Use LogLevel matching MsgType for alerts', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/14645#pullrequestreview-4240008526', 'comments': [], 'type': 'gh_pull_request_review'}
Recent 'gh_push' events
2026-05-14T22:36:51.512637 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'after_sha': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'commits': [{'author': {'name': 'Weston Heard', 'email': 'weston.heard@gmail.com', 'date': '2026-03-10T14:49:15-05:00', 'username': 'TheShrubMaster'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/AudioCommon/CubebStream.h', 'Source/Core/AudioCommon/CubebUtils.cpp', 'Source/Core/AudioCommon/CubebUtils.h', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/HW/WiimoteEmu/Speaker.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/Core/State.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.h'], 'removed': [], 'message': 'AudioCommon: Add individual Wiimote audio mixer\n\nAlso incremented STATE_VERSION.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/adcfbda2a3436151771c80f654c5c490ad9478a3', 'hash': 'adcfbda2a3436151771c80f654c5c490ad9478a3'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-05-14T18:36:49-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/AudioCommon/CubebStream.cpp', 'Source/Core/AudioCommon/CubebStream.h', 'Source/Core/AudioCommon/CubebUtils.cpp', 'Source/Core/AudioCommon/CubebUtils.h', 'Source/Core/AudioCommon/Mixer.cpp', 'Source/Core/AudioCommon/Mixer.h', 'Source/Core/Core/Config/MainSettings.cpp', 'Source/Core/Core/Config/MainSettings.h', 'Source/Core/Core/HW/WiimoteEmu/Speaker.cpp', 'Source/Core/Core/HW/WiimoteEmu/Speaker.h', 'Source/Core/Core/HW/WiimoteEmu/WiimoteEmu.cpp', 'Source/Core/Core/State.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.cpp', 'Source/Core/DolphinQt/Settings/AudioPane.h'], 'removed': [], 'message': 'Merge pull request #14448 from TheShrubMaster/main\n\nAudioCommon: Add individual Wiimote audio mixer', 'url': 'https://github.com/dolphin-emu/dolphin/commit/604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'hash': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-13T00:14:09.017746 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'after_sha': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-05-01T10:40:17+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.kt', 'Source/Android/jni/MainAndroid.cpp'], 'removed': [], 'message': "Android: Move alert message log from Kotlin to C++\n\nFor some reason, NativeLibrary.kt calling Log for the alert message text\nmakes Dolphin die with a JNI error. Supposedly the jstring passed to the\nlogging function is invalid. I don't understand why, because the dialog\nthat we show right afterwards is able to read the string just fine. The\nerror happens even if I pass the string directly to Log without\nprepending any extra text.\n\nThere's no real downside to having the logging in C++ instead of Kotlin,\nso let's move it to C++ to avoid the JNI error.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/4470534dc594532714768586c2041d27476ae77f', 'hash': '4470534dc594532714768586c2041d27476ae77f'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-12T17:14:06-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/NativeLibrary.kt', 'Source/Android/jni/MainAndroid.cpp'], 'removed': [], 'message': 'Merge pull request #14635 from JosJuice/android-panic-log-crash\n\nAndroid: Move alert message log from Kotlin to C++', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d0d354fbed4999c1c7183d4593bab15601c3d5e9', 'hash': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-11T21:04:24.968357 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3', 'after_sha': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-14T11:04:03-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/GCMemcardManager.cpp'], 'removed': [], 'message': 'DolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/52ef8d3f8d5a8df29f256ee7d49e38cadd049d0a', 'hash': '52ef8d3f8d5a8df29f256ee7d49e38cadd049d0a'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-14T11:05:06-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/GCMemcardManager.cpp'], 'removed': [], 'message': "DolphinQt/GCMemcardManager: Don't unnecessarily repopulate the slot table when switching between A <-> B.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/fb607239e50f495298e14d99ab46aa3de7c13927', 'hash': 'fb607239e50f495298e14d99ab46aa3de7c13927'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-05-11T23:04:22+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/GCMemcardManager.cpp'], 'removed': [], 'message': 'Merge pull request #14592 from jordan-woyak/memcard-manager-scrolling\n\nDolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/34311f5fa255c5f5737e6775d026eb02279aecaf', 'hash': '34311f5fa255c5f5737e6775d026eb02279aecaf'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-11T20:59:42.546414 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': 'd19952cc113940391ebcf264ced7ddc56310ba75', 'after_sha': '8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-04-20T19:17:03+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/ES/Formats.cpp', 'Source/Core/DiscIO/VolumeWad.cpp'], 'removed': [], 'message': 'DiscIO: Add extra IsValid checks for VolumeWAD::m_tmd\n\nPlus an IsValid check inside TMDReader::GetContents, which is called by\nVolumeWAD.\n\nFixes https://bugs.dolphin-emu.org/issues/14032.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/97fff931fde1e6d2f988cc7e6abed5234850b18c', 'hash': '97fff931fde1e6d2f988cc7e6abed5234850b18c'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-04-20T20:05:19+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/ES/Formats.cpp', 'Source/Core/DiscIO/VolumeVerifier.cpp'], 'removed': [], 'message': "VolumeVerifier: Add extra validity checks for ticket and TMD\n\nThis fixes VolumeVerifier potentially calling TMDReader::GetIOSId for\ninvalid TMDs.\n\nVolumeVerifier also has a call to TMDReader::GetContent that doesn't\ncheck if the TMD is valid. In practice, this can't get called with an\ninvalid TMD because the previous commit made it so GetContentOffsets\nreturns an empty vector if the TMD is invalid, but I've added a check\ninside TMDReader::GetContent just to be on the safe side.\n\nI also made VolumeVerifier show a specifically worded problem if the\nticket or TMD is invalid. Before, invalid TMDs in Wii discs and WADs\nand invalid tickets in WADs would show a more generic problem.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/a992245aa2c73f1fb94bf30e39d76a3487668546', 'hash': 'a992245aa2c73f1fb94bf30e39d76a3487668546'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'date': '2026-05-11T22:59:40+02:00', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/ES/Formats.cpp', 'Source/Core/DiscIO/VolumeVerifier.cpp', 'Source/Core/DiscIO/VolumeWad.cpp'], 'removed': [], 'message': 'Merge pull request #14613 from JosJuice/wad-tmd-checks\n\nDiscIO: Add extra IsValid checks for VolumeWAD::m_tmd', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3', 'hash': '8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-08T00:21:53.324132 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': '30a20d75d2190a26f34e54dce95431528959413e', 'after_sha': 'd19952cc113940391ebcf264ced7ddc56310ba75', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-05-01T09:35:16+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/PowerPC/JitArm64/Jit.cpp'], 'removed': [], 'message': 'JitArm64: Fix DR check in MSRUpdated\n\nTBZ takes the index of the bit to test, not a LogicalImm.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/058c7021b8d1f3a038ed8c0edc67fa22c8efc5fd', 'hash': '058c7021b8d1f3a038ed8c0edc67fa22c8efc5fd'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-07T17:21:50-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/PowerPC/JitArm64/Jit.cpp'], 'removed': [], 'message': 'Merge pull request #14634 from JosJuice/jitarm64-msr-dr-bit\n\nJitArm64: Fix DR check in MSRUpdated', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d19952cc113940391ebcf264ced7ddc56310ba75', 'hash': 'd19952cc113940391ebcf264ced7ddc56310ba75'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-07T21:49:58.354950 {'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': 'ddedaeba87936f645c61be1b9e1955599dea26e7', 'after_sha': '397c65711c41caf6cc5037f18c9c984843b95505', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:48:38-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/utils/country_redirect.py'], 'removed': [], 'message': 'country_redirect: Use HTTPS when redirecting', 'url': 'https://github.com/dolphin-emu/www/commit/5595fdde15d20862337183b0900754315026444a', 'hash': '5595fdde15d20862337183b0900754315026444a'}, {'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:49:48-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/docs/models.py'], 'removed': [], 'message': 'docs: Use HTTPS for wiki URLs', 'url': 'https://github.com/dolphin-emu/www/commit/397c65711c41caf6cc5037f18c9c984843b95505', 'hash': '397c65711c41caf6cc5037f18c9c984843b95505'}], 'base_ref_name': None, 'ref_name': 'stable', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-07T21:47:50.094554 {'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': 'ddedaeba87936f645c61be1b9e1955599dea26e7', 'after_sha': '0000000000000000000000000000000000000000', 'commits': [], 'base_ref_name': None, 'ref_name': 'work-20260507', 'ref_type': 'heads', 'created': False, 'deleted': True, 'forced': False, 'type': 'gh_push'}
2026-05-07T21:46:18.083008 {'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': 'e26c8677f07c40ff398482770e914a83dda24ea3', 'after_sha': 'ddedaeba87936f645c61be1b9e1955599dea26e7', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:36:03-04:00', 'username': 'OatmealDome'}, 'distinct': False, 'added': [], 'modified': ['dolweb/compat/models.py', 'dolweb/compat/views.py'], 'removed': [], 'message': 'compat: Use MediaWiki 1.45 database schema\n\nAssisted-by: Codex:gpt5.5', 'url': 'https://github.com/dolphin-emu/www/commit/ddb13182da51fb04488497e3c96192c8193fced2', 'hash': 'ddb13182da51fb04488497e3c96192c8193fced2'}, {'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:36:41-04:00', 'username': 'OatmealDome'}, 'distinct': False, 'added': [], 'modified': ['dolweb/static/css/dolphin.css'], 'removed': [], 'message': 'static: Remove unnecessary vertical-align property on compat-list rows', 'url': 'https://github.com/dolphin-emu/www/commit/ffb0e7b3e74b9feec17692037cda3f2b39f0e3e2', 'hash': 'ffb0e7b3e74b9feec17692037cda3f2b39f0e3e2'}, {'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:40:14-04:00', 'username': 'OatmealDome'}, 'distinct': False, 'added': [], 'modified': ['dolweb/settings.py', 'dolweb/urls.py'], 'removed': ['dolweb/management/__init__.py', 'dolweb/management/views.py'], 'message': 'management: Remove unnecessary backdoor', 'url': 'https://github.com/dolphin-emu/www/commit/ddedaeba87936f645c61be1b9e1955599dea26e7', 'hash': 'ddedaeba87936f645c61be1b9e1955599dea26e7'}], 'base_ref_name': 'work-20260507', 'ref_name': 'stable', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-07T21:40:39.075642 {'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': '0000000000000000000000000000000000000000', 'after_sha': 'ddedaeba87936f645c61be1b9e1955599dea26e7', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:36:03-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/compat/models.py', 'dolweb/compat/views.py'], 'removed': [], 'message': 'compat: Use MediaWiki 1.45 database schema\n\nAssisted-by: Codex:gpt5.5', 'url': 'https://github.com/dolphin-emu/www/commit/ddb13182da51fb04488497e3c96192c8193fced2', 'hash': 'ddb13182da51fb04488497e3c96192c8193fced2'}, {'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:36:41-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/static/css/dolphin.css'], 'removed': [], 'message': 'static: Remove unnecessary vertical-align property on compat-list rows', 'url': 'https://github.com/dolphin-emu/www/commit/ffb0e7b3e74b9feec17692037cda3f2b39f0e3e2', 'hash': 'ffb0e7b3e74b9feec17692037cda3f2b39f0e3e2'}, {'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'date': '2026-05-07T17:40:14-04:00', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/settings.py', 'dolweb/urls.py'], 'removed': ['dolweb/management/__init__.py', 'dolweb/management/views.py'], 'message': 'management: Remove unnecessary backdoor', 'url': 'https://github.com/dolphin-emu/www/commit/ddedaeba87936f645c61be1b9e1955599dea26e7', 'hash': 'ddedaeba87936f645c61be1b9e1955599dea26e7'}], 'base_ref_name': None, 'ref_name': 'work-20260507', 'ref_type': 'heads', 'created': True, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-07T20:23:51.583493 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': 'f09a736f1412f93c999d0f93827981f6343490bd', 'after_sha': '30a20d75d2190a26f34e54dce95431528959413e', 'commits': [{'author': {'name': 'Simonx22', 'email': 'simon@oatmealdome.me', 'date': '2026-04-26T12:52:56-04:00', 'username': 'Simonx22'}, 'distinct': False, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.kt'], 'modified': [], 'removed': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java'], 'message': 'Android: Convert TvUtil to Kotlin', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a7e98c776d90938a066b0eb2603ff7b69a5164b5', 'hash': 'a7e98c776d90938a066b0eb2603ff7b69a5164b5'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-07T13:23:48-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.kt'], 'modified': [], 'removed': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java'], 'message': 'Merge pull request #14629 from Simonx22/android/convert-tvutil-to-kotlin\n\nAndroid: Convert TvUtil to Kotlin', 'url': 'https://github.com/dolphin-emu/dolphin/commit/30a20d75d2190a26f34e54dce95431528959413e', 'hash': '30a20d75d2190a26f34e54dce95431528959413e'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-07T09:07:44.893513 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '8afc696a1efc154db621f41435b0e5a0ec3f6543', 'after_sha': 'f09a736f1412f93c999d0f93827981f6343490bd', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-06T12:44:43-07:00', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/MsgHandler.cpp'], 'removed': [], 'message': 'MsgHandler: Use log level matching MsgType for alerts\n\nWhen calling `ShowMessageAlert` with a given `MsgType`, log the alert\nwith a `LogLevel` matching the `MsgType` instead of always using\n`LogLevel::LERROR`.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/dfda04c4e4729aba055721bb11bb495ba39827c4', 'hash': 'dfda04c4e4729aba055721bb11bb495ba39827c4'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-05-07T11:07:41+02:00', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/MsgHandler.cpp'], 'removed': [], 'message': 'Merge pull request #14645 from Dentomologist/msghandler_use_more_suitable_log_levels\n\nMsgHandler: Use LogLevel matching MsgType for alerts', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f09a736f1412f93c999d0f93827981f6343490bd', 'hash': 'f09a736f1412f93c999d0f93827981f6343490bd'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-06T22:07:35.832578 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': 'cf20cdabd4e54f384f49c6453de74a46404aa090', 'after_sha': '8afc696a1efc154db621f41435b0e5a0ec3f6543', 'commits': [{'author': {'name': 'Tom Pratt', 'email': 'tompratt@squareup.com', 'date': '2026-05-06T12:58:36+02:00', 'username': 'tom-pratt'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/NetPlayClient.cpp'], 'removed': [], 'message': 'DoAllPlayersHaveSameGame returns correct result instead of always true\n\nSendGameStatus() was writing SyncIdentifierComparison as a u32 but the server reads it as a u8 enum, so the server always gets 0 (SameGame). This bug was introduced in commit 66276ac.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/bedb283d932c845de6e76261f4753aefa8e56dec', 'hash': 'bedb283d932c845de6e76261f4753aefa8e56dec'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-06T15:07:33-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/NetPlayClient.cpp'], 'removed': [], 'message': 'Merge pull request #14644 from tom-pratt/fix_do_all_players_have_game\n\nDoAllPlayersHaveSameGame returns correct result instead of always true', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8afc696a1efc154db621f41435b0e5a0ec3f6543', 'hash': '8afc696a1efc154db621f41435b0e5a0ec3f6543'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-06T20:40:19.632569 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': '6d5399246e2147217a8bf82892e22a5575f06293', 'after_sha': 'cf20cdabd4e54f384f49c6453de74a46404aa090', 'commits': [{'author': {'name': 'Vlad Firoiu', 'email': 'vladfi2@gmail.com', 'date': '2026-04-30T18:26:38-04:00', 'username': 'vladfi1'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp'], 'removed': [], 'message': 'Unconditionally lock in ControllerInterface::UpdateInput.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/20718de37e7a109db046a2f0663f90cf6b45f0e8', 'hash': '20718de37e7a109db046a2f0663f90cf6b45f0e8'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-06T13:40:16-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp'], 'removed': [], 'message': 'Merge pull request #14632 from vladfi1/upstream-pipe-inputs-fix\n\nUnconditionally lock in ControllerInterface::UpdateInput', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cf20cdabd4e54f384f49c6453de74a46404aa090', 'hash': 'cf20cdabd4e54f384f49c6453de74a46404aa090'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-05T23:23:19.042840 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': 'b0eb643c614ddeda6400dc4033d58934a20ba5eb', 'after_sha': '6d5399246e2147217a8bf82892e22a5575f06293', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-03-29T17:29:36-07:00', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/UICommon/AutoUpdate.cpp'], 'removed': [], 'message': "AutoUpdate: Don't start redundant update checks\n\nIgnore any new update check requests if one is already in progress.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/f86bbc3b1d0b99543f4427b278e64d7543323e18', 'hash': 'f86bbc3b1d0b99543f4427b278e64d7543323e18'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-03-29T17:18:09-07:00', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/UICommon/AutoUpdate.cpp'], 'removed': [], 'message': "AutoUpdate: Only set triggered flag if process creation succeeds\n\nDon't set `s_update_triggered` if the updater process fails to be\ncreated. This will allow users in that situation to try to start an\nupdate later without having to restart Dolphin first.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/68ac3d651d94f904d8847dc3cefb85b2394aa0c6', 'hash': '68ac3d651d94f904d8847dc3cefb85b2394aa0c6'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-05T16:23:16-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/UICommon/AutoUpdate.cpp'], 'removed': [], 'message': 'Merge pull request #14532 from Dentomologist/autoupdatechecker_fix_edge_cases\n\nAutoUpdateChecker: Fix Edge Cases', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6d5399246e2147217a8bf82892e22a5575f06293', 'hash': '6d5399246e2147217a8bf82892e22a5575f06293'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-05T16:45:57.712836 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1', 'after_sha': 'b0eb643c614ddeda6400dc4033d58934a20ba5eb', 'commits': [{'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'date': '2026-05-05T13:50:05+02:00', 'username': 'SuperSamus'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/Emulated/Microphone.cpp'], 'removed': [], 'message': 'Fixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3c065417188ed6e3278e9eac2945cbe6a1731b6d', 'hash': '3c065417188ed6e3278e9eac2945cbe6a1731b6d'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-05-05T11:45:55-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/Emulated/Microphone.cpp'], 'removed': [], 'message': 'Merge pull request #14642 from SuperSamus/cpp-move-fixup-nocubeb\n\nFixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b0eb643c614ddeda6400dc4033d58934a20ba5eb', 'hash': 'b0eb643c614ddeda6400dc4033d58934a20ba5eb'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-04T01:20:09.687548 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'after_sha': 'e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-05-03T17:09:59-07:00', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/Logging/ConsoleListenerWin.cpp', 'Source/Core/Core/IOS/USB/Emulated/Microphone.cpp', 'Source/Core/VideoBackends/Null/NullGfx.cpp', 'Source/Core/VideoBackends/OGL/OGLGfx.cpp', 'Source/Core/VideoBackends/Software/SWGfx.cpp', 'Source/Core/VideoCommon/TMEM.cpp', 'Source/Core/VideoCommon/VertexLoader_Position.cpp', 'Source/Core/VideoCommon/VertexLoader_TextCoord.cpp'], 'removed': [], 'message': "Replace some [[maybe_unused]] annotations with commented names\n\nRemove the [[maybe_unused]] annotation from various parameters that are\nunconditionally unused and comment out their names instead. This makes\nit unambiguous that the variables are unused, while making the remaining\n[[maybe_unused]] annotations more reliable indicators that those\nvariables are in fact used in some contexts.\n\nThese parameters are mostly in overridden functions where the override\ndoesn't need that particular variable.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/34646cb9a90eb0ef7fa489f76753184359e7aa15', 'hash': '34646cb9a90eb0ef7fa489f76753184359e7aa15'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-05-03T20:20:07-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/Logging/ConsoleListenerWin.cpp', 'Source/Core/Core/IOS/USB/Emulated/Microphone.cpp', 'Source/Core/VideoBackends/Null/NullGfx.cpp', 'Source/Core/VideoBackends/OGL/OGLGfx.cpp', 'Source/Core/VideoBackends/Software/SWGfx.cpp', 'Source/Core/VideoCommon/TMEM.cpp', 'Source/Core/VideoCommon/VertexLoader_Position.cpp', 'Source/Core/VideoCommon/VertexLoader_TextCoord.cpp'], 'removed': [], 'message': 'Merge pull request #14641 from Dentomologist/replace_maybe_unused_annotations_with_commented_names\n\nReplace some [[maybe_unused]] annotations with commented names', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1', 'hash': 'e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-01T16:39:27.316013 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '1907ffa45db050da0a9c9091a09a5fc9e71d6172', 'after_sha': 'eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'date': '2026-04-29T18:55:18+02:00', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/jni/ActivityTracker.cpp', 'Source/Android/jni/CMakeLists.txt', 'Source/Android/jni/MainAndroid.cpp'], 'removed': ['Source/Android/jni/Host.cpp', 'Source/Android/jni/Host.h'], 'message': 'Android: Remove HostThreadLock\n\nFollow-up to 068947e. HostThreadLock no longer serves a purpose.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c73dde2193fdb6a78bd1dfaf77bbd6900afbfc92', 'hash': 'c73dde2193fdb6a78bd1dfaf77bbd6900afbfc92'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-05-01T11:39:24-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/jni/ActivityTracker.cpp', 'Source/Android/jni/CMakeLists.txt', 'Source/Android/jni/MainAndroid.cpp'], 'removed': ['Source/Android/jni/Host.cpp', 'Source/Android/jni/Host.h'], 'message': 'Merge pull request #14628 from JosJuice/android-remove-hostthreadlock\n\nAndroid: Remove HostThreadLock', 'url': 'https://github.com/dolphin-emu/dolphin/commit/eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'hash': 'eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-05-01T01:50:20.434319 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'ecfaa95e5afbb738833c0c979e7a32aff777526e', 'after_sha': '1907ffa45db050da0a9c9091a09a5fc9e71d6172', 'commits': [{'author': {'name': 'Ethan Uppal', 'email': '113849268+ethanuppal@users.noreply.github.com', 'date': '2026-04-27T20:16:14-04:00', 'username': 'ethanuppal'}, 'distinct': False, 'added': ['Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientEditServerDialog.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientEditServerDialog.h', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPSettings.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPSettings.h'], 'modified': ['.gitignore', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.h', 'Source/Core/DolphinQt/Config/ControllerInterface/ServerStringValidator.cpp', 'Source/Core/DolphinQt/DolphinQt.vcxproj'], 'removed': ['Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.h'], 'message': 'Config: Add Edit button to DSU server menu\n\nSigned-off-by: Ethan Uppal <113849268+ethanuppal@users.noreply.github.com>', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4e55d2518a0f68ed47983b29caa0f21e78b0cf1b', 'hash': '4e55d2518a0f68ed47983b29caa0f21e78b0cf1b'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-30T20:50:17-05:00', 'username': 'jordan-woyak'}, 'distinct': True, 'added': ['Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientEditServerDialog.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientEditServerDialog.h', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPSettings.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPSettings.h'], 'modified': ['.gitignore', 'Source/Core/DolphinQt/CMakeLists.txt', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientWidget.h', 'Source/Core/DolphinQt/Config/ControllerInterface/ServerStringValidator.cpp', 'Source/Core/DolphinQt/DolphinQt.vcxproj'], 'removed': ['Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.cpp', 'Source/Core/DolphinQt/Config/ControllerInterface/DualShockUDPClientAddServerDialog.h'], 'message': 'Merge pull request #14384 from ethanuppal/editdsuservers\n\nConfig: Add Edit button to DSU server menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1907ffa45db050da0a9c9091a09a5fc9e71d6172', 'hash': '1907ffa45db050da0a9c9091a09a5fc9e71d6172'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-29T23:52:39.357260 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '2b743639d825eeca76fd7ada96ec463a8add9628', 'after_sha': 'ecfaa95e5afbb738833c0c979e7a32aff777526e', 'commits': [{'author': {'name': 'spaceage64', 'email': '115997715+spaceage64@users.noreply.github.com', 'date': '2026-04-03T00:13:41+02:00', 'username': 'spaceage64'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/RUUE01r0.ini', 'Data/Sys/GameSettings/RUUE01r1.ini', 'Data/Sys/GameSettings/RUUJ01r1.ini', 'Data/Sys/GameSettings/RUUK01r1.ini', 'Data/Sys/GameSettings/RUUP01r0.ini', 'Data/Sys/GameSettings/RUUP01r1.ini', 'Source/Core/Core/AchievementApprovedHash.h'], 'removed': [], 'message': 'Add Classic Controller support cheats for Animal Crossing (all regions)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3944310308126c7d4476ccac8b253018d484e468', 'hash': '3944310308126c7d4476ccac8b253018d484e468'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-04-29T19:52:37-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Data/Sys/ApprovedInis.json', 'Data/Sys/GameSettings/RUUE01r0.ini', 'Data/Sys/GameSettings/RUUE01r1.ini', 'Data/Sys/GameSettings/RUUJ01r1.ini', 'Data/Sys/GameSettings/RUUK01r1.ini', 'Data/Sys/GameSettings/RUUP01r0.ini', 'Data/Sys/GameSettings/RUUP01r1.ini', 'Source/Core/Core/AchievementApprovedHash.h'], 'removed': [], 'message': 'Merge pull request #14543 from spaceage64/add-classic-controller-codes\n\nUpdate/Add cheats for Animal Crossing: City Folk', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ecfaa95e5afbb738833c0c979e7a32aff777526e', 'hash': 'ecfaa95e5afbb738833c0c979e7a32aff777526e'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-29T00:50:54.259240 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': '725a726174757af5bc8fdd6f8b92c24e88d08768', 'after_sha': '2b743639d825eeca76fd7ada96ec463a8add9628', 'commits': [{'author': {'name': 'Dr. Dystopia', 'email': 'jonis9898@hotmail.com', 'date': '2025-04-12T08:11:04+02:00', 'username': 'tygyh'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/FatFsUtil.cpp', 'Source/Core/Core/Debugger/CodeTrace.cpp', 'Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp', 'Source/Core/Core/HW/WiiSave.cpp', 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'Source/Core/Core/NetPlayCommon.cpp', 'Source/Core/Core/PowerPC/BreakPoints.cpp', 'Source/Core/Core/PowerPC/Expression.cpp', 'Source/Core/DiscIO/RiivolutionPatcher.cpp', 'Source/Core/UICommon/X11Utils.cpp', 'Source/Core/VideoBackends/Metal/MTLUtil.mm', 'Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'Source/Core/VideoBackends/Vulkan/VulkanContext.cpp'], 'removed': [], 'message': 'Replace `find(x) != npos` with `contains(x)` - Core', 'url': 'https://github.com/dolphin-emu/dolphin/commit/9ae9c129383c71fc8f943d56a5f5d65b8d5c7078', 'hash': '9ae9c129383c71fc8f943d56a5f5d65b8d5c7078'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-04-28T17:50:51-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/FatFsUtil.cpp', 'Source/Core/Core/Debugger/CodeTrace.cpp', 'Source/Core/Core/HW/GCMemcard/GCMemcardRaw.cpp', 'Source/Core/Core/HW/WiiSave.cpp', 'Source/Core/Core/IOS/FS/HostBackend/FS.cpp', 'Source/Core/Core/NetPlayCommon.cpp', 'Source/Core/Core/PowerPC/BreakPoints.cpp', 'Source/Core/Core/PowerPC/Expression.cpp', 'Source/Core/DiscIO/RiivolutionPatcher.cpp', 'Source/Core/UICommon/X11Utils.cpp', 'Source/Core/VideoBackends/Metal/MTLUtil.mm', 'Source/Core/VideoBackends/OGL/OGLConfig.cpp', 'Source/Core/VideoBackends/Vulkan/VulkanContext.cpp'], 'removed': [], 'message': 'Merge pull request #13505 from tygyh/Replace-find-with-contains\n\nSource/Core: Replace `find(x) != npos` with `contains(x)`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2b743639d825eeca76fd7ada96ec463a8add9628', 'hash': '2b743639d825eeca76fd7ada96ec463a8add9628'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-29T00:29:46.663796 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Dentomologist', 'before_sha': '0e8fa3cacaff15283900aff67af1b3ae762008d6', 'after_sha': '725a726174757af5bc8fdd6f8b92c24e88d08768', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-16T14:42:12-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/GameList/GameList.cpp', 'Source/Core/DolphinQt/QtUtils/QtUtils.cpp', 'Source/Core/DolphinQt/QtUtils/QtUtils.h'], 'removed': [], 'message': 'QtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a7964866250d38e1732ab50eba81d1d8ed9874ec', 'hash': 'a7964866250d38e1732ab50eba81d1d8ed9874ec'}, {'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'date': '2026-04-28T17:29:44-07:00', 'username': 'Dentomologist'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/GameList/GameList.cpp', 'Source/Core/DolphinQt/QtUtils/QtUtils.cpp', 'Source/Core/DolphinQt/QtUtils/QtUtils.h'], 'removed': [], 'message': 'Merge pull request #14602 from jordan-woyak/show-file-in-folder\n\nQtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/725a726174757af5bc8fdd6f8b92c24e88d08768', 'hash': '725a726174757af5bc8fdd6f8b92c24e88d08768'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-27T20:48:30.813612 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1', 'after_sha': '0e8fa3cacaff15283900aff67af1b3ae762008d6', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-16T19:13:43-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/Triforce/MarioKartGP.cpp'], 'removed': [], 'message': 'HW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5e1185b97990dcd5d9b1a175a7566a823a8f0c8d', 'hash': '5e1185b97990dcd5d9b1a175a7566a823a8f0c8d'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-04-27T16:48:28-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/Triforce/MarioKartGP.cpp'], 'removed': [], 'message': 'Merge pull request #14601 from jordan-woyak/mkgp-wheel-fix\n\nHW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0e8fa3cacaff15283900aff67af1b3ae762008d6', 'hash': '0e8fa3cacaff15283900aff67af1b3ae762008d6'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-27T17:11:45.098223 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'd47d5431a1b066f45109dbeab740e052c841e8f8', 'after_sha': 'ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-12T13:50:12-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/GameSettings/G6S.ini', 'Data/Sys/GameSettings/GFO.ini', 'Data/Sys/GameSettings/GFW.ini', 'Data/Sys/GameSettings/GKB.ini', 'Data/Sys/GameSettings/GRK.ini', 'Data/Sys/GameSettings/GWL.ini', 'Data/Sys/GameSettings/RBW.ini', 'Data/Sys/GameSettings/WTX.ini'], 'removed': ['Data/Sys/GameSettings/GCP.ini', 'Data/Sys/GameSettings/GHQ.ini', 'Data/Sys/GameSettings/GTW.ini', 'Data/Sys/GameSettings/R3B.ini', 'Data/Sys/GameSettings/RED.ini'], 'message': 'GameSettings: Allow ImmediateXFB for a handful of games that seem fine with it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/75946bd38540d007b30c866f3fda72c88cd244c6', 'hash': '75946bd38540d007b30c866f3fda72c88cd244c6'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-12T14:11:06-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/GameSettings/RO7.ini'], 'removed': [], 'message': "GameSettings: The Legend of Spyro: The Eternal Night.\n\nAllow ImmediateXFB since this game seems fine with it.\nDon't force EFBAccess. Unlike other Krome games, this game doesn't do any EFB access on boot like the comment implies.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/c8dd2c9fc4d27884c3763ebca240d803feb30983', 'hash': 'c8dd2c9fc4d27884c3763ebca240d803feb30983'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-04-27T13:11:42-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Data/Sys/GameSettings/G6S.ini', 'Data/Sys/GameSettings/GFO.ini', 'Data/Sys/GameSettings/GFW.ini', 'Data/Sys/GameSettings/GKB.ini', 'Data/Sys/GameSettings/GRK.ini', 'Data/Sys/GameSettings/GWL.ini', 'Data/Sys/GameSettings/RBW.ini', 'Data/Sys/GameSettings/RO7.ini', 'Data/Sys/GameSettings/WTX.ini'], 'removed': ['Data/Sys/GameSettings/GCP.ini', 'Data/Sys/GameSettings/GHQ.ini', 'Data/Sys/GameSettings/GTW.ini', 'Data/Sys/GameSettings/R3B.ini', 'Data/Sys/GameSettings/RED.ini'], 'message': 'Merge pull request #14582 from jordan-woyak/gamesettings-allow-imm-xfb\n\n GameSettings: Allow ImmediateXFB for a handful of games that seem fine with it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1', 'hash': 'ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-27T17:10:18.161723 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '77b778302c3fe6feea31fe618440fd7bce98483e', 'after_sha': 'd47d5431a1b066f45109dbeab740e052c841e8f8', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-21T23:56:16-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Data/Sys/GameSettings/DSR.ini', 'Data/Sys/GameSettings/RSR.ini'], 'removed': [], 'message': 'GameSettings: Set SafeTextureCacheColorSamples for "Sonic and the Secret Rings" to fix glitching text in the ring customization menu.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/dbb80ce296a1e4208af4a3b8fbe424c4bd47e497', 'hash': 'dbb80ce296a1e4208af4a3b8fbe424c4bd47e497'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-04-27T13:10:15-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Data/Sys/GameSettings/DSR.ini', 'Data/Sys/GameSettings/RSR.ini'], 'removed': [], 'message': 'Merge pull request #14617 from jordan-woyak/gamesettings-secret-rings\n\nGameSettings: Set SafeTextureCacheColorSamples for "Sonic and the Secret Rings".', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d47d5431a1b066f45109dbeab740e052c841e8f8', 'hash': 'd47d5431a1b066f45109dbeab740e052c841e8f8'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2026-04-27T17:09:23.666088 {'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '6409c5beb3e02e48e124619a4a3c4d1faa26d6ff', 'after_sha': '77b778302c3fe6feea31fe618440fd7bce98483e', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'date': '2026-04-20T13:06:58-05:00', 'username': 'jordan-woyak'}, 'distinct': False, 'added': ['Data/Sys/GameSettings/R32.ini', 'Data/Sys/GameSettings/R3I.ini'], 'modified': ['Data/Sys/GameSettings/G2M.ini', 'Data/Sys/GameSettings/G2ME01.ini', 'Data/Sys/GameSettings/G2MP01.ini', 'Data/Sys/GameSettings/GM8.ini', 'Data/Sys/GameSettings/GM8E01.ini', 'Data/Sys/GameSettings/P2M.ini', 'Data/Sys/GameSettings/R3M.ini', 'Data/Sys/GameSettings/RM3.ini'], 'removed': [], 'message': 'GameSettings: Disable EFBToTexture for "Metroid Prime 2: Dark Echoes (Wii)" to fix the scan visor and clean up the other Metroid Prime ini files.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b70e28a0f6dfe7e87fd88d1dab67d8cbfa726c63', 'hash': 'b70e28a0f6dfe7e87fd88d1dab67d8cbfa726c63'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'date': '2026-04-27T13:09:20-04:00', 'username': 'JMC47'}, 'distinct': True, 'added': ['Data/Sys/GameSettings/R32.ini', 'Data/Sys/GameSettings/R3I.ini'], 'modified': ['Data/Sys/GameSettings/G2M.ini', 'Data/Sys/GameSettings/G2ME01.ini', 'Data/Sys/GameSettings/G2MP01.ini', 'Data/Sys/GameSettings/GM8.ini', 'Data/Sys/GameSettings/GM8E01.ini', 'Data/Sys/GameSettings/P2M.ini', 'Data/Sys/GameSettings/R3M.ini', 'Data/Sys/GameSettings/RM3.ini'], 'removed': [], 'message': 'Merge pull request #14614 from jordan-woyak/gamesettings-metroid-prime\n\nGameSettings: Disable EFBToTexture for "Metroid Prime 2: Dark Echoes (Wii)" to fix the scan visor.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/77b778302c3fe6feea31fe618440fd7bce98483e', 'hash': '77b778302c3fe6feea31fe618440fd7bce98483e'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
Recent 'internal_log' events
2026-05-18T03:23:22.772935 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:23:21.375061 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:19:58.353350 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T03:19:58.070870 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T03:18:21.374682 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:18:19.583458 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:13:19.583048 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:13:18.183539 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:09:58.070642 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T03:09:57.643147 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T03:08:18.183179 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:08:16.795779 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T03:03:16.795437 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T03:03:15.391712 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:59:57.642923 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T02:59:57.366619 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T02:58:15.391285 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:58:13.927598 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:53:13.927192 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:53:12.498420 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:49:57.366368 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'phire,iwubcode,skidau,OatmealDome,leoetlino,Dentomologist,degasus,CrossVR,hrydgard,Helios747,AdmiralCurtiss,Pokechu22,Tilka,Parlane,delroth,lioncash,jordan-woyak,linkmauve,spycrab,JosJuice')", 'type': 'internal_log'}
2026-05-18T02:49:57.086124 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2026-05-18T02:48:12.498061 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
2026-05-18T02:48:11.130595 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2026-05-18T02:43:11.130235 {'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/pyp5siarjy0xl3n2alrmvaw0z5hflxkg-central-env/lib/python3.13/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Filoppi,OatmealDome,riking,Sam-Belliveau,LAGonauta,CrossVR,hdcmeta,CasualPokePlayer,LPFaint99,hackbar,Orphis,nickbeth,shonumi,Pokechu22,smurf3tte,Tilka,Tinob,CelestialAmber,ligfx,randomstuff,archshift,mmastrac,jjdelvalle,RisingFog,gwicks,TellowKrinkle,mbc07,adamdmoss,skylersaleh,Linkinworm,JosJuice,marcan,mahdihijazi,SuperSamus,malleoz,rlnilsen,OrN,Dentomologist,glennricster,Simonx22,jloehr,Starsam80,hrydgard,Ziek,Helios747,sepalani,endrift,Techjar,K0bin,TryTwo,deReeperJosh,JoshuaVandaele,Stevoisiak,kayru,MayImilae,Sintendo,zackhow,hthh,mitaclaw,Zopolis4,Alcaro,spycrab,spxtr,Gamer64ytb,mrgreywater,moncefmechri,aroulin,JMC47,skidau,degasus,Geotale,unknownbrackets,yourWaifu,Hydr8gon,Lobsterzelda,BhaaLseN,crediar,mandar1jn,PatrickFerry,CrystalGamma,orbea,mimimi085181,delroth,rukai,dreamsyntax,magcius,EmptyChaos,jordan-woyak,bentley,magumagu,tygyh,linkmauve,galop1n,Ebola16,neobrain,comex,Linktothepast,LillyJadeKatrin,phire,mathieui,booto,CookiePLMonster,iwubcode,merryhime,noahpistilli,meffij,leoetlino,RachelBryk,SirMangler,jezze,Buddybenj,aldelaro5,AdmiralCurtiss,zopieux,DacoTaco,cscd98,Parlane,nullgemm,krnlyng,JordanTheToaster,lioncash,Phatcat,FioraAeterna,corwin-mcknight,cristian64,NanoByte011,ColinDTaylor,kamiyo,ShimmerGlass,vladfi1')", 'type': 'internal_log'}
Recent 'issue' events
2026-05-17T23:53:08.657514 {'source': 'redmine', 'new': False, 'update': 12, 'issue': 13929, 'title': 'Ultimate Spider Man audio tracks not playing/looping', 'author': 'gregsplace', 'type': 'issue'}
2026-05-17T18:34:31.855375 {'source': 'redmine', 'new': False, 'update': 21, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2026-05-17T18:28:34.961254 {'source': 'redmine', 'new': False, 'update': 20, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'JosJuice', 'type': 'issue'}
2026-05-17T18:25:40.881574 {'source': 'redmine', 'new': False, 'update': 19, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2026-05-17T18:23:28.030696 {'source': 'redmine', 'new': False, 'update': 18, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2026-05-17T18:20:28.007498 {'source': 'redmine', 'new': False, 'update': 17, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'JosJuice', 'type': 'issue'}
2026-05-17T18:08:33.562320 {'source': 'redmine', 'new': False, 'update': 16, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2026-05-17T17:22:04.622734 {'source': 'redmine', 'new': False, 'update': 15, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'JosJuice', 'type': 'issue'}
2026-05-17T17:19:05.791006 {'source': 'redmine', 'new': False, 'update': 14, 'issue': 13840, 'title': 'Super Mario Galaxy Mario Transformation Code Crash', 'author': 'ElJony1000', 'type': 'issue'}
2026-05-17T08:45:03.325650 {'source': 'redmine', 'new': False, 'update': 11, 'issue': 13929, 'title': 'Ultimate Spider Man audio tracks not playing/looping', 'author': 'gregsplace', 'type': 'issue'}
2026-05-17T05:47:08.830308 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14049, 'title': '[Debugger] Memory breakpoint incompatible with DSI exception', 'author': 'VampireFlower', 'type': 'issue'}
2026-05-15T16:07:41.638210 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14048, 'title': '[FEATURE REQUEST] Controller buttons assigment wizard just like OpenEmu', 'author': 'Billiard26', 'type': 'issue'}
2026-05-15T13:16:37.211273 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14048, 'title': '[FEATURE REQUEST] Controller buttons assigment wizard just like OpenEmu', 'author': 'vistawasgreat', 'type': 'issue'}
2026-05-15T00:42:45.341483 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14047, 'title': 'Real Wiimote (DolphinBar Mode 4) produces no inputs on macOS Tahoe', 'author': 'Billiard26', 'type': 'issue'}
2026-05-12T03:36:28.013964 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 14047, 'title': 'Real Wiimote (DolphinBar Mode 4) produces no inputs on macOS Tahoe', 'author': 'jhehven', 'type': 'issue'}
2026-05-12T00:11:07.766362 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14047, 'title': 'Real Wiimote (DolphinBar Mode 4) produces no inputs on macOS Tahoe', 'author': 'Billiard26', 'type': 'issue'}
2026-05-11T21:12:24.682299 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 11361, 'title': 'Memory Card Manager (GC) has annoying scrolling behavior', 'author': 'AdmiralCurtiss', 'type': 'issue'}
2026-05-11T21:10:22.025667 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14032, 'title': 'TMDHeader Initialization Bug on WAD File Parsing that is Too Large', 'author': 'AdmiralCurtiss', 'type': 'issue'}
2026-05-09T03:29:41.459851 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14046, 'title': 'Graphical/text glitches in GTI Club: Supermini Festa', 'author': 'Coloradohusky', 'type': 'issue'}
2026-05-08T19:20:03.235016 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14047, 'title': 'Real Wiimote (DolphinBar Mode 4) produces no inputs on macOS Tahoe', 'author': 'jhehven', 'type': 'issue'}
2026-05-08T04:06:18.723006 {'source': 'redmine', 'new': True, 'update': 0, 'issue': 14046, 'title': 'Graphical/text glitches in GTI Club: Supermini Festa', 'author': 'Coloradohusky', 'type': 'issue'}
2026-05-07T09:03:58.993428 {'source': 'redmine', 'new': False, 'update': 4, 'issue': 14015, 'title': '[Android] "The external storage needs to be available in order to use Dolphin"', 'author': 'JosJuice', 'type': 'issue'}
2026-05-07T08:52:47.010311 {'source': 'redmine', 'new': False, 'update': 3, 'issue': 14015, 'title': '[Android] "The external storage needs to be available in order to use Dolphin"', 'author': 'Beef-juice', 'type': 'issue'}
2026-05-06T22:33:50.899645 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 9522, 'title': 'TAS input window crashes Dolphin with real GameCube Controller', 'author': 'Dentomologist', 'type': 'issue'}
2026-05-06T17:54:06.415629 {'source': 'redmine', 'new': False, 'update': 2, 'issue': 14045, 'title': 'Dolphin not listening to keyboard after cancelling the exit.', 'author': 'Billiard26', 'type': 'issue'}
Recent 'new_dev_version' events
2026-05-14T22:36:53.169501 {'source': 'repomanager', 'hash': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'branch': 'master', 'shortrev': '2603-379', 'author': 'JMC47', 'message': 'Merge pull request #14448 from TheShrubMaster/main\n\nAudioCommon: Add individual Wiimote audio mixer', 'url': 'https://github.com/dolphin-emu/dolphin/commit/604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'type': 'new_dev_version'}
2026-05-13T00:14:10.770470 {'source': 'repomanager', 'hash': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', 'branch': 'master', 'shortrev': '2603-377', 'author': 'Dentomologist', 'message': 'Merge pull request #14635 from JosJuice/android-panic-log-crash\n\nAndroid: Move alert message log from Kotlin to C++', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d0d354fbed4999c1c7183d4593bab15601c3d5e9', 'type': 'new_dev_version'}
2026-05-11T21:04:26.749181 {'source': 'repomanager', 'hash': '34311f5fa255c5f5737e6775d026eb02279aecaf', 'branch': 'master', 'shortrev': '2603-375', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14592 from jordan-woyak/memcard-manager-scrolling\n\nDolphinQt/GCMemcardManager: Set ScrollMode::ScrollPerPixel to make scrolling behavior less annoying.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/34311f5fa255c5f5737e6775d026eb02279aecaf', 'type': 'new_dev_version'}
2026-05-11T20:59:44.164567 {'source': 'repomanager', 'hash': '8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3', 'branch': 'master', 'shortrev': '2603-372', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #14613 from JosJuice/wad-tmd-checks\n\nDiscIO: Add extra IsValid checks for VolumeWAD::m_tmd', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8bf1f8970a5a4b43fa86c691164a9a7c2c9680f3', 'type': 'new_dev_version'}
2026-05-08T00:21:55.263763 {'source': 'repomanager', 'hash': 'd19952cc113940391ebcf264ced7ddc56310ba75', 'branch': 'master', 'shortrev': '2603-369', 'author': 'Dentomologist', 'message': 'Merge pull request #14634 from JosJuice/jitarm64-msr-dr-bit\n\nJitArm64: Fix DR check in MSRUpdated', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d19952cc113940391ebcf264ced7ddc56310ba75', 'type': 'new_dev_version'}
2026-05-07T09:07:46.668499 {'source': 'repomanager', 'hash': 'f09a736f1412f93c999d0f93827981f6343490bd', 'branch': 'master', 'shortrev': '2603-365', 'author': 'JosJuice', 'message': 'Merge pull request #14645 from Dentomologist/msghandler_use_more_suitable_log_levels\n\nMsgHandler: Use LogLevel matching MsgType for alerts', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f09a736f1412f93c999d0f93827981f6343490bd', 'type': 'new_dev_version'}
2026-05-06T22:07:37.414446 {'source': 'repomanager', 'hash': '8afc696a1efc154db621f41435b0e5a0ec3f6543', 'branch': 'master', 'shortrev': '2603-363', 'author': 'Dentomologist', 'message': 'Merge pull request #14644 from tom-pratt/fix_do_all_players_have_game\n\nDoAllPlayersHaveSameGame returns correct result instead of always true', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8afc696a1efc154db621f41435b0e5a0ec3f6543', 'type': 'new_dev_version'}
2026-05-06T20:40:21.356086 {'source': 'repomanager', 'hash': 'cf20cdabd4e54f384f49c6453de74a46404aa090', 'branch': 'master', 'shortrev': '2603-361', 'author': 'Dentomologist', 'message': 'Merge pull request #14632 from vladfi1/upstream-pipe-inputs-fix\n\nUnconditionally lock in ControllerInterface::UpdateInput', 'url': 'https://github.com/dolphin-emu/dolphin/commit/cf20cdabd4e54f384f49c6453de74a46404aa090', 'type': 'new_dev_version'}
2026-05-05T23:23:20.816813 {'source': 'repomanager', 'hash': '6d5399246e2147217a8bf82892e22a5575f06293', 'branch': 'master', 'shortrev': '2603-359', 'author': 'Dentomologist', 'message': 'Merge pull request #14532 from Dentomologist/autoupdatechecker_fix_edge_cases\n\nAutoUpdateChecker: Fix Edge Cases', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6d5399246e2147217a8bf82892e22a5575f06293', 'type': 'new_dev_version'}
2026-05-05T16:45:59.501269 {'source': 'repomanager', 'hash': 'b0eb643c614ddeda6400dc4033d58934a20ba5eb', 'branch': 'master', 'shortrev': '2603-356', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14642 from SuperSamus/cpp-move-fixup-nocubeb\n\nFixup #14565 (compilation with `-DENABLE_CUBEB=OFF`)', 'url': 'https://github.com/dolphin-emu/dolphin/commit/b0eb643c614ddeda6400dc4033d58934a20ba5eb', 'type': 'new_dev_version'}
2026-05-04T01:20:11.352554 {'source': 'repomanager', 'hash': 'e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1', 'branch': 'master', 'shortrev': '2603-354', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14641 from Dentomologist/replace_maybe_unused_annotations_with_commented_names\n\nReplace some [[maybe_unused]] annotations with commented names', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e22551eae1c84a7e4d0b6a5c519ef4ed4ef69df1', 'type': 'new_dev_version'}
2026-05-01T16:39:29.070934 {'source': 'repomanager', 'hash': 'eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'branch': 'master', 'shortrev': '2603-352', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14628 from JosJuice/android-remove-hostthreadlock\n\nAndroid: Remove HostThreadLock', 'url': 'https://github.com/dolphin-emu/dolphin/commit/eb44b64c9ecbca2f6e346a1d2bdcdf00609f9f31', 'type': 'new_dev_version'}
2026-05-01T01:50:22.181751 {'source': 'repomanager', 'hash': '1907ffa45db050da0a9c9091a09a5fc9e71d6172', 'branch': 'master', 'shortrev': '2603-350', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14384 from ethanuppal/editdsuservers\n\nConfig: Add Edit button to DSU server menu', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1907ffa45db050da0a9c9091a09a5fc9e71d6172', 'type': 'new_dev_version'}
2026-04-29T23:52:41.126625 {'source': 'repomanager', 'hash': 'ecfaa95e5afbb738833c0c979e7a32aff777526e', 'branch': 'master', 'shortrev': '2603-348', 'author': 'JMC47', 'message': 'Merge pull request #14543 from spaceage64/add-classic-controller-codes\n\nUpdate/Add cheats for Animal Crossing: City Folk', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ecfaa95e5afbb738833c0c979e7a32aff777526e', 'type': 'new_dev_version'}
2026-04-29T00:50:55.904905 {'source': 'repomanager', 'hash': '2b743639d825eeca76fd7ada96ec463a8add9628', 'branch': 'master', 'shortrev': '2603-346', 'author': 'Dentomologist', 'message': 'Merge pull request #13505 from tygyh/Replace-find-with-contains\n\nSource/Core: Replace `find(x) != npos` with `contains(x)`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/2b743639d825eeca76fd7ada96ec463a8add9628', 'type': 'new_dev_version'}
2026-04-29T00:29:48.254199 {'source': 'repomanager', 'hash': '725a726174757af5bc8fdd6f8b92c24e88d08768', 'branch': 'master', 'shortrev': '2603-344', 'author': 'Dentomologist', 'message': 'Merge pull request #14602 from jordan-woyak/show-file-in-folder\n\nQtUtils: Add ShowFileInFolder function and make GameList right-click menu actions use it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/725a726174757af5bc8fdd6f8b92c24e88d08768', 'type': 'new_dev_version'}
2026-04-27T20:48:32.636485 {'source': 'repomanager', 'hash': '0e8fa3cacaff15283900aff67af1b3ae762008d6', 'branch': 'master', 'shortrev': '2603-342', 'author': 'JMC47', 'message': 'Merge pull request #14601 from jordan-woyak/mkgp-wheel-fix\n\nHW/Triforce/MarioKartGP: Tweak the steering wheel FFB device responses to prevent "Wheel Error" screens.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0e8fa3cacaff15283900aff67af1b3ae762008d6', 'type': 'new_dev_version'}
2026-04-27T17:11:46.778411 {'source': 'repomanager', 'hash': 'ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1', 'branch': 'master', 'shortrev': '2603-340', 'author': 'JMC47', 'message': 'Merge pull request #14582 from jordan-woyak/gamesettings-allow-imm-xfb\n\n GameSettings: Allow ImmediateXFB for a handful of games that seem fine with it.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ab6b30afe2cdde8ba6eea9a33ea64ce700d933a1', 'type': 'new_dev_version'}
2026-04-27T17:10:19.971254 {'source': 'repomanager', 'hash': 'd47d5431a1b066f45109dbeab740e052c841e8f8', 'branch': 'master', 'shortrev': '2603-337', 'author': 'JMC47', 'message': 'Merge pull request #14617 from jordan-woyak/gamesettings-secret-rings\n\nGameSettings: Set SafeTextureCacheColorSamples for "Sonic and the Secret Rings".', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d47d5431a1b066f45109dbeab740e052c841e8f8', 'type': 'new_dev_version'}
2026-04-27T17:09:25.431694 {'source': 'repomanager', 'hash': '77b778302c3fe6feea31fe618440fd7bce98483e', 'branch': 'master', 'shortrev': '2603-335', 'author': 'JMC47', 'message': 'Merge pull request #14614 from jordan-woyak/gamesettings-metroid-prime\n\nGameSettings: Disable EFBToTexture for "Metroid Prime 2: Dark Echoes (Wii)" to fix the scan visor.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/77b778302c3fe6feea31fe618440fd7bce98483e', 'type': 'new_dev_version'}
2026-04-27T17:09:05.281491 {'source': 'repomanager', 'hash': '6409c5beb3e02e48e124619a4a3c4d1faa26d6ff', 'branch': 'master', 'shortrev': '2603-333', 'author': 'JMC47', 'message': 'Merge pull request #13931 from SuperSamus/pikmin-squared-60fps\n\nGameINI: Add 60 FPS code for Pikmin Squared', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6409c5beb3e02e48e124619a4a3c4d1faa26d6ff', 'type': 'new_dev_version'}
2026-04-26T21:38:50.063265 {'source': 'repomanager', 'hash': '4609cbf35bb2b3796a5abb588ba1c76f22b1bfcc', 'branch': 'master', 'shortrev': '2603-331', 'author': 'JMC47', 'message': 'Merge pull request #14513 from cristian64/gamesettings_mario_kart_arcade_gp2\n\nGameSettings: Add INI files for Mario Kart Arcade GP 2.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4609cbf35bb2b3796a5abb588ba1c76f22b1bfcc', 'type': 'new_dev_version'}
2026-04-25T19:59:31.959940 {'source': 'repomanager', 'hash': '5588fe0022f99320ff1120eb0970a4d422f293ca', 'branch': 'master', 'shortrev': '2603-327', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14308 from jordan-woyak/character-encoding\n\nStringUtil: Make UTF16ToUTF8 and UTF8ToUTF16 use custom encoding/decoding implementation.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5588fe0022f99320ff1120eb0970a4d422f293ca', 'type': 'new_dev_version'}
2026-04-25T19:16:05.012852 {'source': 'repomanager', 'hash': '9e08900a33c31dd09329d74c8a6cd44ae446af17', 'branch': 'master', 'shortrev': '2603-325', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14620 from Dentomologist/gcadapter_fix_data_races\n\nGCAdapter: Fix data races', 'url': 'https://github.com/dolphin-emu/dolphin/commit/9e08900a33c31dd09329d74c8a6cd44ae446af17', 'type': 'new_dev_version'}
2026-04-25T16:55:08.243149 {'source': 'repomanager', 'hash': '0363de56fc13edb43cd50467a52b1c10207db702', 'branch': 'master', 'shortrev': '2603-323', 'author': 'Jordan Woyak', 'message': 'Merge pull request #14618 from Dentomologist/stereomode_unabbreviate_variable_names\n\nStereoMode: Unabbreviate enum names', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0363de56fc13edb43cd50467a52b1c10207db702', 'type': 'new_dev_version'}
Recent 'notification' events
2026-05-17T23:53:08.657725 {'source': 'notifications', 'msg': 'Update 12 to issue 13929 ("Ultimate Spider Man audio tracks not playing/looping") by \x0303g\ufeffregsplace\x03 - \x1f\x0302https://dolp.in/i13929/12\x03\x1f', 'type': 'notification'}
2026-05-17T19:19:36.805378 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303D\ufeffentomologist\x03 commented on #13216 (Core: Implement automatic symbol demangling): \x1f\x0302https://dolp.in/pr13216#issuecomment-4472220637\x03\x1f', 'type': 'notification'}
2026-05-17T18:34:31.855651 {'source': 'notifications', 'msg': 'Update 21 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303E\ufefflJony1000\x03 - \x1f\x0302https://dolp.in/i13840/21\x03\x1f', 'type': 'notification'}
2026-05-17T18:28:34.961514 {'source': 'notifications', 'msg': 'Update 20 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303J\ufeffosJuice\x03 - \x1f\x0302https://dolp.in/i13840/20\x03\x1f', 'type': 'notification'}
2026-05-17T18:25:40.881748 {'source': 'notifications', 'msg': 'Update 19 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303E\ufefflJony1000\x03 - \x1f\x0302https://dolp.in/i13840/19\x03\x1f', 'type': 'notification'}
2026-05-17T18:23:28.030872 {'source': 'notifications', 'msg': 'Update 18 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303E\ufefflJony1000\x03 - \x1f\x0302https://dolp.in/i13840/18\x03\x1f', 'type': 'notification'}
2026-05-17T18:21:48.160183 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303C\ufeffelestialAmber\x03 edited a comment on #13216 (Core: Implement automatic symbol demangling): \x1f\x0302https://dolp.in/pr13216#issuecomment-4472067717\x03\x1f', 'type': 'notification'}
2026-05-17T18:21:34.138413 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303C\ufeffelestialAmber\x03 commented on #13216 (Core: Implement automatic symbol demangling): \x1f\x0302https://dolp.in/pr13216#issuecomment-4472067717\x03\x1f', 'type': 'notification'}
2026-05-17T18:20:28.007682 {'source': 'notifications', 'msg': 'Update 17 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303J\ufeffosJuice\x03 - \x1f\x0302https://dolp.in/i13840/17\x03\x1f', 'type': 'notification'}
2026-05-17T18:08:33.562515 {'source': 'notifications', 'msg': 'Update 16 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303E\ufefflJony1000\x03 - \x1f\x0302https://dolp.in/i13840/16\x03\x1f', 'type': 'notification'}
2026-05-17T17:22:04.622934 {'source': 'notifications', 'msg': 'Update 15 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303J\ufeffosJuice\x03 - \x1f\x0302https://dolp.in/i13840/15\x03\x1f', 'type': 'notification'}
2026-05-17T17:19:05.791254 {'source': 'notifications', 'msg': 'Update 14 to issue 13840 ("Super Mario Galaxy Mario Transformation Code Crash") by \x0303E\ufefflJony1000\x03 - \x1f\x0302https://dolp.in/i13840/14\x03\x1f', 'type': 'notification'}
2026-05-17T17:12:06.922355 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303s\ufeffepalani\x03 approved pull request #13216 (Core: Implement automatic symbol demangling): \x1f\x0302https://dolp.in/pr13216#pullrequestreview-4305924263\x03\x1f', 'type': 'notification'}
2026-05-17T13:12:34.931431 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303P\ufeffTwr\x03 edited a comment on #12224 (Subtitle system for streaming audo/video): \x1f\x0302https://dolp.in/pr12224#issuecomment-4470758843\x03\x1f', 'type': 'notification'}
2026-05-17T13:06:55.375224 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303P\ufeffTwr\x03 commented on #12224 (Subtitle system for streaming audo/video): \x1f\x0302https://dolp.in/pr12224#issuecomment-4470758843\x03\x1f', 'type': 'notification'}
2026-05-17T12:09:59.879178 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303s\ufeffepalani\x03 commented on #12224 (Subtitle system for streaming audo/video): \x1f\x0302https://dolp.in/pr12224#issuecomment-4470582695\x03\x1f', 'type': 'notification'}
2026-05-17T11:50:03.894100 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303s\ufeffepalani\x03 approved pull request #14653 (IOS/Network: reduce log verbosity of SO_EAGAIN to info level): \x1f\x0302https://dolp.in/pr14653#pullrequestreview-4305376172\x03\x1f', 'type': 'notification'}
2026-05-17T08:45:03.325893 {'source': 'notifications', 'msg': 'Update 11 to issue 13929 ("Ultimate Spider Man audio tracks not playing/looping") by \x0303g\ufeffregsplace\x03 - \x1f\x0302https://dolp.in/i13929/11\x03\x1f', 'type': 'notification'}
2026-05-17T05:47:08.830487 {'source': 'notifications', 'msg': 'Issue 14049 created: "[Debugger] Memory breakpoint incompatible with DSI exception" by \x0303V\ufeffampireFlower\x03 - \x1f\x0302https://dolp.in/i14049\x03\x1f', 'type': 'notification'}
2026-05-16T13:43:57.670982 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303B\ufeffeezBumba\x03 edited a comment on #14652 (Add Standalone Wayland Support): \x1f\x0302https://dolp.in/pr14652#issuecomment-4467003607\x03\x1f', 'type': 'notification'}
2026-05-16T13:33:13.330190 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303B\ufeffeezBumba\x03 commented on #14652 (Add Standalone Wayland Support): \x1f\x0302https://dolp.in/pr14652#issuecomment-4467003607\x03\x1f', 'type': 'notification'}
2026-05-16T03:20:11.978815 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303B\ufeffeezBumba\x03 commented on #14652 (Add Standalone Wayland Support): \x1f\x0302https://dolp.in/pr14652#issuecomment-4465382411\x03\x1f', 'type': 'notification'}
2026-05-16T03:14:34.082928 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #14652 \x0304failed\x03 on builders [default, default]: \x1f\x0302<no url>\x03\x1f', 'type': 'notification'}
2026-05-16T03:14:03.746225 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303B\ufeffeezBumba\x03 synchronized pull request #14652: Add Standalone Wayland Support (\x0306master\x03...\x0306merge-wayland\x03): \x1f\x0302https://dolp.in/pr14652\x03\x1f', 'type': 'notification'}
2026-05-16T03:13:39.219671 {'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303B\ufeffeezBumba\x03 synchronized pull request #14652: Add Standalone Wayland Support (\x0306master\x03...\x0306merge-wayland\x03): \x1f\x0302https://dolp.in/pr14652\x03\x1f', 'type': 'notification'}
Recent 'pull_request_fifoci_status' events
2026-05-15T22:47:30.370833 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14653, 'type': 'pull_request_fifoci_status'}
2026-05-15T22:43:53.977351 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14653, 'type': 'pull_request_fifoci_status'}
2026-05-15T22:40:59.676822 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14653, 'type': 'pull_request_fifoci_status'}
2026-05-15T22:34:10.067179 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14653, 'type': 'pull_request_fifoci_status'}
2026-05-15T22:27:49.995574 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14653, 'type': 'pull_request_fifoci_status'}
2026-05-15T20:45:10.588938 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '09ea81120f3a696f2b0775bc55946870971de8cc', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14605, 'type': 'pull_request_fifoci_status'}
2026-05-15T20:41:47.899189 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '09ea81120f3a696f2b0775bc55946870971de8cc', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14605, 'type': 'pull_request_fifoci_status'}
2026-05-15T20:38:43.586612 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '09ea81120f3a696f2b0775bc55946870971de8cc', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14605, 'type': 'pull_request_fifoci_status'}
2026-05-15T20:31:57.232323 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '09ea81120f3a696f2b0775bc55946870971de8cc', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14605, 'type': 'pull_request_fifoci_status'}
2026-05-15T20:25:45.495411 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '09ea81120f3a696f2b0775bc55946870971de8cc', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14605, 'type': 'pull_request_fifoci_status'}
2026-05-15T15:38:32.599935 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'febcd4abc44421925fad1416b759c7e124a65a48', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T15:31:34.682029 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'febcd4abc44421925fad1416b759c7e124a65a48', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T15:28:32.378810 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'febcd4abc44421925fad1416b759c7e124a65a48', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T15:25:08.932709 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'febcd4abc44421925fad1416b759c7e124a65a48', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T15:12:14.517618 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'febcd4abc44421925fad1416b759c7e124a65a48', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:52:32.437156 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:43:12.908673 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:39:02.964478 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:33:25.886747 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:32:47.037914 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:26:23.723694 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:23:46.397512 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:15:31.807555 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '1ab40f4950a9fe31922e88d0031614cf915ded93', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T09:02:48.417847 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
2026-05-15T08:50:01.093754 {'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '9af2ac4c72aef7c0396f01b0332c8c5c32c7c81c', 'service': 'pr-fifoci-vk-lin-mesa', 'pr': 14257, 'type': 'pull_request_fifoci_status'}
Recent 'raw_bb_hook' events
2026-05-18T00:00:23.679610 {'source': 'webserver', 'raw': {'buildid': 174976, 'number': 1134, 'builderid': 20, 'buildrequestid': 175103, 'workerid': 10, 'masterid': 1, 'started_at': 1779062400, 'complete_at': 1779062423, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'buildername': ['nightly-generic', 'Builder'], 'builderid': [20, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [1134, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/nightly-generic', 'Worker'], 'got_revision': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175103, 'buildsetid': 39736, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1779062400, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1779062400, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39736, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1779062400, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1134'}, 'type': 'raw_bb_hook'}
2026-05-18T00:00:00.335061 {'source': 'webserver', 'raw': {'buildid': 174976, 'number': 1134, 'builderid': 20, 'buildrequestid': 175103, 'workerid': 10, 'masterid': 1, 'started_at': 1779062400, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'buildername': ['nightly-generic', 'Builder'], 'builderid': [20, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [1134, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 175103, 'buildsetid': 39736, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1779062400, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1779062400, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39736, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1779062400, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1134'}, 'type': 'raw_bb_hook'}
2026-05-17T05:00:03.597392 {'source': 'webserver', 'raw': {'buildid': 174975, 'number': 162, 'builderid': 23, 'buildrequestid': 175102, 'workerid': 3, 'masterid': 1, 'started_at': 1778994000, 'complete_at': 1778994003, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['__Janitor', 'Scheduler'], 'buildername': ['__Janitor', 'Builder'], 'builderid': [23, 'Builder'], 'workername': ['__Janitor', 'Worker'], 'buildnumber': [162, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['/var/lib/buildbot/workers/__Janitor', 'Worker'], 'builddir': ['/var/lib/buildbot/workers/__Janitor/__Janitor', 'Worker']}, 'buildrequest': {'buildrequestid': 175102, 'buildsetid': 39735, 'builderid': 23, 'priority': 0, 'claimed': True, 'claimed_at': 1778994000, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778994000, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39735, 'external_idstring': None, 'reason': "The Nightly scheduler named '__Janitor' triggered this build", 'submitted_at': 1778994000, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 23, 'name': '__Janitor', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/23/builds/162'}, 'type': 'raw_bb_hook'}
2026-05-17T05:00:00.276285 {'source': 'webserver', 'raw': {'buildid': 174975, 'number': 162, 'builderid': 23, 'buildrequestid': 175102, 'workerid': 3, 'masterid': 1, 'started_at': 1778994000, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'scheduler': ['__Janitor', 'Scheduler'], 'buildername': ['__Janitor', 'Builder'], 'builderid': [23, 'Builder'], 'workername': ['__Janitor', 'Worker'], 'buildnumber': [162, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 175102, 'buildsetid': 39735, 'builderid': 23, 'priority': 0, 'claimed': True, 'claimed_at': 1778994000, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778994000, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39735, 'external_idstring': None, 'reason': "The Nightly scheduler named '__Janitor' triggered this build", 'submitted_at': 1778994000, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 23, 'name': '__Janitor', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/23/builds/162'}, 'type': 'raw_bb_hook'}
2026-05-17T00:00:23.564721 {'source': 'webserver', 'raw': {'buildid': 174974, 'number': 1133, 'builderid': 20, 'buildrequestid': 175101, 'workerid': 10, 'masterid': 1, 'started_at': 1778976000, 'complete_at': 1778976023, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'buildername': ['nightly-generic', 'Builder'], 'builderid': [20, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [1133, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/nightly-generic', 'Worker'], 'got_revision': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175101, 'buildsetid': 39734, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1778976000, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778976000, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39734, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1778976000, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1133'}, 'type': 'raw_bb_hook'}
2026-05-17T00:00:00.344336 {'source': 'webserver', 'raw': {'buildid': 174974, 'number': 1133, 'builderid': 20, 'buildrequestid': 175101, 'workerid': 10, 'masterid': 1, 'started_at': 1778976000, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'buildername': ['nightly-generic', 'Builder'], 'builderid': [20, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [1133, 'Build'], 'branch': [None, 'Build'], 'revision': [None, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 175101, 'buildsetid': 39734, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1778976000, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778976000, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39734, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1778976000, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1133'}, 'type': 'raw_bb_hook'}
2026-05-16T00:00:24.398971 {'source': 'webserver', 'raw': {'buildid': 174973, 'number': 1132, 'builderid': 20, 'buildrequestid': 175100, 'workerid': 10, 'masterid': 1, 'started_at': 1778889600, 'complete_at': 1778889624, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'branch': [None, 'Build'], 'buildername': ['nightly-generic', 'Builder'], 'revision': [None, 'Build'], 'builddir': ['/buildbot/nightly-generic', 'Worker'], 'builderid': [20, 'Builder'], 'repository': ['', 'Build'], 'workername': ['ubuntu-lts', 'Worker'], 'codebase': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'buildnumber': [1132, 'Build'], 'project': ['', 'Build'], 'got_revision': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175100, 'buildsetid': 39733, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1778889600, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778889600, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39733, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1778889600, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1132'}, 'type': 'raw_bb_hook'}
2026-05-16T00:00:00.358684 {'source': 'webserver', 'raw': {'buildid': 174973, 'number': 1132, 'builderid': 20, 'buildrequestid': 175100, 'workerid': 10, 'masterid': 1, 'started_at': 1778889600, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'scheduler': ['nightly', 'Scheduler'], 'branch': [None, 'Build'], 'buildername': ['nightly-generic', 'Builder'], 'revision': [None, 'Build'], 'builderid': [20, 'Builder'], 'repository': ['', 'Build'], 'workername': ['ubuntu-lts', 'Worker'], 'codebase': ['', 'Build'], 'buildnumber': [1132, 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 175100, 'buildsetid': 39733, 'builderid': 20, 'priority': 0, 'claimed': True, 'claimed_at': 1778889600, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778889600, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39733, 'external_idstring': None, 'reason': "The Nightly scheduler named 'nightly' triggered this build", 'submitted_at': 1778889600, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 1, 'branch': None, 'revision': None, 'project': '', 'repository': '', 'codebase': '', 'created_at': 1681171200, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 20, 'name': 'nightly-generic', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/20/builds/1132'}, 'type': 'raw_bb_hook'}
2026-05-15T22:47:29.688543 {'source': 'webserver', 'raw': {'buildid': 174972, 'number': 8615, 'builderid': 35, 'buildrequestid': 175096, 'workerid': 5, 'masterid': 1, 'started_at': 1778884846, 'complete_at': 1778885239, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [8615, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [2, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175096, 'buildsetid': 39731, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1778884846, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883306, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39731, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1778883306, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174964, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174964, 'number': 9806, 'builderid': 27, 'buildrequestid': 175091, 'workerid': 10, 'masterid': 1, 'started_at': 1778882779, 'complete_at': 1778883306, '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/8615'}, 'type': 'raw_bb_hook'}
2026-05-15T22:43:53.275984 {'source': 'webserver', 'raw': {'buildid': 174971, 'number': 8391, 'builderid': 19, 'buildrequestid': 175098, 'workerid': 8, 'masterid': 1, 'started_at': 1778884439, 'complete_at': 1778885023, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'builderid': [19, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [8391, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mvk-osx-m1', 'Worker'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [114, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175098, 'buildsetid': 39732, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1778884439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883847, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39732, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1778883847, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174957, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174957, 'number': 9821, 'builderid': 7, 'buildrequestid': 175085, 'workerid': 8, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883847, '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/8391'}, 'type': 'raw_bb_hook'}
2026-05-15T22:40:58.940680 {'source': 'webserver', 'raw': {'buildid': 174970, 'number': 8615, 'builderid': 10, 'buildrequestid': 175095, 'workerid': 5, 'masterid': 1, 'started_at': 1778884063, 'complete_at': 1778884846, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [8615, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [2, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175095, 'buildsetid': 39731, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1778884063, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883306, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39731, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1778883306, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174964, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174964, 'number': 9806, 'builderid': 27, 'buildrequestid': 175091, 'workerid': 10, 'masterid': 1, 'started_at': 1778882779, 'complete_at': 1778883306, '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/8615'}, 'type': 'raw_bb_hook'}
2026-05-15T22:40:58.743230 {'source': 'webserver', 'raw': {'buildid': 174972, 'number': 8615, 'builderid': 35, 'buildrequestid': 175096, 'workerid': 5, 'masterid': 1, 'started_at': 1778884846, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [8615, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build']}, 'buildrequest': {'buildrequestid': 175096, 'buildsetid': 39731, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1778884846, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883306, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39731, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1778883306, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174964, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174964, 'number': 9806, 'builderid': 27, 'buildrequestid': 175091, 'workerid': 10, 'masterid': 1, 'started_at': 1778882779, 'complete_at': 1778883306, '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/8615'}, 'type': 'raw_bb_hook'}
2026-05-15T22:34:09.524788 {'source': 'webserver', 'raw': {'buildid': 174971, 'number': 8391, 'builderid': 19, 'buildrequestid': 175098, 'workerid': 8, 'masterid': 1, 'started_at': 1778884439, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'builderid': [19, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [8391, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build']}, 'buildrequest': {'buildrequestid': 175098, 'buildsetid': 39732, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1778884439, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883847, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39732, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1778883847, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174957, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174957, 'number': 9821, 'builderid': 7, 'buildrequestid': 175085, 'workerid': 8, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883847, '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/8391'}, 'type': 'raw_bb_hook'}
2026-05-15T22:34:09.382049 {'source': 'webserver', 'raw': {'buildid': 174969, 'number': 8393, 'builderid': 21, 'buildrequestid': 175099, 'workerid': 8, 'masterid': 1, 'started_at': 1778883847, 'complete_at': 1778884439, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'builderid': [21, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [8393, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mtl-osx-m1', 'Worker'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [114, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175099, 'buildsetid': 39732, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1778883847, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883847, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39732, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1778883847, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174957, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174957, 'number': 9821, 'builderid': 7, 'buildrequestid': 175085, 'workerid': 8, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883847, '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/8393'}, 'type': 'raw_bb_hook'}
2026-05-15T22:27:54.731333 {'source': 'webserver', 'raw': {'buildid': 174970, 'number': 8615, 'builderid': 10, 'buildrequestid': 175095, 'workerid': 5, 'masterid': 1, 'started_at': 1778884063, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [8615, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build']}, 'buildrequest': {'buildrequestid': 175095, 'buildsetid': 39731, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1778884063, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883306, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39731, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1778883306, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174964, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174964, 'number': 9806, 'builderid': 27, 'buildrequestid': 175091, 'workerid': 10, 'masterid': 1, 'started_at': 1778882779, 'complete_at': 1778883306, '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/8615'}, 'type': 'raw_bb_hook'}
2026-05-15T22:27:49.254460 {'source': 'webserver', 'raw': {'buildid': 174966, 'number': 4604, 'builderid': 41, 'buildrequestid': 175097, 'workerid': 5, 'masterid': 1, 'started_at': 1778883307, 'complete_at': 1778884063, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'builderid': [41, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [4604, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-vk-lin-mesa', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [2, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175097, 'buildsetid': 39731, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1778883306, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883306, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39731, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1778883306, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174964, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174964, 'number': 9806, 'builderid': 27, 'buildrequestid': 175091, 'workerid': 10, 'masterid': 1, 'started_at': 1778882779, 'complete_at': 1778883306, '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/4604'}, 'type': 'raw_bb_hook'}
2026-05-15T22:24:20.165970 {'source': 'webserver', 'raw': {'buildid': 174957, 'number': 9821, 'builderid': 7, 'buildrequestid': 175085, 'workerid': 8, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883847, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Change'], 'shortrev': ['4618e4', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'builderid': [7, 'Builder'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'buildername': ['pr-osx-universal', 'Builder'], 'buildnumber': [9821, 'Build'], 'pr_id': [14653, 'Change'], 'branch': ['refs/pull/14653/head', 'Build'], 'workername': ['osx-m1', 'Worker'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-osx-universal', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 175085, 'buildsetid': 39729, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1778882774, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, '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/9821'}, 'type': 'raw_bb_hook'}
2026-05-15T22:24:17.938571 {'source': 'webserver', 'raw': {'buildid': 174969, 'number': 8393, 'builderid': 21, 'buildrequestid': 175099, 'workerid': 8, 'masterid': 1, 'started_at': 1778883847, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Trigger'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Trigger'], 'shortrev': ['4618e4', 'Trigger'], 'pr_id': [14653, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'builderid': [21, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [8393, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build']}, 'buildrequest': {'buildrequestid': 175099, 'buildsetid': 39732, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1778883847, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778883847, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39732, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1778883847, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 174957, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': {'buildid': 174957, 'number': 9821, 'builderid': 7, 'buildrequestid': 175085, 'workerid': 8, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883847, '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/8393'}, 'type': 'raw_bb_hook'}
2026-05-15T22:21:00.806971 {'source': 'webserver', 'raw': {'buildid': 174967, 'number': 9807, 'builderid': 1, 'buildrequestid': 175083, 'workerid': 9, 'masterid': 1, 'started_at': 1778883309, 'complete_at': 1778883648, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'builderid': [1, 'Builder'], 'workername': ['debian', 'Worker'], 'buildnumber': [9807, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [13, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175083, 'buildsetid': 39729, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1778883309, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/9807'}, 'type': 'raw_bb_hook'}
2026-05-15T22:19:57.504591 {'source': 'webserver', 'raw': {'buildid': 174968, 'number': 9814, 'builderid': 31, 'buildrequestid': 175092, 'workerid': 4, 'masterid': 1, 'started_at': 1778883370, 'complete_at': 1778883582, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'builderid': [31, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [9814, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/db/b2/pr-14653-dolphin-latest-dbg-x64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 175092, 'buildsetid': 39729, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1778883370, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/9814'}, 'type': 'raw_bb_hook'}
2026-05-15T22:16:30.122925 {'source': 'webserver', 'raw': {'buildid': 174965, 'number': 9804, 'builderid': 13, 'buildrequestid': 175088, 'workerid': 4, 'masterid': 1, 'started_at': 1778883115, 'complete_at': 1778883370, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [9804, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/15/d4/pr-14653-dolphin-latest-ARM64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 175088, 'buildsetid': 39729, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1778883115, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 13, 'name': 'pr-win-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/13/builds/9804'}, 'type': 'raw_bb_hook'}
2026-05-15T22:16:29.447610 {'source': 'webserver', 'raw': {'buildid': 174968, 'number': 9814, 'builderid': 31, 'buildrequestid': 175092, 'workerid': 4, 'masterid': 1, 'started_at': 1778883370, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'builderid': [31, 'Builder'], 'workername': ['windows', 'Worker'], 'buildnumber': [9814, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 175092, 'buildsetid': 39729, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1778883370, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 31, 'name': 'pr-win-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/31/builds/9814'}, 'type': 'raw_bb_hook'}
2026-05-15T22:15:46.814681 {'source': 'webserver', 'raw': {'buildid': 174967, 'number': 9807, 'builderid': 1, 'buildrequestid': 175083, 'workerid': 9, 'masterid': 1, 'started_at': 1778883309, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'builderid': [1, 'Builder'], 'workername': ['debian', 'Worker'], 'buildnumber': [9807, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build']}, 'buildrequest': {'buildrequestid': 175083, 'buildsetid': 39729, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1778883309, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 1, 'name': 'pr-deb-dbg-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/1/builds/9807'}, 'type': 'raw_bb_hook'}
2026-05-15T22:15:46.591621 {'source': 'webserver', 'raw': {'buildid': 174960, 'number': 9805, 'builderid': 26, 'buildrequestid': 175090, 'workerid': 9, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883309, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'branchname': ['pr-14653', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-deb-x64', 'Builder'], 'builderid': [26, 'Builder'], 'workername': ['debian', 'Worker'], 'buildnumber': [9805, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch'], 'warnings-count': [13, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 175090, 'buildsetid': 39729, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1778882774, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 26, 'name': 'pr-deb-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/26/builds/9805'}, 'type': 'raw_bb_hook'}
2026-05-15T22:15:45.956158 {'source': 'webserver', 'raw': {'buildid': 174962, 'number': 9808, 'builderid': 22, 'buildrequestid': 175089, 'workerid': 12, 'masterid': 1, 'started_at': 1778882774, 'complete_at': 1778883308, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-14653', 'Change'], 'baserev': ['604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', 'Change'], 'headrev': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Change'], 'shortrev': ['4618e4', 'Change'], 'pr_id': [14653, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-android', 'Builder'], 'builderid': [22, 'Builder'], 'workername': ['android', 'Worker'], 'buildnumber': [9808, 'Build'], 'branch': ['refs/pull/14653/head', 'Build'], 'revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: Tilka)'], 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-android', 'Worker'], 'got_revision': ['4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 175089, 'buildsetid': 39729, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1778882774, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1778882774, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 39729, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1778882774, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 11894, 'branch': 'refs/pull/14653/head', 'revision': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1778882774, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 22, 'name': 'pr-android', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/22/builds/9808'}, 'type': 'raw_bb_hook'}
Recent 'raw_gh_hook' events
2026-05-17T19:19:36.805136 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 11, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T19:19:34Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472220637', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472220637', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472220637, 'node_id': 'IC_kwDOALCn2M8AAAABCpCr3Q', 'user': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T19:19:34Z', 'updated_at': '2026-05-17T19:19:34Z', 'body': "> This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.\r\n\r\nAre you referring to https://github.com/dolphin-emu/dolphin/commit/57b1234feb01ad5bbe7bdbf2bffd2a14590e560e? That commit is a separate merge commit that has two parents (which you can see listed on the linked page). The first parent is the previous version's merge commit (https://github.com/dolphin-emu/dolphin/commit/0a84d93a8e64d946405b0e17edd1a29ccfac0606) and the other one is your commit (https://github.com/dolphin-emu/dolphin/commit/1c4bfc35d980856033714a84a8425e71576623eb), which has you listed as the author.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472220637/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'Dentomologist', 'id': 73494713, 'node_id': 'MDQ6VXNlcjczNDk0NzEz', 'avatar_url': 'https://avatars.githubusercontent.com/u/73494713?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Dentomologist', 'html_url': 'https://github.com/Dentomologist', 'followers_url': 'https://api.github.com/users/Dentomologist/followers', 'following_url': 'https://api.github.com/users/Dentomologist/following{/other_user}', 'gists_url': 'https://api.github.com/users/Dentomologist/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Dentomologist/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Dentomologist/subscriptions', 'organizations_url': 'https://api.github.com/users/Dentomologist/orgs', 'repos_url': 'https://api.github.com/users/Dentomologist/repos', 'events_url': 'https://api.github.com/users/Dentomologist/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Dentomologist/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T18:21:48.159883 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'This time, could whoever merges the PR make sure I get included as an author of the commit?'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T18:21:32Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472067717, 'node_id': 'IC_kwDOALCn2M8AAAABCo5WhQ', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T18:21:32Z', 'updated_at': '2026-05-17T18:21:46Z', 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit? Just saying this in advance.', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T18:21:34.138127 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'id': 2724903177, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'number': 13216, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 10, 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T18:21:32Z', 'closed_at': None, 'assignee': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'merged_at': None}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/reactions', 'total_count': 1, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#issuecomment-4472067717', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'id': 4472067717, 'node_id': 'IC_kwDOALCn2M8AAAABCo5WhQ', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T18:21:32Z', 'updated_at': '2026-05-17T18:21:32Z', 'body': 'This time, could whoever merges the PR make sure I get included as an author of the commit?', 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4472067717/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T17:12:06.922098 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 4305924263, 'node_id': 'PRR_kwDOALCn2M8AAAABAKcwpw', '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': 'LGTM. I tested the Windows debug build with several games and their symbols (map/elf files).', 'commit_id': '3f5460a5ff318751b3effb85c4c57bbdd46e9ece', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216#pullrequestreview-4305924263', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13216#pullrequestreview-4305924263'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216'}}, 'submitted_at': '2026-05-17T17:12:05Z', 'updated_at': '2026-05-17T17:12:05Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216', 'id': 2221697680, 'node_id': 'PR_kwDOALCn2M6EbGqQ', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13216', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13216.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216', 'number': 13216, 'state': 'open', 'locked': False, 'title': 'Core: Implement automatic symbol demangling', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "The plan for this PR is to implement automatic symbol demangling which occurs whenever a symbol's name is updated (either when symbols are loaded from a map/ELF/RSO file, or if a symbol name is manually changed). Additionally, there will be two toggles to allow for the feature to be enabled or disabled: one for controlling whether Dolphin should perform automatic demangling when a name is updated, and another to determine if the code debugger tab should display mangled or demangled names.\r\n\r\n- [x] Symbol demangler\r\n- [x] Functionality for demangling symbols upon name update\r\n- [x] Update Code tab\r\n- [x] Implement toggles", 'created_at': '2024-12-08T02:01:50Z', 'updated_at': '2026-05-17T17:12:05Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'bfc30b68b7656543c7a205c0dc0ceadc2974a24b', 'assignees': [], 'requested_reviewers': [{'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216/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/13216/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f5460a5ff318751b3effb85c4c57bbdd46e9ece', 'head': {'label': 'CelestialAmber:cw-demangler', 'ref': 'cw-demangler', 'sha': '3f5460a5ff318751b3effb85c4c57bbdd46e9ece', 'user': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 870365693, 'node_id': 'R_kgDOM-C5_Q', 'name': 'dolphin', 'full_name': 'CelestialAmber/dolphin', 'private': False, 'owner': {'login': 'CelestialAmber', 'id': 36093934, 'node_id': 'MDQ6VXNlcjM2MDkzOTM0', 'avatar_url': 'https://avatars.githubusercontent.com/u/36093934?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/CelestialAmber', 'html_url': 'https://github.com/CelestialAmber', 'followers_url': 'https://api.github.com/users/CelestialAmber/followers', 'following_url': 'https://api.github.com/users/CelestialAmber/following{/other_user}', 'gists_url': 'https://api.github.com/users/CelestialAmber/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/CelestialAmber/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/CelestialAmber/subscriptions', 'organizations_url': 'https://api.github.com/users/CelestialAmber/orgs', 'repos_url': 'https://api.github.com/users/CelestialAmber/repos', 'events_url': 'https://api.github.com/users/CelestialAmber/events{/privacy}', 'received_events_url': 'https://api.github.com/users/CelestialAmber/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/CelestialAmber/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/CelestialAmber/dolphin', 'forks_url': 'https://api.github.com/repos/CelestialAmber/dolphin/forks', 'keys_url': 'https://api.github.com/repos/CelestialAmber/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/CelestialAmber/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/CelestialAmber/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/CelestialAmber/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/CelestialAmber/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/CelestialAmber/dolphin/events', 'assignees_url': 'https://api.github.com/repos/CelestialAmber/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/CelestialAmber/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/CelestialAmber/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/CelestialAmber/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/CelestialAmber/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/CelestialAmber/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/CelestialAmber/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/CelestialAmber/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/CelestialAmber/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/CelestialAmber/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/CelestialAmber/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/CelestialAmber/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/CelestialAmber/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/CelestialAmber/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/CelestialAmber/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/CelestialAmber/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/CelestialAmber/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/CelestialAmber/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/CelestialAmber/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/CelestialAmber/dolphin/merges', 'archive_url': 'https://api.github.com/repos/CelestialAmber/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/CelestialAmber/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/CelestialAmber/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/CelestialAmber/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/CelestialAmber/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/CelestialAmber/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/CelestialAmber/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/CelestialAmber/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/CelestialAmber/dolphin/deployments', 'created_at': '2024-10-09T22:58:51Z', 'updated_at': '2024-12-08T01:45:11Z', 'pushed_at': '2026-05-07T07:25:34Z', 'git_url': 'git://github.com/CelestialAmber/dolphin.git', 'ssh_url': 'git@github.com:CelestialAmber/dolphin.git', 'clone_url': 'https://github.com/CelestialAmber/dolphin.git', 'svn_url': 'https://github.com/CelestialAmber/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511217, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': '8afc696a1efc154db621f41435b0e5a0ec3f6543', '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-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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/13216'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13216'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13216/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13216/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/13216/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3f5460a5ff318751b3effb85c4c57bbdd46e9ece'}}, '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-05-17T15:32:53Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15034, 'watchers_count': 15034, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15034, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T13:12:34.931202 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T13:06:53Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470758843, 'node_id': 'IC_kwDOALCn2M8AAAABCnpduw', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T13:06:53Z', 'updated_at': '2026-05-17T13:12:31Z', 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).\r\n\r\n(Of course there\'s the issue of not ruining framerate with script-plugins. If I remember correctly, this crappy built-in had negligible performance cost. Scripts would be more annoying to keep fast.)', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T13:06:55.374991 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 6, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T13:06:53Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470758843', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470758843, 'node_id': 'IC_kwDOALCn2M8AAAABCnpduw', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-17T13:06:53Z', 'updated_at': '2026-05-17T13:06:53Z', 'body': '@Impeta I had to take a break from being alive for... uh... 3 years?! Damn. I am still in process of picking up pieces, but I\'ll should be able to find time to dust this off soon-ish.\r\n\r\n@sepalani this MR is garbage, because I first tried to offload subtitles to DLL. Then I discovered C++ Name Mangling, and after failing to build time machine to correct that atrocity I quickly chopped it into built-in mechanism. \r\n\r\nIf I remember correctly there\'s bunch of issues to fix, code quality is least of them:\r\n- File format I cobbled up is garbage, because its the case of tweaking it until it worked despite limitations of system.\r\n- If I remember correctly, I had to include some single-file parser for... JSON? Can\'t remember details... but it should probably be changed to use something that\'s already in repo to minimize changes. Dolphin is using various config files, so there should be something handy.\r\n- OSD handling was done horribly, as it was done wile learning OSD system.\r\n- text rendering sucked because fonts are ridiculously complicated nowadays\r\n- Something about adding fields to structs and automatic copy-ctors ruining my mental health. I remember almost biting my keyboard when trying to get it to work, because C++ compiler in its traditional fashion showed errors in random code templates rather than actual code.\r\n\r\nIt should be split in parts:\r\n- file offset logging, which is **very** useful when reverse-engineering custom file formats. And pretty much only way to do non-invasive subtitling anyway.\r\n- extended OSD "sections", or maybe switch to "window", to not mangle current OSD with subtitles.\r\n- subtitles themselves.\r\n\r\nI would very much like to somehow keep it separate from Dolphin, as such subtitle system is bound to need some game-specific logic.\r\nSadly "native" plugins are no go, as between name-mangling and cross-platform it would be easier to just add scripting engine instead.\r\n\r\nIf there was option to add some basic scripting, subtitles could be a plugin instead of built-in functions. Thus easy to tweak for specific game (eg. timestamp vs file offset).', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470758843/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T12:09:59.878894 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 5, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-17T12:09:57Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470582695', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4470582695', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4470582695, 'node_id': 'IC_kwDOALCn2M8AAAABCnetpw', '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}, 'created_at': '2026-05-17T12:09:57Z', 'updated_at': '2026-05-17T12:09:57Z', 'body': "This seems quite unlikely unless this 3yo PR is rebased and some of the issues are addressed (e.g. [project coding style](https://github.com/dolphin-emu/dolphin/blob/master/Contributing.md), passing buildbot tests, ...). I'll be more than happy to review this PR again when it's updated.", 'author_association': 'MEMBER', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4470582695/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-17T11:50:03.893874 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 4305376172, 'node_id': 'PRR_kwDOALCn2M8AAAABAJ7TrA', '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': 'LGTM, tested on Windows.', 'commit_id': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'state': 'approved', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14653#pullrequestreview-4305376172', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14653#pullrequestreview-4305376172'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653'}}, 'submitted_at': '2026-05-17T11:50:02Z', 'updated_at': '2026-05-17T11:50:02Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653', 'id': 3692374973, 'node_id': 'PR_kwDOALCn2M7cFSu9', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14653', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14653.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14653.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653', 'number': 14653, 'state': 'open', 'locked': False, 'title': 'IOS/Network: reduce log verbosity of SO_EAGAIN to info level', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Otherwise IOCTL_SO_ACCEPT is very noisy until a client connects.', 'created_at': '2026-05-15T22:06:04Z', 'updated_at': '2026-05-17T11:50:02Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '641c140d4c9557780b4a6756e1e7fa71f76608c3', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/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/14653/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'head': {'label': 'Tilka:net_accept', 'ref': 'net_accept', 'sha': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16304949, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjMwNDk0OQ==', 'name': 'dolphin', 'full_name': 'Tilka/dolphin', 'private': False, 'owner': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Tilka/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/Tilka/dolphin', 'forks_url': 'https://api.github.com/repos/Tilka/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Tilka/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Tilka/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Tilka/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Tilka/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Tilka/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Tilka/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Tilka/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Tilka/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Tilka/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Tilka/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tilka/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Tilka/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Tilka/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Tilka/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Tilka/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Tilka/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Tilka/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Tilka/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Tilka/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Tilka/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Tilka/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Tilka/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Tilka/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Tilka/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Tilka/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Tilka/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Tilka/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Tilka/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Tilka/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Tilka/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Tilka/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tilka/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Tilka/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Tilka/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Tilka/dolphin/deployments', 'created_at': '2014-01-28T07:24:53Z', 'updated_at': '2024-12-24T17:03:46Z', 'pushed_at': '2026-05-15T22:05:50Z', 'git_url': 'git://github.com/Tilka/dolphin.git', 'ssh_url': 'git@github.com:Tilka/dolphin.git', 'clone_url': 'https://github.com/Tilka/dolphin.git', 'svn_url': 'https://github.com/Tilka/dolphin', 'homepage': None, 'size': 511040, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 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': 3, '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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', '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-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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/14653'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14653'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/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/14653/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4618e4bb40609cba49caafb2deb913b01ea8d9f4'}}, '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-05-17T05:07:22Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15030, 'watchers_count': 15030, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3083, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3083, 'open_issues': 459, 'watchers': 15030, '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': '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}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T13:43:57.670697 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T13:33:11Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4467003607, 'node_id': 'IC_kwDOALCn2M8AAAABCkEQ1w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T13:33:11Z', 'updated_at': '2026-05-16T13:43:56Z', 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command. EDIT: because I don't know if for rebasing I would need to make a fresh new branch and fix messy history.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T10:07:56Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15028, 'watchers_count': 15028, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3082, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3082, 'open_issues': 459, 'watchers': 15028, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T13:33:13.330000 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 9, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T13:33:11Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4467003607', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4467003607, 'node_id': 'IC_kwDOALCn2M8AAAABCkEQ1w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T13:33:11Z', 'updated_at': '2026-05-16T13:33:11Z', 'body': "okay how do I rebase this stuff after I already merged it and added commits. I'm a little new to using the git command.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4467003607/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T10:07:56Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15028, 'watchers_count': 15028, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3082, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3082, 'open_issues': 459, 'watchers': 15028, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:20:11.978512 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 8, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:20:10Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4465382411', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4465382411', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4465382411, 'node_id': 'IC_kwDOALCn2M8AAAABCihUCw', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-16T03:20:09Z', 'updated_at': '2026-05-16T03:20:09Z', 'body': 'Yeah I will fix all the commit history stuff soon.', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4465382411/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:14:03.745381 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14652, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:14:02Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'd46ab925aa9f7e3317476b6c19e3af6f0000f90d', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/9dc790c34f673733c72e7e6796b2bf2c9e79c6da', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '9dc790c34f673733c72e7e6796b2bf2c9e79c6da', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-16T03:14:00Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/9dc790c34f673733c72e7e6796b2bf2c9e79c6da'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 7, 'review_comments': 5, 'maintainer_can_modify': True, 'commits': 14, 'additions': 474, 'deletions': 289, 'changed_files': 45}, 'before': 'a373233a417b186293470a151887848e92ba8354', 'after': '9dc790c34f673733c72e7e6796b2bf2c9e79c6da', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:13:39.218911 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14652, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:13:37Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e779acd3447e250f319d016c1c11fc53a6f8aaf0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a373233a417b186293470a151887848e92ba8354', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': 'a373233a417b186293470a151887848e92ba8354', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-16T03:13:36Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/a373233a417b186293470a151887848e92ba8354'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 7, 'review_comments': 5, 'maintainer_can_modify': True, 'commits': 13, 'additions': 474, 'deletions': 289, 'changed_files': 45}, 'before': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'after': 'a373233a417b186293470a151887848e92ba8354', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:12:29.278909 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053', 'pull_request_review_id': 4302548791, 'id': 3251914053, 'node_id': 'PRRC_kwDOALCn2M7B1EVF', 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'commit_id': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Oh wait, your right. Not sure why I did that. Had lots of tabs open when editing files so I guess I was looking at the wrong repo.', 'created_at': '2026-05-16T03:12:27Z', 'updated_at': '2026-05-16T03:12:27Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251914053', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251914053'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251914053/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': 171, 'original_line': 171, 'side': 'RIGHT', 'in_reply_to_id': 3246099834, 'author_association': 'NONE', 'original_position': 5, 'position': 5, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:12:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e779acd3447e250f319d016c1c11fc53a6f8aaf0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:17:07Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:12:29.209389 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 4302548791, 'node_id': 'PRR_kwDOALCn2M8AAAABAHOvNw', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302548791', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302548791'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'submitted_at': '2026-05-16T03:12:27Z', 'updated_at': '2026-05-16T03:12:27Z', 'author_association': 'NONE'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:12:27Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e779acd3447e250f319d016c1c11fc53a6f8aaf0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:17:07Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:05:06.458641 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174', 'pull_request_review_id': 4302539220, 'id': 3251904174, 'node_id': 'PRRC_kwDOALCn2M7B1B6u', 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'commit_id': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'What strings do other wayland variants use here?', 'created_at': '2026-05-16T03:05:04Z', 'updated_at': '2026-05-16T03:05:04Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251904174', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251904174'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251904174/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': 171, 'original_line': 171, 'side': 'RIGHT', 'in_reply_to_id': 3246099834, 'author_association': 'CONTRIBUTOR', 'original_position': 5, 'position': 5, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:05:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e779acd3447e250f319d016c1c11fc53a6f8aaf0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:17:07Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-16T03:05:06.457868 {'source': 'webserver', 'gh_type': 'pull_request_review', 'raw': {'action': 'submitted', 'review': {'id': 4302539220, 'node_id': 'PRR_kwDOALCn2M8AAAABAHOJ1A', 'user': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': None, 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'state': 'commented', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302539220', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', '_links': {'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#pullrequestreview-4302539220'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'submitted_at': '2026-05-16T03:05:04Z', 'updated_at': '2026-05-16T03:05:04Z', 'author_association': 'CONTRIBUTOR'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-16T03:05:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'e779acd3447e250f319d016c1c11fc53a6f8aaf0', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:17:07Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511300, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-16T02:51:41Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15027, 'watchers_count': 15027, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15027, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'TellowKrinkle', 'id': 3315070, 'node_id': 'MDQ6VXNlcjMzMTUwNzA=', 'avatar_url': 'https://avatars.githubusercontent.com/u/3315070?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/TellowKrinkle', 'html_url': 'https://github.com/TellowKrinkle', 'followers_url': 'https://api.github.com/users/TellowKrinkle/followers', 'following_url': 'https://api.github.com/users/TellowKrinkle/following{/other_user}', 'gists_url': 'https://api.github.com/users/TellowKrinkle/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/TellowKrinkle/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/TellowKrinkle/subscriptions', 'organizations_url': 'https://api.github.com/users/TellowKrinkle/orgs', 'repos_url': 'https://api.github.com/users/TellowKrinkle/repos', 'events_url': 'https://api.github.com/users/TellowKrinkle/events{/privacy}', 'received_events_url': 'https://api.github.com/users/TellowKrinkle/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T23:43:51.988790 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n "}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:40:54Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:43:50Z', 'body': '@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I\'m asking because there\'s this Tetra Trackers ENG translation project, and it\'s using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it\'s narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n<img width="1920" height="1080" alt="snapshot" src="https://github.com/user-attachments/assets/32510168-cdf9-4832-9ec4-cef575605bd7" />\r\n\r\n\r\n ', 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T23:40:55.825123 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\n\r\n "}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:37:27Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:40:54Z', 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\nhttps://gamebanana.com/mods/413831\r\n\r\n ", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T23:37:28.619530 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'id': 1934731067, 'node_id': 'PR_kwDOALCn2M5cWaXo', 'number': 12224, 'title': 'Subtitle system for streaming audo/video', 'user': {'login': 'PTwr', 'id': 20748035, 'node_id': 'MDQ6VXNlcjIwNzQ4MDM1', 'avatar_url': 'https://avatars.githubusercontent.com/u/20748035?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/PTwr', 'html_url': 'https://github.com/PTwr', 'followers_url': 'https://api.github.com/users/PTwr/followers', 'following_url': 'https://api.github.com/users/PTwr/following{/other_user}', 'gists_url': 'https://api.github.com/users/PTwr/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/PTwr/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/PTwr/subscriptions', 'organizations_url': 'https://api.github.com/users/PTwr/orgs', 'repos_url': 'https://api.github.com/users/PTwr/repos', 'events_url': 'https://api.github.com/users/PTwr/events{/privacy}', 'received_events_url': 'https://api.github.com/users/PTwr/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 4, 'created_at': '2023-10-10T08:16:43Z', 'updated_at': '2026-05-15T23:37:27Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12224', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/12224.patch', 'merged_at': None}, 'body': 'A simple subtitle system to allow for translating games without any riivolution patches or romhacking.\r\n\r\nIt started as my pet project, R79JAF translation, to allow translation of voice files that had no accompanying on-screen text. \r\nAfter boasting about it on discord some translators expressed interest in it so I upgraded it to be more universal.\r\n\r\nTarget games are ones with a lot of audio/video files streamed on-demand from disc. It won\'t work on pre-fetched stuff. So stuff like "visual novels" would be prime target.\r\n\r\nBasically, it takes json file like this\r\n```\r\n[\r\n {\r\n "FileName": "sound/stream/evz136.brstm",\r\n "Translation": "This time it\'s a bit of an irregular job.\\nKlaus, did you get that thing?",\r\n "Miliseconds": 5000,\r\n "Color": "Green",\r\n "Enabled": true,\r\n "AllowDuplicate": false,\r\n "Scale": 2\r\n }\r\n]\r\n```\r\nAnd does stuff like this:\r\n\r\n\r\n\r\n\r\n\r\nUnder the hood it works same as FileMonitor log, Simple hook in DVDThread and lookup for filename in dictionary.\r\nAs such it can be used for any file read from disc.\r\n\r\nSubtitles are (re)loaded when game starts.\r\n\r\nDisplay is done wtih ImGui through OSD, which I upgraded to handle multiple "zones".\r\n\r\nFancy functions:\r\n- file location is same as other stuff from **Load** directory.\r\n- support for multiple subtitle files per game, including nested directories. Quite useful when you have six thousands voice files to translate.\r\n- support for placing subtitles in long-playing audio/video stream through relative offset and timestamp (measured in real time, not emulated)\r\n- html colors\r\n- ugly text size, Dolphin appears to not be prepared for scalable fonts in ImGui.\r\n\r\nPossible issues:\r\n- memory management, pointer/reference mixup, and other standard problems C# developer have in C++ :)\r\n- do we want to keep my changes to OSD, or should subtitles be done separately?\r\n- some automatic generator of subtitle file for translator could be useful for non-techie translators, and maybe nicer file format', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/reactions', 'total_count': 2, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 1, 'rocket': 0, 'eyes': 1}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12224#issuecomment-4464531343', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/12224', 'id': 4464531343, 'node_id': 'IC_kwDOALCn2M8AAAABChtXjw', 'user': {'login': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T23:37:26Z', 'updated_at': '2026-05-15T23:37:26Z', 'body': "@PTwr @BhaaLseN @sepalani Hi, sorry for bothering but will this be ever merged? I'm asking because there's this Tetra Trackers ENG translation project, and it's using this PR for showing up subtitles on Tetra/other narrating characters speaking amidst games. Right now it's narrowing in soon for a new update.\r\n\r\nhttps://youtu.be/OT1vQwp1ZJE?t=7482\r\n\r\n ", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464531343/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T23:30:01Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15026, 'watchers_count': 15026, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15026, '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': 'Impeta', 'id': 105376276, 'node_id': 'U_kgDOBkfqFA', 'avatar_url': 'https://avatars.githubusercontent.com/u/105376276?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Impeta', 'html_url': 'https://github.com/Impeta', 'followers_url': 'https://api.github.com/users/Impeta/followers', 'following_url': 'https://api.github.com/users/Impeta/following{/other_user}', 'gists_url': 'https://api.github.com/users/Impeta/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Impeta/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Impeta/subscriptions', 'organizations_url': 'https://api.github.com/users/Impeta/orgs', 'repos_url': 'https://api.github.com/users/Impeta/repos', 'events_url': 'https://api.github.com/users/Impeta/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Impeta/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T22:17:10.899087 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14652, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T22:17:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '0e7b89d02c3d0bd104cbd23439aec497a8c81271', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '3c0ddcb8e064f78018234e2801e0be91c7502047', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:17:07Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511261, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3c0ddcb8e064f78018234e2801e0be91c7502047'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 7, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 12, 'additions': 475, 'deletions': 290, 'changed_files': 45}, 'before': '54c8b156807621effa2c09b8c051d3f0653bbcc1', 'after': '3c0ddcb8e064f78018234e2801e0be91c7502047', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T22:08:50.768065 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'synchronize', 'number': 14652, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T22:08:49Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'c3fab04120846e01b9a971374679701a3d53a67a', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/54c8b156807621effa2c09b8c051d3f0653bbcc1', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '54c8b156807621effa2c09b8c051d3f0653bbcc1', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-15T22:08:47Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511261, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/54c8b156807621effa2c09b8c051d3f0653bbcc1'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 7, 'review_comments': 3, 'maintainer_can_modify': True, 'commits': 11, 'additions': 475, 'deletions': 290, 'changed_files': 45}, 'before': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'after': '54c8b156807621effa2c09b8c051d3f0653bbcc1', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T22:06:06.685919 {'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 14653, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653', 'id': 3692374973, 'node_id': 'PR_kwDOALCn2M7cFSu9', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14653', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14653.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14653.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653', 'number': 14653, 'state': 'open', 'locked': False, 'title': 'IOS/Network: reduce log verbosity of SO_EAGAIN to info level', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Otherwise IOCTL_SO_ACCEPT is very noisy until a client connects.', 'created_at': '2026-05-15T22:06:04Z', 'updated_at': '2026-05-15T22:06:04Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/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/14653/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'head': {'label': 'Tilka:net_accept', 'ref': 'net_accept', 'sha': '4618e4bb40609cba49caafb2deb913b01ea8d9f4', 'user': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16304949, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjMwNDk0OQ==', 'name': 'dolphin', 'full_name': 'Tilka/dolphin', 'private': False, 'owner': {'login': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/Tilka/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/Tilka/dolphin', 'forks_url': 'https://api.github.com/repos/Tilka/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Tilka/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Tilka/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Tilka/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Tilka/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Tilka/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Tilka/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Tilka/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Tilka/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Tilka/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Tilka/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Tilka/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Tilka/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Tilka/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Tilka/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Tilka/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Tilka/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Tilka/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Tilka/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Tilka/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Tilka/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Tilka/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Tilka/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Tilka/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Tilka/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Tilka/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Tilka/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Tilka/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Tilka/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Tilka/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Tilka/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Tilka/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Tilka/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Tilka/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Tilka/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Tilka/dolphin/deployments', 'created_at': '2014-01-28T07:24:53Z', 'updated_at': '2024-12-24T17:03:46Z', 'pushed_at': '2026-05-15T22:05:50Z', 'git_url': 'git://github.com/Tilka/dolphin.git', 'ssh_url': 'git@github.com:Tilka/dolphin.git', 'clone_url': 'https://github.com/Tilka/dolphin.git', 'svn_url': 'https://github.com/Tilka/dolphin', 'homepage': None, 'size': 511092, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 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': 3, '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': '604d13e1ccbb7a5dfd9f50d1b3a79ed64b033c59', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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/14653'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14653'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14653/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14653/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/14653/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/4618e4bb40609cba49caafb2deb913b01ea8d9f4'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 5, '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 459, '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': 3081, 'open_issues': 459, 'watchers': 15025, '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': 'Tilka', 'id': 123798, 'node_id': 'MDQ6VXNlcjEyMzc5OA==', 'avatar_url': 'https://avatars.githubusercontent.com/u/123798?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Tilka', 'html_url': 'https://github.com/Tilka', 'followers_url': 'https://api.github.com/users/Tilka/followers', 'following_url': 'https://api.github.com/users/Tilka/following{/other_user}', 'gists_url': 'https://api.github.com/users/Tilka/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Tilka/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Tilka/subscriptions', 'organizations_url': 'https://api.github.com/users/Tilka/orgs', 'repos_url': 'https://api.github.com/users/Tilka/repos', 'events_url': 'https://api.github.com/users/Tilka/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Tilka/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T22:04:33.747310 {'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'id': 4442032353, 'node_id': 'PR_kwDOALCn2M7bU7et', 'number': 14652, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignees': [], 'milestone': None, 'comments': 7, 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T22:04:31Z', 'closed_at': None, 'assignee': None, 'author_association': 'NONE', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'merged_at': None}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/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/14652/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464112851', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#issuecomment-4464112851', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'id': 4464112851, 'node_id': 'IC_kwDOALCn2M8AAAABChT00w', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2026-05-15T22:04:31Z', 'updated_at': '2026-05-15T22:04:31Z', 'body': "> Also\r\n> \r\n> > Without Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems.\r\n> \r\n> It can in fact create an accelerated GL context using XWayland\r\n\r\nMy system's graphics stack is a little weird and does not have X11 so XWayland wont work.", 'author_association': 'NONE', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/4464112851/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2026-05-15T22:02:41.909988 {'source': 'webserver', 'gh_type': 'pull_request_review_comment', 'raw': {'action': 'created', 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494', 'pull_request_review_id': 4301657568, 'id': 3251230494, 'node_id': 'PRRC_kwDOALCn2M7Bydce', 'diff_hunk': '@@ -168,7 +168,7 @@ static WindowSystemType GetWindowSystemType()\n return WindowSystemType::MacOS;\n else if (platform_name == QStringLiteral("xcb"))\n return WindowSystemType::X11;\n- else if (platform_name == QStringLiteral("wayland"))\n+ else if (platform_name.startsWith(QStringLiteral("wayland")))', 'path': 'Source/Core/DolphinQt/MainWindow.cpp', 'commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'original_commit_id': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'so that it worked with different wayland variants. Do you want me to remove that?', 'created_at': '2026-05-15T22:02:39Z', 'updated_at': '2026-05-15T22:02:40Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251230494', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652#discussion_r3251230494'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652'}}, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/3251230494/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': 171, 'original_line': 171, 'side': 'RIGHT', 'in_reply_to_id': 3246099834, 'author_association': 'NONE', 'original_position': 5, 'position': 5, 'subject_type': 'line'}, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652', 'id': 3679696813, 'node_id': 'PR_kwDOALCn2M7bU7et', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/14652', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/14652.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652', 'number': 14652, 'state': 'open', 'locked': False, 'title': 'Add Standalone Wayland Support', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': '### What problem does this Pull Request solve?\r\nSome graphics stacks (including mine) only provide Wayland for display. Since Dolphin currently relies on Xwayland, these systems end up without hardware acceleration, and in some cases certain drivers won’t even start. This PR adds native Wayland support to address that issue.\r\n\r\n### Why this change is needed\r\nWithout Wayland support, Dolphin cannot create an accelerated GL context on Wayland‑only systems. This results in poor performance or complete failure to launch games. Adding a Wayland backend allows Dolphin to run properly on modern Linux setups that no longer ship X11.\r\n\r\n### What this Pull Request does\r\nI found an old fork that implemented Wayland support, but it was very outdated. I updated it, fixed the merge conflicts, and brought it up to date so it can be considered for inclusion in mainline Dolphin.\r\n\r\n### Notes for reviewers\r\nPlease double‑check the changes. I want to make sure nothing breaks in the existing graphics paths. My goal is to contribute this feature safely without affecting other platforms or backends.', 'created_at': '2026-05-14T00:10:59Z', 'updated_at': '2026-05-15T22:02:39Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': 'c3fab04120846e01b9a971374679701a3d53a67a', 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/713626ee28e3ff3c7514a607f7743f35aa56c008', 'head': {'label': 'BeezBumba:merge-wayland', 'ref': 'merge-wayland', 'sha': '713626ee28e3ff3c7514a607f7743f35aa56c008', 'user': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 1238198283, 'node_id': 'R_kgDOSc1oCw', 'name': 'dolphin', 'full_name': 'BeezBumba/dolphin', 'private': False, 'owner': {'login': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/BeezBumba/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/BeezBumba/dolphin', 'forks_url': 'https://api.github.com/repos/BeezBumba/dolphin/forks', 'keys_url': 'https://api.github.com/repos/BeezBumba/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/BeezBumba/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/BeezBumba/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/BeezBumba/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/BeezBumba/dolphin/events', 'assignees_url': 'https://api.github.com/repos/BeezBumba/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/BeezBumba/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/BeezBumba/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/BeezBumba/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/BeezBumba/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/BeezBumba/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/BeezBumba/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/BeezBumba/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/BeezBumba/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/BeezBumba/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/BeezBumba/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/BeezBumba/dolphin/merges', 'archive_url': 'https://api.github.com/repos/BeezBumba/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/BeezBumba/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/BeezBumba/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/BeezBumba/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/BeezBumba/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/BeezBumba/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/BeezBumba/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/BeezBumba/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/BeezBumba/dolphin/deployments', 'created_at': '2026-05-13T22:55:21Z', 'updated_at': '2026-05-13T22:55:21Z', 'pushed_at': '2026-05-13T23:55:20Z', 'git_url': 'git://github.com/BeezBumba/dolphin.git', 'ssh_url': 'git@github.com:BeezBumba/dolphin.git', 'clone_url': 'https://github.com/BeezBumba/dolphin.git', 'svn_url': 'https://github.com/BeezBumba/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 511261, 'stargazers_count': 0, 'watchers_count': 0, 'language': None, 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, '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': 'd0d354fbed4999c1c7183d4593bab15601c3d5e9', '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-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, '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/14652'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/14652'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/14652/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/14652/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/14652/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/713626ee28e3ff3c7514a607f7743f35aa56c008'}}, 'author_association': 'NONE', 'auto_merge': None, 'assignee': None, 'active_lock_reason': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2026-05-15T21:34:21Z', 'pushed_at': '2026-05-14T22:36:49Z', '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': 548708, 'stargazers_count': 15025, 'watchers_count': 15025, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 3081, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 458, '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': 3081, 'open_issues': 458, 'watchers': 15025, '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': 'BeezBumba', 'id': 130922034, 'node_id': 'U_kgDOB822Mg', 'avatar_url': 'https://avatars.githubusercontent.com/u/130922034?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/BeezBumba', 'html_url': 'https://github.com/BeezBumba', 'followers_url': 'https://api.github.com/users/BeezBumba/followers', 'following_url': 'https://api.github.com/users/BeezBumba/following{/other_user}', 'gists_url': 'https://api.github.com/users/BeezBumba/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/BeezBumba/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/BeezBumba/subscriptions', 'organizations_url': 'https://api.github.com/users/BeezBumba/orgs', 'repos_url': 'https://api.github.com/users/BeezBumba/repos', 'events_url': 'https://api.github.com/users/BeezBumba/events{/privacy}', 'received_events_url': 'https://api.github.com/users/BeezBumba/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}