Status for Dolphin Central

Recent events

2025-04-26T05:20:44.380635	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/6362', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2025-04-26T05:20:44.098960	{'source': 'webserver', 'raw': {'buildid': 108490, 'number': 6362, 'builderid': 26, 'buildrequestid': 108598, 'workerid': 9, 'masterid': 1, 'started_at': 1745644305, 'complete_at': 1745644832, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['45c9f5', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'builderid': [26, 'Builder'], 'buildnumber': [6362, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'branchname': ['pr-13594', 'Change'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker'], 'warnings-count': [18, 'WarningCountingShellCommand'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108598, 'buildsetid': 25789, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1745644305, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6362'}, 'type': 'raw_bb_hook'}
2025-04-26T05:19:15.925826	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:19:14.957850	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T05:18:13.955820	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,OatmealDome,jordan-woyak,CrossVR,spycrab,JosJuice,hrydgard,leoetlino,skidau,Tilka,Parlane,degasus,Helios747,linkmauve,phire,lioncash,delroth,Pokechu22')", 'type': 'internal_log'}
2025-04-26T05:18:13.545414	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-04-26T05:15:13.444759	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-dbg-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/6363', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2025-04-26T05:15:13.180182	{'source': 'webserver', 'raw': {'buildid': 108489, 'number': 6363, 'builderid': 31, 'buildrequestid': 108600, 'workerid': 4, 'masterid': 1, 'started_at': 1745644299, 'complete_at': 1745644504, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builderid': [31, 'Builder'], 'buildnumber': [6363, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'repository': ['', 'Build'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/ff/eb/pr-13594-dolphin-latest-dbg-x64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 108600, 'buildsetid': 25789, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1745644299, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6363'}, 'type': 'raw_bb_hook'}
2025-04-26T05:14:14.956198	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:14:13.979965	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T05:13:35.923145	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #13594 \x0304failed\x03 on builders [pr-android]: \x1f\x0302https://dolphin.ci/#/builders/22/builds/6365\x03\x1f', 'type': 'notification'}
2025-04-26T05:13:05.922690	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-android', 'pr': 13594, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/6365', 'description': 'Build failed on builder pr-android', 'type': 'build_status'}
2025-04-26T05:13:05.621424	{'source': 'webserver', 'raw': {'buildid': 108476, 'number': 6365, 'builderid': 22, 'buildrequestid': 108597, 'workerid': 12, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745644370, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed Gradle (failure)', 'results': 2, 'properties': {'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branchname': ['pr-13594', 'Change'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'workername': ['android', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'buildername': ['pr-android', 'Builder'], 'builderid': [22, 'Builder'], 'buildnumber': [6365, 'Build'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-android', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108597, 'buildsetid': 25789, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6365'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:27.215715	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-flatpak-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/1505', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2025-04-26T05:12:26.928976	{'source': 'webserver', 'raw': {'buildid': 108480, 'number': 1505, 'builderid': 43, 'buildrequestid': 108601, 'workerid': 13, 'masterid': 1, 'started_at': 1745643582, 'complete_at': 1745644342, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'pr_id': [13594, 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'builderid': [43, 'Builder'], 'workername': ['altair-flatpak', 'Worker'], 'repository': ['', 'Build'], 'buildnumber': [1505, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/2995', 'SetPropertyFromCommand Step'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108601, 'buildsetid': 25789, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1745643582, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1745643581, 'complete_at': 1745644342, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/1505'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:12.192495	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-dbg-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/6366', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2025-04-26T05:12:11.821400	{'source': 'webserver', 'raw': {'buildid': 108474, 'number': 6366, 'builderid': 1, 'buildrequestid': 108591, 'workerid': 9, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745644305, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'builderid': [1, 'Builder'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'project': ['', 'Build'], 'shortrev': ['45c9f5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['debian', 'Worker'], 'buildnumber': [6366, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'warnings-count': [18, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 108591, 'buildsetid': 25789, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6366'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:11.580531	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/26/builds/6362', 'description': 'Auto build in progress on builder pr-deb-x64', 'type': 'build_status'}
2025-04-26T05:12:11.327118	{'source': 'webserver', 'raw': {'buildid': 108490, 'number': 6362, 'builderid': 26, 'buildrequestid': 108598, 'workerid': 9, 'masterid': 1, 'started_at': 1745644305, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['45c9f5', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'builderid': [26, 'Builder'], 'buildnumber': [6362, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'branchname': ['pr-13594', 'Change'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108598, 'buildsetid': 25789, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1745644305, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6362'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:11.193581	{'source': 'webserver', 'raw': {'buildid': 108488, 'number': 5452, 'builderid': 35, 'buildrequestid': 108606, 'workerid': 5, 'masterid': 1, 'started_at': 1745644287, 'complete_at': 1745644308, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5452, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'pr_id': [13594, 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'project': ['', 'Build'], 'warnings-count': [5, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 108606, 'buildsetid': 25792, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1745644287, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5452'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:57.954482	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-arm64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/6361', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2025-04-26T05:11:57.672918	{'source': 'webserver', 'raw': {'buildid': 108483, 'number': 6361, 'builderid': 13, 'buildrequestid': 108596, 'workerid': 4, 'masterid': 1, 'started_at': 1745643958, 'complete_at': 1745644299, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'buildnumber': [6361, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/03/b5/pr-13594-dolphin-latest-ARM64.7z', 'SetProperty'], 'shortrev': ['45c9f5', 'Change'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'pr_id': [13594, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108596, 'buildsetid': 25789, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1745643958, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6361'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:56.791188	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-dbg-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/6363', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2025-04-26T05:11:56.530651	{'source': 'webserver', 'raw': {'buildid': 108489, 'number': 6363, 'builderid': 31, 'buildrequestid': 108600, 'workerid': 4, 'masterid': 1, 'started_at': 1745644299, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'builderid': [31, 'Builder'], 'buildnumber': [6363, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108600, 'buildsetid': 25789, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1745644299, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6363'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:38.935196	{'source': 'webserver', 'raw': {'buildid': 108488, 'number': 5452, 'builderid': 35, 'buildrequestid': 108606, 'workerid': 5, 'masterid': 1, 'started_at': 1745644287, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5452, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [13594, 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108606, 'buildsetid': 25792, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1745644287, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5452'}, 'type': 'raw_bb_hook'}

Recent 'build_status' events

2025-04-26T05:20:44.380635	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/26/builds/6362', 'description': 'Build succeeded on builder pr-deb-x64', 'type': 'build_status'}
2025-04-26T05:15:13.444759	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-dbg-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/31/builds/6363', 'description': 'Build succeeded on builder pr-win-dbg-x64', 'type': 'build_status'}
2025-04-26T05:13:05.922690	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-android', 'pr': 13594, 'success': False, 'pending': False, 'url': 'https://dolphin.ci/#/builders/22/builds/6365', 'description': 'Build failed on builder pr-android', 'type': 'build_status'}
2025-04-26T05:12:27.215715	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-flatpak-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/43/builds/1505', 'description': 'Build succeeded on builder pr-flatpak-x64', 'type': 'build_status'}
2025-04-26T05:12:12.192495	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-dbg-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/1/builds/6366', 'description': 'Build succeeded on builder pr-deb-dbg-x64', 'type': 'build_status'}
2025-04-26T05:12:11.580531	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/26/builds/6362', 'description': 'Auto build in progress on builder pr-deb-x64', 'type': 'build_status'}
2025-04-26T05:11:57.954482	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-arm64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/13/builds/6361', 'description': 'Build succeeded on builder pr-win-arm64', 'type': 'build_status'}
2025-04-26T05:11:56.791188	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-dbg-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/31/builds/6363', 'description': 'Auto build in progress on builder pr-win-dbg-x64', 'type': 'build_status'}
2025-04-26T05:10:50.502279	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-ubu-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/27/builds/6361', 'description': 'Build succeeded on builder pr-ubu-x64', 'type': 'build_status'}
2025-04-26T05:09:29.101558	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-flatpak-arm64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/44/builds/1452', 'description': 'Build succeeded on builder pr-flatpak-arm64', 'type': 'build_status'}
2025-04-26T05:07:01.687390	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-osx-universal', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/7/builds/6366', 'description': 'Build succeeded on builder pr-osx-universal', 'type': 'build_status'}
2025-04-26T05:06:21.173914	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/2/builds/6362', 'description': 'Build succeeded on builder pr-win-x64', 'type': 'build_status'}
2025-04-26T05:06:20.854614	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-arm64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/13/builds/6361', 'description': 'Auto build in progress on builder pr-win-arm64', 'type': 'build_status'}
2025-04-26T05:01:02.486463	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-freebsd-x64', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/11/builds/6364', 'description': 'Build succeeded on builder pr-freebsd-x64', 'type': 'build_status'}
2025-04-26T05:01:00.243670	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'lint', 'pr': 13594, 'success': True, 'pending': False, 'url': 'https://dolphin.ci/#/builders/9/builds/6363', 'description': 'Build succeeded on builder lint', 'type': 'build_status'}
2025-04-26T05:00:38.813291	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-ubu-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/27/builds/6361', 'description': 'Auto build in progress on builder pr-ubu-x64', 'type': 'build_status'}
2025-04-26T05:00:37.066437	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-win-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/2/builds/6362', 'description': 'Auto build in progress on builder pr-win-x64', 'type': 'build_status'}
2025-04-26T05:00:36.813632	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-freebsd-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/11/builds/6364', 'description': 'Auto build in progress on builder pr-freebsd-x64', 'type': 'build_status'}
2025-04-26T05:00:36.532332	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-deb-dbg-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/1/builds/6366', 'description': 'Auto build in progress on builder pr-deb-dbg-x64', 'type': 'build_status'}
2025-04-26T05:00:36.227461	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-osx-universal', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/7/builds/6366', 'description': 'Auto build in progress on builder pr-osx-universal', 'type': 'build_status'}
2025-04-26T05:00:35.095111	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-android', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/22/builds/6365', 'description': 'Auto build in progress on builder pr-android', 'type': 'build_status'}
2025-04-26T05:00:33.961414	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'lint', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/9/builds/6363', 'description': 'Auto build in progress on builder lint', 'type': 'build_status'}
2025-04-26T04:59:53.108921	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-flatpak-x64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/43/builds/1505', 'description': 'Auto build in progress on builder pr-flatpak-x64', 'type': 'build_status'}
2025-04-26T04:59:52.828621	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'pr-flatpak-arm64', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/#/builders/44/builds/1452', 'description': 'Auto build in progress on builder pr-flatpak-arm64', 'type': 'build_status'}
2025-04-26T04:59:41.519042	{'source': 'prbuilder', 'repo': 'dolphin-emu/dolphin', 'hash': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'shortrev': '45c9f5', 'service': 'lint', 'pr': 13594, 'success': False, 'pending': True, 'url': 'https://dolphin.ci/', 'description': 'Auto build pending', 'type': 'build_status'}

Recent 'command_message' events

2025-04-25T00:28:30.384357	{'source': 'ircclient', 'who': 'flacs', 'what': 'irrawaddy: rebuild 13562', 'type': 'command_message'}
2025-04-24T03:11:38.429146	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> please rebuild PR 13579', 'type': 'command_message'}
2025-04-23T15:13:01.995689	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13562', 'type': 'command_message'}
2025-04-23T15:09:36.184421	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13360', 'type': 'command_message'}
2025-04-23T02:25:52.791231	{'source': 'ircclient', 'who': 'flacs', 'what': 'irrawaddy: rebuild 13562', 'type': 'command_message'}
2025-04-22T21:52:56.473060	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13562', 'type': 'command_message'}
2025-04-22T21:39:44.120590	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13562', 'type': 'command_message'}
2025-04-22T16:05:20.338735	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13558', 'type': 'command_message'}
2025-04-22T15:59:06.816063	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13540', 'type': 'command_message'}
2025-04-22T15:57:18.327309	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13559', 'type': 'command_message'}
2025-04-21T20:54:51.003254	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13360', 'type': 'command_message'}
2025-04-21T18:29:16.519031	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13554', 'type': 'command_message'}
2025-04-21T18:23:29.296193	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13553', 'type': 'command_message'}
2025-04-21T07:19:09.160571	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13536', 'type': 'command_message'}
2025-04-20T21:34:57.258025	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13551', 'type': 'command_message'}
2025-04-20T21:11:04.409658	{'source': 'discord', 'who': 'billiard26', 'what': '<@1320924779556900984> rebuild PR 13531', 'type': 'command_message'}
2025-04-20T20:01:09.549154	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13548', 'type': 'command_message'}
2025-04-20T20:00:52.122093	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13549', 'type': 'command_message'}
2025-04-20T19:39:09.843860	{'source': 'ircclient', 'who': 'MayImilae', 'what': 'irrawaddy please rebuild pr13547', 'type': 'command_message'}
2025-04-20T19:16:35.439985	{'source': 'ircclient', 'who': 'MayImilae', 'what': 'irrawaddy please rebuild pr13547', 'type': 'command_message'}
2025-04-20T16:32:13.571651	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13544', 'type': 'command_message'}
2025-04-20T16:23:25.015742	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13544', 'type': 'command_message'}
2025-04-20T15:43:24.155822	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13544', 'type': 'command_message'}
2025-04-20T09:13:24.790942	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13547', 'type': 'command_message'}
2025-04-20T07:53:49.403855	{'source': 'ircclient', 'who': 'JosJuice', 'what': 'irrawaddy: please rebuild 13542', 'type': 'command_message'}

Recent 'gh_issue_comment' events

2025-04-25T23:35:03.933428	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n* Legend of Spyro: A New Beginning - Works.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:35:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:35:02Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n* Legend of Spyro: A New Beginning - Works.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:29:49.465837	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:29:48Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:24:08.395972	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'deleted', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:57:39Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:24:03.370634	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'safe_author': True, 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?", 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:24:02Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:23:37.826792	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'safe_author': True, 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:23:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:23:36Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:22:54.315427	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'safe_author': True, 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Kore Gang\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* Sengoku Basara: Utage\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:17:32Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:22:52Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:17:32.756978	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:14:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:17:31Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:14:30.392415	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:03:17Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:14:29Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:03:18.171379	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:00:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:03:16Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T23:00:05.621303	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:00:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:00:04Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:57:41.603775	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:55:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:57:39Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:55:42.736001	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:54:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:55:41Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:54:11.429028	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:50:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:54:10Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:50:14.806536	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:48:58Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:50:13Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:48:58.771501	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:47:40Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:48:57Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:47:41.362272	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Nyx's Quest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:46:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:47:40Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:46:28.780436	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'iwubcode', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'safe_author': True, 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Nyx's Quest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'raw': {'action': 'edited', 'changes': {'body': {'from': 'I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:43:52Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:46:27Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Nyx's Quest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:43:53.514578	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:43:52Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:43:52Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:25:07.092879	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:21:40Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:25:05Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T22:21:41.149737	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T21:24:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:21:39Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T21:24:02.507696	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T21:24:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T21:24:01Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T21:20:15.498024	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JMC47', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'safe_author': True, 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T21:20:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T21:20:13Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T17:27:07.439972	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829005840', 'safe_author': True, 'body': "Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I'm willing to admit), but it's clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can't even properly chase the ball they are kicking, which makes the ball teleport around the player. It's unplayable. Plus, menu speed isn't corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it's unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that's why I'm only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn't seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\nEDIT: I forgot to test lowering it, and the game doesn't slow down with it. So, with the power of Branch Watch, I found where the game was clamping the delta time, and I found it. Or, at least, *them*: the game has 3 separate checks for that.\r\n```\r\n0419E810 48000008\r\n042304B4 4800000C\r\n042CEA9C 4800000C\r\n```\r\nPre-rendered videos have audio stutter, but it's not a big deal since they are only used for the attract demo, company logo after the credits, and the LEGO Batman promotional video.\r\nIn terms of gameplay issues, they are the same [as the PC version](https://www.pcgamingwiki.com/wiki/Lego_Indiana_Jones:_The_Original_Adventures#Game_breaking_bugs_at_high_frame_rates).\r\n\r\n**Kung Fu Panda**\r\nEDITED\r\nThe game really wants for its speed to be constant with no variation whatsoever, or it will start continuously freezing and unfreezing.\r\nStarting from a certain VBI rate, loading breaks (music, loading screens...). It seems pretty random whether it happens, simply the higher it is, the more often it happens?\r\nWhile the game uses delta time (plus, the PS3/X360 versions are already 60 FPS), some things are tied to the frame rate, like the level intro text crawl or tutorial animations.\r\nAlso, here's an 60 FPS code (needs raising Emulated CPU Clock). It's basically equivalent to 200% VBI, so at least the former issue should be fixed for the code to actually be wiki-able.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up.", 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I'm willing to admit), but it's clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can't even properly chase the ball they are kicking, which makes the ball teleport around the player. It's unplayable. Plus, menu speed isn't corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it's unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that's why I'm only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn't seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\n\r\n**Kung Fu Panda**\r\nEDITED\r\nThe game really wants for its speed to be constant with no variation whatsoever, or it will start continuously freezing and unfreezing.\r\nStarting from a certain VBI rate, loading breaks (music, loading screens...). It seems pretty random whether it happens, simply the higher it is, the more often it happens?\r\nWhile the game uses delta time (plus, the PS3/X360 versions are already 60 FPS), some things are tied to the frame rate, like the level intro text crawl or tutorial animations.\r\nAlso, here's an 60 FPS code (needs raising Emulated CPU Clock). It's basically equivalent to 200% VBI, so at least the former issue should be fixed for the code to actually be wiki-able.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T16:31:21Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829005840', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829005840', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829005840, 'node_id': 'IC_kwDOALCn2M6onzQQ', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T22:34:21Z', 'updated_at': '2025-04-25T17:27:05Z', 'author_association': 'MEMBER', 'body': "Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I'm willing to admit), but it's clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can't even properly chase the ball they are kicking, which makes the ball teleport around the player. It's unplayable. Plus, menu speed isn't corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it's unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that's why I'm only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn't seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\nEDIT: I forgot to test lowering it, and the game doesn't slow down with it. So, with the power of Branch Watch, I found where the game was clamping the delta time, and I found it. Or, at least, *them*: the game has 3 separate checks for that.\r\n```\r\n0419E810 48000008\r\n042304B4 4800000C\r\n042CEA9C 4800000C\r\n```\r\nPre-rendered videos have audio stutter, but it's not a big deal since they are only used for the attract demo, company logo after the credits, and the LEGO Batman promotional video.\r\nIn terms of gameplay issues, they are the same [as the PC version](https://www.pcgamingwiki.com/wiki/Lego_Indiana_Jones:_The_Original_Adventures#Game_breaking_bugs_at_high_frame_rates).\r\n\r\n**Kung Fu Panda**\r\nEDITED\r\nThe game really wants for its speed to be constant with no variation whatsoever, or it will start continuously freezing and unfreezing.\r\nStarting from a certain VBI rate, loading breaks (music, loading screens...). It seems pretty random whether it happens, simply the higher it is, the more often it happens?\r\nWhile the game uses delta time (plus, the PS3/X360 versions are already 60 FPS), some things are tied to the frame rate, like the level intro text crawl or tutorial animations.\r\nAlso, here's an 60 FPS code (needs raising Emulated CPU Clock). It's basically equivalent to 200% VBI, so at least the former issue should be fixed for the code to actually be wiki-able.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829005840/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, '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': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T16:31:21.952138	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'edited', 'id': 13046, 'title': 'Add VBI Frequency', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829005840', 'safe_author': True, 'body': "Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I'm willing to admit), but it's clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can't even properly chase the ball they are kicking, which makes the ball teleport around the player. It's unplayable. Plus, menu speed isn't corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it's unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that's why I'm only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn't seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\n\r\n**Kung Fu Panda**\r\nEDITED\r\nThe game really wants for its speed to be constant with no variation whatsoever, or it will start continuously freezing and unfreezing.\r\nStarting from a certain VBI rate, loading breaks (music, loading screens...). It seems pretty random whether it happens, simply the higher it is, the more often it happens?\r\nWhile the game uses delta time (plus, the PS3/X360 versions are already 60 FPS), some things are tied to the frame rate, like the level intro text crawl or tutorial animations.\r\nAlso, here's an 60 FPS code (needs raising Emulated CPU Clock). It's basically equivalent to 200% VBI, so at least the former issue should be fixed for the code to actually be wiki-able.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up.", 'raw': {'action': 'edited', 'changes': {'body': {'from': 'Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I\'m willing to admit), but it\'s clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can\'t even properly chase the ball they are kicking, which makes the ball teleport around the player. It\'s unplayable. Plus, menu speed isn\'t corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it\'s unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that\'s why I\'m only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn\'t seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\n\r\n**Kung Fu Panda**\r\nEDIT: This game is so whack: it demands perfect speed **from the host** during loading times, for some reason. (Yes, I tested with dual core off.)\r\nSeriously: If I run the game normally with no hacks, but with the emulation speed set to unlimited, then the game will constantly freeze after loading. Without fast forwarding, the issue doesn\'t present. Dolphin bug?\r\nWhatever it is, raising the VBI frequency makes this "perfect loading" more demanding. I can however see that if I raise it *after* all the loading, there seem to be no issues in the gameplay itself, outside of text crawls and tutorial "gifs" being faster.\r\nBTW, a normal 60 FPS code. Same issues, obviously. Needs emulated CPU clock override.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up.'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T10:51:12Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829005840', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829005840', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829005840, 'node_id': 'IC_kwDOALCn2M6onzQQ', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T22:34:21Z', 'updated_at': '2025-04-25T16:31:20Z', 'author_association': 'MEMBER', 'body': "Tested more games.\r\nAll these games are PAL.\r\n\r\n**Rayman Raving Rabbids**\r\nSeems to work perfectly with no code necessary?\r\nVery surprising: this is not just a rushed game, this is a rushed game _made by Ubisoft_. Granted, testing was only minimal.\r\nWeird note, the PC version is locked to 60 FPS (I guess no one stepped up to make a mod for that?)...\r\n\r\nUnfortunately, the next games have not-so-great results.\r\n\r\n**PES 2008**\r\nSpeeds up.\r\nI found a game speed variable (which was much harder than I'm willing to admit), but it's clearly only designed for small variations (50 Hz/60 Hz). Setting 144 FPS, and the player can't even properly chase the ball they are kicking, which makes the ball teleport around the player. It's unplayable. Plus, menu speed isn't corrected (even normally at 50 Hz). Also, the target frame rate affects the camera angle. WTF?\r\n(Reminder that it's unplayable) Code is:\r\n```\r\nC269335C 00000002 # The game takes a 60.0, and divides by a value depending on refresh rate. At 60 Hz, it is 60.0, but it is on the same address, that's why I'm only overriding this read.\r\n3C604310 9061FFFC\r\nC061FFFC 00000000\r\n```\r\n\r\n**LEGO Indiana Jones: The Original Adventures**\r\nSpeeds up. Which is kinda disappointing, since the PC version is dynamic. Trying to adjust it, and... why is it so hard? Despite finding things concretely affected by 1/60 (like in-game timers), if I change the value it changes back to 1/60, and the way it does it is so convoluted that even changing every value doesn't seem to work... Screw it!\r\nAlso, this game ignores 50 Hz. Rude.\r\n\r\n**Kung Fu Panda**\r\nEDITED\r\nThe game really wants for its speed to be constant with no variation whatsoever, or it will start continuously freezing and unfreezing.\r\nStarting from a certain VBI rate, loading breaks (music, loading screens...). It seems pretty random whether it happens, simply the higher it is, the more often it happens?\r\nWhile the game uses delta time (plus, the PS3/X360 versions are already 60 FPS), some things are tied to the frame rate, like the level intro text crawl or tutorial animations.\r\nAlso, here's an 60 FPS code (needs raising Emulated CPU Clock). It's basically equivalent to 200% VBI, so at least the former issue should be fixed for the code to actually be wiki-able.\r\n```\r\n0437E490 60000000\r\n```\r\n\r\n**Wii Sports**, **Dragon Ball Z: Budokai Tenkaichi 3**, **Bust a Move!**\r\nHopelessly speed up.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829005840/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T14:47:59Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13644, 'watchers_count': 13644, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13644, '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': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}
2025-04-25T15:45:07.327218	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 13591, 'title': 'Update licenses.md', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591#issuecomment-2830781295', 'safe_author': True, 'body': 'Oops, that sneaked in from another branch', 'raw': {'action': 'created', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13591', 'id': 3020409821, 'node_id': 'PR_kwDOALCn2M6T7t5p', 'number': 13591, 'title': 'Update licenses.md', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 2, 'created_at': '2025-04-25T15:41:58Z', 'updated_at': '2025-04-25T15:45:06Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': False, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13591', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13591', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13591.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13591.patch', 'merged_at': None}, 'body': 'The previous licenses.md was not using [SPDX License identifiers](https://spdx.org/licenses/) despite the claim in COPYING. I also added quite a few missing licenses, and took the liberty to make the markdown more readable.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591/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/13591/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2830781295', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13591#issuecomment-2830781295', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13591', 'id': 2830781295, 'node_id': 'IC_kwDOALCn2M6ouktv', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T15:45:05Z', 'updated_at': '2025-04-25T15:45:05Z', 'author_association': 'MEMBER', 'body': 'Oops, that sneaked in from another branch', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2830781295/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T14:47:59Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13644, 'watchers_count': 13644, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 359, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 359, 'watchers': 13644, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JoshuaVandaele', 'html_url': 'https://github.com/JoshuaVandaele', 'followers_url': 'https://api.github.com/users/JoshuaVandaele/followers', 'following_url': 'https://api.github.com/users/JoshuaVandaele/following{/other_user}', 'gists_url': 'https://api.github.com/users/JoshuaVandaele/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JoshuaVandaele/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JoshuaVandaele/subscriptions', 'organizations_url': 'https://api.github.com/users/JoshuaVandaele/orgs', 'repos_url': 'https://api.github.com/users/JoshuaVandaele/repos', 'events_url': 'https://api.github.com/users/JoshuaVandaele/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JoshuaVandaele/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'gh_issue_comment'}

Recent 'gh_pull_request' events

2025-04-26T05:03:12.028850	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 13594, 'title': 'State: Simplify interthread communication and general cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'head_ref_name': 'state-cleanups', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-26T05:02:05.762922	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 13594, 'title': 'State: Simplify interthread communication and general cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'head_ref_name': 'state-cleanups', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-26T04:59:37.631021	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 13594, 'title': 'State: Simplify interthread communication and general cleanups.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'head_ref_name': 'state-cleanups', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T23:43:47.046511	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'edited', 'id': 13593, 'title': 'MainWindow: Fix use-after-free during Dolphin shutdown', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13593', 'head_ref_name': 'mainwindow_fix_use_after_free_during_dolphin_shutdown', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '3a883f28d675f971509c165cfedeba861ecdd48a', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T23:38:59.590666	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Dentomologist', 'action': 'opened', 'id': 13593, 'title': 'Mainwindow: Fix use-after-free during Dolphin shutdown', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13593', 'head_ref_name': 'mainwindow_fix_use_after_free_during_dolphin_shutdown', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '3a883f28d675f971509c165cfedeba861ecdd48a', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T16:52:23.410865	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'synchronize', 'id': 13591, 'title': 'Update licenses.md', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591', 'head_ref_name': 'licenses', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '0584a4a58eb8c0151a3517eb50c43c6b71fa1460', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T16:28:50.055946	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'edited', 'id': 13592, 'title': 'GameINI: Enable Single Core for Kung Fu Panda', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13592', 'head_ref_name': 'kfp-single-core', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'b742f234ec13826386405fb96e00c6716b585388', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T16:26:54.906418	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'SuperSamus', 'action': 'opened', 'id': 13592, 'title': 'GameINI: Enable Single Core for Kung Fu Panda', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13592', 'head_ref_name': 'kfp-single-core', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'b742f234ec13826386405fb96e00c6716b585388', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T15:45:49.241572	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'synchronize', 'id': 13591, 'title': 'Update licenses.md', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591', 'head_ref_name': 'licenses', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T15:42:00.747231	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'opened', 'id': 13591, 'title': 'Update licenses.md', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591', 'head_ref_name': 'licenses', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'cf32b9bce00f3ed3c5b9eb0cd839c5a5bba3e954', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T13:13:41.823346	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'synchronize', 'id': 12769, 'title': 'IOS/USB: Emulate Wii Speak using cubeb', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769', 'head_ref_name': 'wii-speak', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '49d614b15c8dd7d2c80ab9ed06bc1943268c6612', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T11:19:13.140559	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13590, 'title': 'UCodes: Remove redundant qualifiers', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13590', 'head_ref_name': 'UCodes-Remove-redundant-qualifiers', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '9868138c2244e721a2aa195a299ef923758e1233', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T11:12:44.234270	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'opened', 'id': 13590, 'title': 'UCodes: Remove redundant qualifiers', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13590', 'head_ref_name': 'UCodes-Remove-redundant-qualifiers', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '625240cc8ba0558788caa1cf7291a1cf4da4edb7', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T10:04:00.928336	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13589, 'title': 'Core/HW/EXI: Remove redundant `inline` specifiers', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13589', 'head_ref_name': 'Core/HW/EXI-Remove-redundant-inline-specifiers', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '066408326c7e9ac2a87701e463b05c8b0811dd84', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T09:59:48.771727	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13588, 'title': 'UCodes: Make functions constant', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13588', 'head_ref_name': 'UCodes-Make-functions-constant', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'e3b5e5014a9bb3625a1fa6d5798593269561abf0', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T09:54:08.833804	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'opened', 'id': 13589, 'title': 'Core/HW/EXI: Remove redundant `inline` specifiers', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13589', 'head_ref_name': 'Core/HW/EXI-Remove-redundant-inline-specifiers', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '7a95d5b0b25f215f1afb02bf06fc116608c540e6', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T09:36:14.642942	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'synchronize', 'id': 13585, 'title': 'Core/HW/GCMemcard: Make variables constant', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13585', 'head_ref_name': 'Core/HW/GCMemcard-Make-variables-constant', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '50ca32352ffccbd6a0cc40e882efc967a6da9c36', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T09:27:36.475344	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'tygyh', 'action': 'opened', 'id': 13588, 'title': 'UCodes: Make functions constant', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13588', 'head_ref_name': 'UCodes-Make-functions-constant', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '824c9c7a929cdb9acb9d2c7fc5c1e3f377789bbe', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T04:31:46.694564	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 13587, 'title': 'Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13587', 'head_ref_name': 'manual-value', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'a516b98be8f0fdf09938af61eef8a51c6ec3d268', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T04:20:29.638046	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'synchronize', 'id': 13587, 'title': 'Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13587', 'head_ref_name': 'manual-value', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': 'cb33ad69b11eba44f0c6d81555a15125d4c7f553', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T03:44:55.425539	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'opened', 'id': 13587, 'title': 'Common: Move some duplicate container element construction logic into a ManuallyConstructedValue template.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13587', 'head_ref_name': 'manual-value', 'safe_author': True, 'base_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'head_sha': '74f31b6a715b08db4bf71b4321916498c887d426', 'merged': False, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T00:56:44.877187	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'closed', 'id': 13451, 'title': 'Add numeric label support to assembler', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13451', 'head_ref_name': 'numeric_labels', 'safe_author': True, 'base_sha': '5d4b884e6430e2bec24238ccfda5cad031132d2f', 'head_sha': 'e34907025d0f879d862929d8d7ce861d8fba0c43', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T00:49:53.851312	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'closed', 'id': 13476, 'title': 'InputCommon: Move SDL Device class into its own cpp/h files.', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13476', 'head_ref_name': 'sdl-header', 'safe_author': True, 'base_sha': '1b85da9b85e72a555a08138aafcd2d75210ae078', 'head_sha': '17c994df2a72519c4784011b2339a3ff8315a981', 'merged': True, 'requested_reviewers': [{'login': 'JosJuice', 'id': 6716818, 'node_id': 'MDQ6VXNlcjY3MTY4MTg=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6716818?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JosJuice', 'html_url': 'https://github.com/JosJuice', 'followers_url': 'https://api.github.com/users/JosJuice/followers', 'following_url': 'https://api.github.com/users/JosJuice/following{/other_user}', 'gists_url': 'https://api.github.com/users/JosJuice/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JosJuice/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JosJuice/subscriptions', 'organizations_url': 'https://api.github.com/users/JosJuice/orgs', 'repos_url': 'https://api.github.com/users/JosJuice/repos', 'events_url': 'https://api.github.com/users/JosJuice/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JosJuice/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}], 'type': 'gh_pull_request'}
2025-04-25T00:43:54.956128	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'closed', 'id': 13506, 'title': 'Android: Show time played in game details', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13506', 'head_ref_name': 'android-time-played', 'safe_author': True, 'base_sha': '49ebdaaae31a9cb33b22cbfd8d9c560a407a6dc0', 'head_sha': 'b8e70df413ddd4663aa8e65a6f9d8a1e059c64c7', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}
2025-04-25T00:41:00.524634	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'closed', 'id': 13487, 'title': 'PerformanceMetrics: Fix window arrangement', 'base_ref_name': 'master', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13487', 'head_ref_name': 'performancemetrics_fix_window_arrangement', 'safe_author': True, 'base_sha': '2d1671a863efed9fee3042b77a79bcac4d52fcf4', 'head_sha': 'ec49ea5be32a65c974efb06ce16cccba6205a679', 'merged': True, 'requested_reviewers': [], 'type': 'gh_pull_request'}

Recent 'gh_pull_request_comment' events

2025-04-25T16:50:59.559752	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'created', 'id': 13591, 'hash': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060573484', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-25T16:47:54.783839	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'created', 'id': 13591, 'hash': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060570079', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-25T13:17:02.221969	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 12769, 'hash': '49d614b15c8dd7d2c80ab9ed06bc1943268c6612', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2060226179', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-24T18:15:00.223996	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2058993745', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-24T15:43:26.760002	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'OatmealDome', 'action': 'created', 'id': 168, 'hash': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'url': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058752700', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-24T10:16:47.783483	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'mbc07', 'action': 'created', 'id': 168, 'hash': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'url': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058044177', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-24T08:56:31.134591	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'created', 'id': 12769, 'hash': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057900322', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-24T05:05:44.125081	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Pokechu22', 'action': 'created', 'id': 10766, 'hash': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057541855', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-24T05:05:44.124003	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Pokechu22', 'action': 'created', 'id': 10766, 'hash': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057539163', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-24T05:05:44.118278	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Pokechu22', 'action': 'created', 'id': 10766, 'hash': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057540510', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-24T04:38:47.577813	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057519199', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.564077	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700611', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.558962	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700981', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.557142	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056731645', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.555912	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056699437', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.553208	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056697888', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T19:11:03.550309	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 12769, 'hash': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056698975', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T08:17:41.953125	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'edited', 'id': 13568, 'hash': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055506536', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-23T08:16:51.759449	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13568, 'hash': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055506536', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T08:16:51.758301	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'created', 'id': 13568, 'hash': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055497107', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-23T02:22:33.962644	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'created', 'id': 13562, 'hash': 'd49f2961594751ecd532001a6513635967acc50c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13562#discussion_r2055148223', 'is_part_of_review': True, 'type': 'gh_pull_request_comment'}
2025-04-22T23:03:30.727726	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sanjay900', 'action': 'edited', 'id': 13562, 'hash': 'd49f2961594751ecd532001a6513635967acc50c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13562#discussion_r2055002093', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-22T23:03:24.588358	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sanjay900', 'action': 'created', 'id': 13562, 'hash': 'd49f2961594751ecd532001a6513635967acc50c', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13562#discussion_r2055002093', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-22T22:55:20.886973	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sanjay900', 'action': 'created', 'id': 13562, 'hash': '8f3e828ba55bb40aa4992ad41b0bb017017ec036', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13562#discussion_r2054996613', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}
2025-04-22T22:50:08.899259	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'created', 'id': 13562, 'hash': '8f3e828ba55bb40aa4992ad41b0bb017017ec036', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13562#discussion_r2054992848', 'is_part_of_review': False, 'type': 'gh_pull_request_comment'}

Recent 'gh_pull_request_review' events

2025-04-25T16:50:59.558390	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JoshuaVandaele', 'action': 'submitted', 'pr_id': 13591, 'pr_title': 'Update licenses.md', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591#pullrequestreview-2794734558', 'comments': [{'id': 2060573484, 'node_id': 'PRRC_kwDOALCn2M560dss', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060573484', 'pull_request_review_id': 2794734558, 'diff_hunk': '@@ -1,80 +1,214 @@\n-Dolphin includes or links code of the following third-party software projects:\n+# Dolphin Third-Party Licenses\n+\n+Dolphin includes or links code of the following third-party software projects (this list may not be exhaustive):\n \n - [ALSA](http://www.alsa-project.org/):\n-   [LGPLv2.1+](http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=COPYING)\n+  [LGPL-2.1-or-later](http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=COPYING)\n+\n - [BlueZ](http://www.bluez.org/):\n-   [LGPLv2.1+](https://git.kernel.org/cgit/bluetooth/bluez.git/tree/COPYING.LIB)\n+  [LGPL-2.1-or-later](https://git.kernel.org/cgit/bluetooth/bluez.git/tree/COPYING.LIB)\n+\n - [Bochs](http://bochs.sourceforge.net/):\n-   [LGPLv2.1+](http://bochs.sourceforge.net/cgi-bin/lxr/source/COPYING)\n+  [LGPL-2.1-or-later](http://bochs.sourceforge.net/cgi-bin/lxr/source/COPYING)\n+\n - [bzip2](https://www.sourceware.org/bzip2/):\n-   [bzip2 license](https://www.sourceware.org/git/?p=bzip2.git;a=blob;f=LICENSE;hb=HEAD) (similar to 3-clause BSD)\n+  [bzip2-1.0.8](https://www.sourceware.org/git/?p=bzip2.git;a=blob;f=LICENSE;hb=HEAD)\n+\n+- [cpp-optparse](https://github.com/weisslj/cpp-optparse):\n+  [MIT](https://github.com/weisslj/cpp-optparse/blob/main/LICENSE)\n+\n - [cubeb](https://github.com/kinetiknz/cubeb):\n-   [ISC](https://github.com/kinetiknz/cubeb/blob/master/LICENSE)\n+  [ISC](https://github.com/kinetiknz/cubeb/blob/master/LICENSE)\n+\n - [Discord-RPC](https://github.com/discordapp/discord-rpc):\n-   [MIT](https://github.com/discordapp/discord-rpc/blob/master/LICENSE)\n+  [MIT](https://github.com/discordapp/discord-rpc/blob/master/LICENSE)\n+\n+- [Ed25519](https://github.com/orlp/ed25519):\n+  [Zlib](https://github.com/orlp/ed25519/blob/master/license.txt)\n+\n - [ENet](http://enet.bespin.org/):\n-   [MIT](http://enet.bespin.org/License.html)\n+  [MIT](http://enet.bespin.org/License.html)\n+\n - [expr](https://github.com/zserge/expr):\n-   [MIT](https://github.com/zserge/expr/blob/master/LICENSE)\n+  [MIT](https://github.com/zserge/expr/blob/master/LICENSE)\n+\n - [FatFs](http://elm-chan.org/fsw/ff/00index_e.html):\n-   [BSD 1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license)\n+  [BSD-1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license)\n+\n+- [FFmpeg](https://www.ffmpeg.org/):\n+\n+  - LGPL-2.1-or-later\n+  - AND GPL-2.0-or-later\n+\n+    [source](https://ffmpeg.org/legal.html)\n+\n+- [fmt](https://fmt.dev/):\n+  [MIT](https://github.com/fmtlib/fmt/blob/master/LICENSE)\n+\n+- FreeSurround:\n+  GPL-2.0-or-later\n+\n - [GCEmu](http://sourceforge.net/projects/gcemu-project/):\n-   GPLv2+\n+  GPL-2.0-or-later\n+\n - [gettext](https://www.gnu.org/software/gettext/):\n-   [GPLv3+](http://git.savannah.gnu.org/cgit/gettext.git/tree/COPYING)\n+  [GPL-3.0-or-later](http://git.savannah.gnu.org/cgit/gettext.git/tree/COPYING)\n+\n+- [glslang](https://github.com/KhronosGroup/glslang):\n+\n+  - BSD-3-Clause\n+  - AND BSD-2-Clause\n+  - AND MIT\n+  - AND Apache 2.0\n+  - AND GPL-3.0-only WITH Bison-exception-2.2\n+\n+    [source](https://github.com/KhronosGroup/glslang/blob/main/LICENSE.txt)\n+\n - [googletest](https://github.com/google/googletest):\n-   [BSD 3-Clause](https://github.com/google/googletest/blob/master/LICENSE)\n+  [BSD-3-Clause](https://github.com/google/googletest/blob/master/LICENSE)\n+\n+- [hidapi](https://libusb.info/hidapi/):\n+\n+  - [GPL-3.0-only](https://github.com/libusb/hidapi/blob/master/LICENSE-gpl3.txt)\n+  - OR [BSD-3-Clause](https://github.com/libusb/hidapi/blob/master/LICENSE-bsd.txt)\n+  - OR [HIDAPI](https://github.com/libusb/hidapi/blob/master/LICENSE-orig.txt)\n+\n+    [source](https://github.com/libusb/hidapi/blob/master/LICENSE.txt)\n+\n+- [imgui](https://github.com/ocornut/imgui):\n+  [MIT](https://github.com/ocornut/imgui/blob/master/LICENSE.txt)\n+\n+- [implot](https://github.com/epezent/implot):\n+  [MIT](https://github.com/epezent/implot/blob/master/LICENSE)\n+\n+- [libadrenotools](https://github.com/bylaws/libadrenotools):\n+  [BSD-2-Clause](https://github.com/bylaws/libadrenotools/blob/master/LICENSE)\n+\n - [libao](https://www.xiph.org/ao/):\n-   [GPLv2+](https://trac.xiph.org/browser/trunk/ao/README)\n+  [GPL-2.0-or-later](https://gitlab.xiph.org/xiph/libao/-/blob/master/COPYING)\n+\n - [libav](https://libav.org/):\n-   [GPLv2+](https://libav.org/legal.html)\n+  [GPL-2.0-or-later](https://libav.org/legal.html)\n+\n - [libcdio](https://www.gnu.org/software/libcdio/):\n-   [GPLv3+](http://git.savannah.gnu.org/gitweb/?p=libcdio.git;a=blob_plain;f=COPYING)\n+  [GPL-3.0-or-later](http://git.savannah.gnu.org/gitweb/?p=libcdio.git;a=blob_plain;f=COPYING)\n+\n - [libiconv](https://www.gnu.org/software/libiconv/):\n-   [LGPLv2+](http://git.savannah.gnu.org/cgit/libiconv.git/tree/COPYING.LIB)\n+  [LGPL-2.0-or-later](http://git.savannah.gnu.org/cgit/libiconv.git/tree/COPYING.LIB)\n+\n - [liblzma](https://tukaani.org/xz/):\n-   [Public domain](https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD)\n+  [Public domain](https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD)\n+\n - [libspng](https://github.com/randy408/libspng):\n-   [BSD 2-Clause](https://github.com/randy408/libspng/blob/master/LICENSE)\n+  [BSD-2-Clause](https://github.com/randy408/libspng/blob/master/LICENSE)\n+\n - [libusb](http://libusb.info/):\n-   [LGPLv2.1+](https://github.com/libusb/libusb/blob/master/COPYING)\n+  [LGPL-2.1-or-later](https://github.com/libusb/libusb/blob/master/COPYING)\n+\n - [LLVM](http://llvm.org/):\n-   [University of Illinois/NCSA Open Source license](http://llvm.org/docs/DeveloperPolicy.html#license)\n+  [NCSA](http://llvm.org/docs/DeveloperPolicy.html#license)\n+\n+- [lz4](http://www.lz4.org/):\n+\n+  - [BSD-2-Clause-Patent](https://github.com/lz4/lz4/blob/dev/lib/LICENSE) for all files in the `lib` directory\n+  - GPL-2.0-or-later unless otherwise specified for all other files\n+\n+    [source](https://github.com/lz4/lz4/blob/dev/LICENSE)\n+\n - [LZO](http://www.oberhumer.com/opensource/lzo/):\n-   [GPLv2+](http://www.oberhumer.com/opensource/gpl.html)\n-- [mGBA](http://mgba.io)\n-   [MPL 2.0](https://github.com/mgba-emu/mgba/blob/master/LICENSE)\n+  [GPL-2.0-or-later](http://www.oberhumer.com/opensource/gpl.html)\n+\n+- [Mbed TLS](https://www.trustedfirmware.org/projects/mbed-tls/):\n+\n+  - Apache-2.0\n+  - OR GPL-2.0-or-later\n+\n+  [source](https://github.com/Mbed-TLS/mbedtls/blob/development/LICENSE)\n+\n+- [mGBA](http://mgba.io):\n+  [MPL-2.0](https://github.com/mgba-emu/mgba/blob/master/LICENSE)\n+\n - [MiniUPnPc](http://miniupnp.free.fr/):\n-   [BSD 3-Clause](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE)\n+  [BSD-3-Clause](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE)\n+\n+- [minizip-ng](https://github.com/zlib-ng/minizip-ng):\n+  [Zlib](https://github.com/zlib-ng/minizip-ng/blob/develop/LICENSE)\n+\n+- [MoltenVK](https://github.com/KhronosGroup/MoltenVK):\n+  [Apache-2.0](https://github.com/KhronosGroup/MoltenVK/blob/main/LICENSE)\n+\n - [Microsoft Visual C++ Runtime Library](http://www.microsoft.com/en-us/download/details.aspx?id=40784):\n-   [System Library if not distributed](https://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL)\n+  [System Library if not distributed](https://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL)\n+\n - [OpenAL Soft](http://kcat.strangesoft.net/openal.html):\n-   [LGPLv2+](http://repo.or.cz/w/openal-soft.git/blob/HEAD:/COPYING)\n+  [LGPL-2.0-or-later](http://repo.or.cz/w/openal-soft.git/blob/HEAD:/COPYING)\n+\n - [OpenGL Header (MESA)](http://mesa3d.org/):\n-   [MIT](http://cgit.freedesktop.org/mesa/mesa/tree/include/GL/gl.h)\n+  [MIT](http://cgit.freedesktop.org/mesa/mesa/tree/include/GL/gl.h)\n+\n - [OpenGL Extension Header (Khronos)](https://www.opengl.org/registry/#headers):\n-   [MIT](https://www.opengl.org/registry/api/GL/glext.h)\n+  [MIT](https://www.opengl.org/registry/api/GL/glext.h)\n+\n - [PearPC](http://pearpc.sourceforge.net/):\n-   [GPLv2](http://pearpc.cvs.sourceforge.net/viewvc/pearpc/pearpc/COPYING?view=markup) (with permission by the author to license under GPLv2+)\n-- [mbed TLS](https://tls.mbed.org/):\n-   [Apache 2.0](https://github.com/ARMmbed/mbedtls/blob/development/LICENSE)\n+  [GPL-2.0-only](http://pearpc.cvs.sourceforge.net/viewvc/pearpc/pearpc/COPYING?view=markup) (with permission by the author to license\n+  under GPL-2.0-or-later)\n+- [PicoJSON](https://github.com/kazuho/picojson)\n+  [BSD-2-Clause](https://github.com/kazuho/picojson/blob/master/LICENSE)\n+\n+- [PugiXML](https://pugixml.org/):\n+  [MIT](https://github.com/zeux/pugixml/blob/master/LICENSE.md)\n+\n - [PulseAudio](http://www.freedesktop.org/wiki/Software/PulseAudio/):\n-   [LGPLv2.1+](http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/LICENSE)\n-- [Qt5](http://qt-project.org/):\n-   [LGPLv3 and other licenses](http://doc.qt.io/qt-5/licensing.html)\n-- [rangeset](https://github.com/AdmiralCurtiss/rangeset)\n-   [zlib license](https://github.com/AdmiralCurtiss/rangeset/blob/master/LICENSE)\n+  [LGPL-2.1-or-later](http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/LICENSE)\n+\n+- [Qt6](http://qt-project.org/):\n+\n+  - LGPL-3.0-only\n+  - Certain modules are licensed under the GPL-3.0-only license\n+  - Qt examples are licensed under a BSD-3-Clause license\n+\n+    [source](http://doc.qt.io/qt-6/licensing.html)\n+\n+- [rangeset](https://github.com/AdmiralCurtiss/rangeset):\n+  [Zlib](https://github.com/AdmiralCurtiss/rangeset/blob/master/LICENSE)\n+\n+- [rcheevos](https://github.com/RetroAchievements/rcheevos):\n+  [MIT](https://github.com/RetroAchievements/rcheevos/blob/develop/LICENSE)\n+\n - [SDL](https://www.libsdl.org/):\n-   [zlib license](http://hg.libsdl.org/SDL/file/tip/COPYING.txt)\n+  [Zlib](http://hg.libsdl.org/SDL/file/tip/COPYING.txt)\n+\n - [SFML](http://www.sfml-dev.org/):\n-   [zlib license](http://www.sfml-dev.org/license.php)\n+  [Zlib](http://www.sfml-dev.org/license.php)\n+\n+- [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross):\n+  [Apache-2.0](https://github.com/KhronosGroup/SPIRV-Cross/blob/main/LICENSE)\n+\n - [TAP-Windows](https://openvpn.net/):\n-   header only\n+  header only\n+\n+- [TinyGLTF](https://github.com/syoyo/tinygltf):\n+  [MIT](https://github.com/syoyo/tinygltf/blob/release/LICENSE)\n+\n+- [Vulkan-Headers](https://github.com/KhronosGroup/Vulkan-Headers):\n+\n+  - Apache-2.0\n+  - OR MIT', 'path': 'Externals/licenses.md', 'position': 236, 'original_position': 236, 'commit_id': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'user': {'login': 'JoshuaVandaele', 'id': 24195176, 'node_id': 'MDQ6VXNlcjI0MTk1MTc2', 'avatar_url': 'https://avatars.githubusercontent.com/u/24195176?u=34b8e696c19cf3396680deb916f14957888c4f1a&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': "Ah you're correct, that should be an AND", 'created_at': '2025-04-25T16:50:57Z', 'updated_at': '2025-04-25T16:50:57Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060573484', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060573484'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060573484'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13591'}}, 'original_commit_id': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'in_reply_to_id': 2060570079, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060573484/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-25T16:47:54.780903	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'JosJuice', 'action': 'submitted', 'pr_id': 13591, 'pr_title': 'Update licenses.md', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13591#pullrequestreview-2794728602', 'comments': [{'id': 2060570079, 'node_id': 'PRRC_kwDOALCn2M560c3f', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060570079', 'pull_request_review_id': 2794728602, 'diff_hunk': '@@ -1,80 +1,214 @@\n-Dolphin includes or links code of the following third-party software projects:\n+# Dolphin Third-Party Licenses\n+\n+Dolphin includes or links code of the following third-party software projects (this list may not be exhaustive):\n \n - [ALSA](http://www.alsa-project.org/):\n-   [LGPLv2.1+](http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=COPYING)\n+  [LGPL-2.1-or-later](http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=COPYING)\n+\n - [BlueZ](http://www.bluez.org/):\n-   [LGPLv2.1+](https://git.kernel.org/cgit/bluetooth/bluez.git/tree/COPYING.LIB)\n+  [LGPL-2.1-or-later](https://git.kernel.org/cgit/bluetooth/bluez.git/tree/COPYING.LIB)\n+\n - [Bochs](http://bochs.sourceforge.net/):\n-   [LGPLv2.1+](http://bochs.sourceforge.net/cgi-bin/lxr/source/COPYING)\n+  [LGPL-2.1-or-later](http://bochs.sourceforge.net/cgi-bin/lxr/source/COPYING)\n+\n - [bzip2](https://www.sourceware.org/bzip2/):\n-   [bzip2 license](https://www.sourceware.org/git/?p=bzip2.git;a=blob;f=LICENSE;hb=HEAD) (similar to 3-clause BSD)\n+  [bzip2-1.0.8](https://www.sourceware.org/git/?p=bzip2.git;a=blob;f=LICENSE;hb=HEAD)\n+\n+- [cpp-optparse](https://github.com/weisslj/cpp-optparse):\n+  [MIT](https://github.com/weisslj/cpp-optparse/blob/main/LICENSE)\n+\n - [cubeb](https://github.com/kinetiknz/cubeb):\n-   [ISC](https://github.com/kinetiknz/cubeb/blob/master/LICENSE)\n+  [ISC](https://github.com/kinetiknz/cubeb/blob/master/LICENSE)\n+\n - [Discord-RPC](https://github.com/discordapp/discord-rpc):\n-   [MIT](https://github.com/discordapp/discord-rpc/blob/master/LICENSE)\n+  [MIT](https://github.com/discordapp/discord-rpc/blob/master/LICENSE)\n+\n+- [Ed25519](https://github.com/orlp/ed25519):\n+  [Zlib](https://github.com/orlp/ed25519/blob/master/license.txt)\n+\n - [ENet](http://enet.bespin.org/):\n-   [MIT](http://enet.bespin.org/License.html)\n+  [MIT](http://enet.bespin.org/License.html)\n+\n - [expr](https://github.com/zserge/expr):\n-   [MIT](https://github.com/zserge/expr/blob/master/LICENSE)\n+  [MIT](https://github.com/zserge/expr/blob/master/LICENSE)\n+\n - [FatFs](http://elm-chan.org/fsw/ff/00index_e.html):\n-   [BSD 1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license)\n+  [BSD-1-Clause](http://elm-chan.org/fsw/ff/doc/appnote.html#license)\n+\n+- [FFmpeg](https://www.ffmpeg.org/):\n+\n+  - LGPL-2.1-or-later\n+  - AND GPL-2.0-or-later\n+\n+    [source](https://ffmpeg.org/legal.html)\n+\n+- [fmt](https://fmt.dev/):\n+  [MIT](https://github.com/fmtlib/fmt/blob/master/LICENSE)\n+\n+- FreeSurround:\n+  GPL-2.0-or-later\n+\n - [GCEmu](http://sourceforge.net/projects/gcemu-project/):\n-   GPLv2+\n+  GPL-2.0-or-later\n+\n - [gettext](https://www.gnu.org/software/gettext/):\n-   [GPLv3+](http://git.savannah.gnu.org/cgit/gettext.git/tree/COPYING)\n+  [GPL-3.0-or-later](http://git.savannah.gnu.org/cgit/gettext.git/tree/COPYING)\n+\n+- [glslang](https://github.com/KhronosGroup/glslang):\n+\n+  - BSD-3-Clause\n+  - AND BSD-2-Clause\n+  - AND MIT\n+  - AND Apache 2.0\n+  - AND GPL-3.0-only WITH Bison-exception-2.2\n+\n+    [source](https://github.com/KhronosGroup/glslang/blob/main/LICENSE.txt)\n+\n - [googletest](https://github.com/google/googletest):\n-   [BSD 3-Clause](https://github.com/google/googletest/blob/master/LICENSE)\n+  [BSD-3-Clause](https://github.com/google/googletest/blob/master/LICENSE)\n+\n+- [hidapi](https://libusb.info/hidapi/):\n+\n+  - [GPL-3.0-only](https://github.com/libusb/hidapi/blob/master/LICENSE-gpl3.txt)\n+  - OR [BSD-3-Clause](https://github.com/libusb/hidapi/blob/master/LICENSE-bsd.txt)\n+  - OR [HIDAPI](https://github.com/libusb/hidapi/blob/master/LICENSE-orig.txt)\n+\n+    [source](https://github.com/libusb/hidapi/blob/master/LICENSE.txt)\n+\n+- [imgui](https://github.com/ocornut/imgui):\n+  [MIT](https://github.com/ocornut/imgui/blob/master/LICENSE.txt)\n+\n+- [implot](https://github.com/epezent/implot):\n+  [MIT](https://github.com/epezent/implot/blob/master/LICENSE)\n+\n+- [libadrenotools](https://github.com/bylaws/libadrenotools):\n+  [BSD-2-Clause](https://github.com/bylaws/libadrenotools/blob/master/LICENSE)\n+\n - [libao](https://www.xiph.org/ao/):\n-   [GPLv2+](https://trac.xiph.org/browser/trunk/ao/README)\n+  [GPL-2.0-or-later](https://gitlab.xiph.org/xiph/libao/-/blob/master/COPYING)\n+\n - [libav](https://libav.org/):\n-   [GPLv2+](https://libav.org/legal.html)\n+  [GPL-2.0-or-later](https://libav.org/legal.html)\n+\n - [libcdio](https://www.gnu.org/software/libcdio/):\n-   [GPLv3+](http://git.savannah.gnu.org/gitweb/?p=libcdio.git;a=blob_plain;f=COPYING)\n+  [GPL-3.0-or-later](http://git.savannah.gnu.org/gitweb/?p=libcdio.git;a=blob_plain;f=COPYING)\n+\n - [libiconv](https://www.gnu.org/software/libiconv/):\n-   [LGPLv2+](http://git.savannah.gnu.org/cgit/libiconv.git/tree/COPYING.LIB)\n+  [LGPL-2.0-or-later](http://git.savannah.gnu.org/cgit/libiconv.git/tree/COPYING.LIB)\n+\n - [liblzma](https://tukaani.org/xz/):\n-   [Public domain](https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD)\n+  [Public domain](https://git.tukaani.org/?p=xz.git;a=blob_plain;f=COPYING;hb=HEAD)\n+\n - [libspng](https://github.com/randy408/libspng):\n-   [BSD 2-Clause](https://github.com/randy408/libspng/blob/master/LICENSE)\n+  [BSD-2-Clause](https://github.com/randy408/libspng/blob/master/LICENSE)\n+\n - [libusb](http://libusb.info/):\n-   [LGPLv2.1+](https://github.com/libusb/libusb/blob/master/COPYING)\n+  [LGPL-2.1-or-later](https://github.com/libusb/libusb/blob/master/COPYING)\n+\n - [LLVM](http://llvm.org/):\n-   [University of Illinois/NCSA Open Source license](http://llvm.org/docs/DeveloperPolicy.html#license)\n+  [NCSA](http://llvm.org/docs/DeveloperPolicy.html#license)\n+\n+- [lz4](http://www.lz4.org/):\n+\n+  - [BSD-2-Clause-Patent](https://github.com/lz4/lz4/blob/dev/lib/LICENSE) for all files in the `lib` directory\n+  - GPL-2.0-or-later unless otherwise specified for all other files\n+\n+    [source](https://github.com/lz4/lz4/blob/dev/LICENSE)\n+\n - [LZO](http://www.oberhumer.com/opensource/lzo/):\n-   [GPLv2+](http://www.oberhumer.com/opensource/gpl.html)\n-- [mGBA](http://mgba.io)\n-   [MPL 2.0](https://github.com/mgba-emu/mgba/blob/master/LICENSE)\n+  [GPL-2.0-or-later](http://www.oberhumer.com/opensource/gpl.html)\n+\n+- [Mbed TLS](https://www.trustedfirmware.org/projects/mbed-tls/):\n+\n+  - Apache-2.0\n+  - OR GPL-2.0-or-later\n+\n+  [source](https://github.com/Mbed-TLS/mbedtls/blob/development/LICENSE)\n+\n+- [mGBA](http://mgba.io):\n+  [MPL-2.0](https://github.com/mgba-emu/mgba/blob/master/LICENSE)\n+\n - [MiniUPnPc](http://miniupnp.free.fr/):\n-   [BSD 3-Clause](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE)\n+  [BSD-3-Clause](https://github.com/miniupnp/miniupnp/blob/master/miniupnpc/LICENSE)\n+\n+- [minizip-ng](https://github.com/zlib-ng/minizip-ng):\n+  [Zlib](https://github.com/zlib-ng/minizip-ng/blob/develop/LICENSE)\n+\n+- [MoltenVK](https://github.com/KhronosGroup/MoltenVK):\n+  [Apache-2.0](https://github.com/KhronosGroup/MoltenVK/blob/main/LICENSE)\n+\n - [Microsoft Visual C++ Runtime Library](http://www.microsoft.com/en-us/download/details.aspx?id=40784):\n-   [System Library if not distributed](https://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL)\n+  [System Library if not distributed](https://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL)\n+\n - [OpenAL Soft](http://kcat.strangesoft.net/openal.html):\n-   [LGPLv2+](http://repo.or.cz/w/openal-soft.git/blob/HEAD:/COPYING)\n+  [LGPL-2.0-or-later](http://repo.or.cz/w/openal-soft.git/blob/HEAD:/COPYING)\n+\n - [OpenGL Header (MESA)](http://mesa3d.org/):\n-   [MIT](http://cgit.freedesktop.org/mesa/mesa/tree/include/GL/gl.h)\n+  [MIT](http://cgit.freedesktop.org/mesa/mesa/tree/include/GL/gl.h)\n+\n - [OpenGL Extension Header (Khronos)](https://www.opengl.org/registry/#headers):\n-   [MIT](https://www.opengl.org/registry/api/GL/glext.h)\n+  [MIT](https://www.opengl.org/registry/api/GL/glext.h)\n+\n - [PearPC](http://pearpc.sourceforge.net/):\n-   [GPLv2](http://pearpc.cvs.sourceforge.net/viewvc/pearpc/pearpc/COPYING?view=markup) (with permission by the author to license under GPLv2+)\n-- [mbed TLS](https://tls.mbed.org/):\n-   [Apache 2.0](https://github.com/ARMmbed/mbedtls/blob/development/LICENSE)\n+  [GPL-2.0-only](http://pearpc.cvs.sourceforge.net/viewvc/pearpc/pearpc/COPYING?view=markup) (with permission by the author to license\n+  under GPL-2.0-or-later)\n+- [PicoJSON](https://github.com/kazuho/picojson)\n+  [BSD-2-Clause](https://github.com/kazuho/picojson/blob/master/LICENSE)\n+\n+- [PugiXML](https://pugixml.org/):\n+  [MIT](https://github.com/zeux/pugixml/blob/master/LICENSE.md)\n+\n - [PulseAudio](http://www.freedesktop.org/wiki/Software/PulseAudio/):\n-   [LGPLv2.1+](http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/LICENSE)\n-- [Qt5](http://qt-project.org/):\n-   [LGPLv3 and other licenses](http://doc.qt.io/qt-5/licensing.html)\n-- [rangeset](https://github.com/AdmiralCurtiss/rangeset)\n-   [zlib license](https://github.com/AdmiralCurtiss/rangeset/blob/master/LICENSE)\n+  [LGPL-2.1-or-later](http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/LICENSE)\n+\n+- [Qt6](http://qt-project.org/):\n+\n+  - LGPL-3.0-only\n+  - Certain modules are licensed under the GPL-3.0-only license\n+  - Qt examples are licensed under a BSD-3-Clause license\n+\n+    [source](http://doc.qt.io/qt-6/licensing.html)\n+\n+- [rangeset](https://github.com/AdmiralCurtiss/rangeset):\n+  [Zlib](https://github.com/AdmiralCurtiss/rangeset/blob/master/LICENSE)\n+\n+- [rcheevos](https://github.com/RetroAchievements/rcheevos):\n+  [MIT](https://github.com/RetroAchievements/rcheevos/blob/develop/LICENSE)\n+\n - [SDL](https://www.libsdl.org/):\n-   [zlib license](http://hg.libsdl.org/SDL/file/tip/COPYING.txt)\n+  [Zlib](http://hg.libsdl.org/SDL/file/tip/COPYING.txt)\n+\n - [SFML](http://www.sfml-dev.org/):\n-   [zlib license](http://www.sfml-dev.org/license.php)\n+  [Zlib](http://www.sfml-dev.org/license.php)\n+\n+- [SPIRV-Cross](https://github.com/KhronosGroup/SPIRV-Cross):\n+  [Apache-2.0](https://github.com/KhronosGroup/SPIRV-Cross/blob/main/LICENSE)\n+\n - [TAP-Windows](https://openvpn.net/):\n-   header only\n+  header only\n+\n+- [TinyGLTF](https://github.com/syoyo/tinygltf):\n+  [MIT](https://github.com/syoyo/tinygltf/blob/release/LICENSE)\n+\n+- [Vulkan-Headers](https://github.com/KhronosGroup/Vulkan-Headers):\n+\n+  - Apache-2.0\n+  - OR MIT', 'path': 'Externals/licenses.md', 'position': 236, 'original_position': 236, 'commit_id': '4f51fa3ff879ef366befa262d47fef25c36d6b76', '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': 'Are you sure that OR is correct? The linked source reads like some files are Apache-2.0 only.', 'created_at': '2025-04-25T16:47:52Z', 'updated_at': '2025-04-25T16:47:53Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060570079', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13591', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060570079'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13591#discussion_r2060570079'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13591'}}, 'original_commit_id': '4f51fa3ff879ef366befa262d47fef25c36d6b76', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060570079/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-25T13:17:02.219711	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2794095714', 'comments': [{'id': 2060226179, 'node_id': 'PRRC_kwDOALCn2M56zI6D', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060226179', 'pull_request_review_id': 2794095714, 'diff_hunk': '@@ -0,0 +1,131 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <array>\n+#include <cmath>\n+#include <limits>\n+#include <memory>\n+#include <mutex>\n+#include <numeric>\n+#include <ranges>\n+#include <type_traits>\n+\n+#include "Common/CommonTypes.h"\n+\n+#ifdef HAVE_CUBEB\n+#include "AudioCommon/CubebUtils.h"\n+\n+struct cubeb;\n+struct cubeb_stream;\n+#endif\n+\n+namespace IOS::HLE::USB\n+{\n+struct WiiSpeakState;\n+\n+class Microphone final\n+{\n+public:\n+  using FloatType = float;\n+\n+  Microphone(const WiiSpeakState& sampler);\n+  ~Microphone();\n+\n+  bool HasData(u32 sample_count) const;\n+  u16 ReadIntoBuffer(u8* ptr, u32 size);\n+  u16 GetLoudnessLevel() const;\n+  void UpdateLoudness(std::ranges::input_range auto&& samples);\n+  const WiiSpeakState& GetSampler() const;\n+  FloatType ComputeGain(FloatType relative_db) const;\n+  void SetSamplingRate(u32 sampling_rate);\n+\n+private:\n+#ifdef HAVE_CUBEB\n+  static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,\n+                           void* output_buffer, long nframes);\n+#endif\n+\n+  void StreamInit();\n+  void StreamTerminate();\n+  void StreamStart(u32 sampling_rate);\n+  void StreamStop();\n+\n+  using SampleType = s16;\n+  static constexpr u32 BUFF_SIZE_SAMPLES = 32;\n+  static constexpr u32 STREAM_SIZE = BUFF_SIZE_SAMPLES * 500;\n+\n+  std::array<SampleType, STREAM_SIZE> m_stream_buffer{};\n+  u32 m_stream_wpos = 0;\n+  u32 m_stream_rpos = 0;\n+  u32 m_samples_avail = 0;\n+\n+  // TODO: Find how this level is calculated on real hardware\n+  u16 m_loudness_level = 0;\n+  struct Loudness\n+  {\n+    using SampleType = s16;\n+    using UnsignedSampleType = std::make_unsigned_t<SampleType>;\n+\n+    void Update(const auto& samples)\n+    {\n+      samples_count += static_cast<u16>(samples.size());\n+\n+      const auto [min_element, max_element] = std::ranges::minmax_element(samples);\n+      peak_min = std::min<SampleType>(*min_element, peak_min);\n+      peak_max = std::max<SampleType>(*max_element, peak_max);\n+\n+      const auto begin = samples.begin();\n+      const auto end = samples.end();\n+      absolute_sum = std::reduce(begin, end, absolute_sum,\n+                                 [](u32 a, SampleType b) { return a + std::abs(b); });\n+      square_sum = std::reduce(begin, end, square_sum, [](FloatType a, s16 b) {\n+        return a + std::pow(FloatType(b), FloatType(2));\n+      });\n+    }\n+\n+    SampleType GetPeak() const;\n+    FloatType GetDecibel(FloatType value) const;\n+    FloatType GetAmplitude() const;\n+    FloatType GetAmplitudeDb() const;\n+    FloatType GetAbsoluteMean() const;\n+    FloatType GetAbsoluteMeanDb() const;\n+    FloatType GetRootMeanSquare() const;\n+    FloatType GetRootMeanSquareDb() const;\n+    FloatType GetCrestFactor() const;\n+    FloatType GetCrestFactorDb() const;\n+    FloatType ComputeGain(FloatType db) const;\n+\n+    void Reset();\n+    void LogStats();\n+\n+    // Samples used to compute the loudness level (arbitrarily chosen)\n+    static constexpr u16 SAMPLES_NEEDED = 128;\n+    static_assert((SAMPLES_NEEDED % BUFF_SIZE_SAMPLES) == 0);\n+\n+    static constexpr FloatType MAX_AMPLITUDE =\n+        FloatType{std::numeric_limits<UnsignedSampleType>::max() / 2};', 'path': 'Source/Core/Core/IOS/USB/Emulated/Microphone.h', 'position': None, 'original_position': 109, 'commit_id': '49d614b15c8dd7d2c80ab9ed06bc1943268c6612', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?u=ddcb228f8f28f609b10240218a87e829766bf505&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I had to use an integer cast instead, in order to silence the warning.', 'created_at': '2025-04-25T13:17:00Z', 'updated_at': '2025-04-25T13:17:00Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2060226179', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060226179'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2060226179'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'in_reply_to_id': 2057519199, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2060226179/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-25T00:10:22.099962	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'dismissed', 'pr_id': 10766, 'pr_title': 'DSP accelerator improvements', 'state': 'dismissed', 'url': 'https://github.com/dolphin-emu/dolphin/pull/10766#pullrequestreview-2780460433', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T18:15:00.220995	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2792110063', 'comments': [{'id': 2058993745, 'node_id': 'PRRC_kwDOALCn2M56ucBR', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2058993745', 'pull_request_review_id': 2792110063, 'diff_hunk': '@@ -0,0 +1,131 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <array>\n+#include <cmath>\n+#include <limits>\n+#include <memory>\n+#include <mutex>\n+#include <numeric>\n+#include <ranges>\n+#include <type_traits>\n+\n+#include "Common/CommonTypes.h"\n+\n+#ifdef HAVE_CUBEB\n+#include "AudioCommon/CubebUtils.h"\n+\n+struct cubeb;\n+struct cubeb_stream;\n+#endif\n+\n+namespace IOS::HLE::USB\n+{\n+struct WiiSpeakState;\n+\n+class Microphone final\n+{\n+public:\n+  using FloatType = float;\n+\n+  Microphone(const WiiSpeakState& sampler);\n+  ~Microphone();\n+\n+  bool HasData(u32 sample_count) const;\n+  u16 ReadIntoBuffer(u8* ptr, u32 size);\n+  u16 GetLoudnessLevel() const;\n+  void UpdateLoudness(std::ranges::input_range auto&& samples);\n+  const WiiSpeakState& GetSampler() const;\n+  FloatType ComputeGain(FloatType relative_db) const;\n+  void SetSamplingRate(u32 sampling_rate);\n+\n+private:\n+#ifdef HAVE_CUBEB\n+  static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,\n+                           void* output_buffer, long nframes);\n+#endif\n+\n+  void StreamInit();\n+  void StreamTerminate();\n+  void StreamStart(u32 sampling_rate);\n+  void StreamStop();\n+\n+  using SampleType = s16;\n+  static constexpr u32 BUFF_SIZE_SAMPLES = 32;\n+  static constexpr u32 STREAM_SIZE = BUFF_SIZE_SAMPLES * 500;\n+\n+  std::array<SampleType, STREAM_SIZE> m_stream_buffer{};\n+  u32 m_stream_wpos = 0;\n+  u32 m_stream_rpos = 0;\n+  u32 m_samples_avail = 0;\n+\n+  // TODO: Find how this level is calculated on real hardware\n+  u16 m_loudness_level = 0;\n+  struct Loudness\n+  {\n+    using SampleType = s16;\n+    using UnsignedSampleType = std::make_unsigned_t<SampleType>;\n+\n+    void Update(const auto& samples)\n+    {\n+      samples_count += static_cast<u16>(samples.size());\n+\n+      const auto [min_element, max_element] = std::ranges::minmax_element(samples);\n+      peak_min = std::min<SampleType>(*min_element, peak_min);\n+      peak_max = std::max<SampleType>(*max_element, peak_max);\n+\n+      const auto begin = samples.begin();\n+      const auto end = samples.end();\n+      absolute_sum = std::reduce(begin, end, absolute_sum,\n+                                 [](u32 a, SampleType b) { return a + std::abs(b); });\n+      square_sum = std::reduce(begin, end, square_sum, [](FloatType a, s16 b) {\n+        return a + std::pow(FloatType(b), FloatType(2));\n+      });\n+    }\n+\n+    SampleType GetPeak() const;\n+    FloatType GetDecibel(FloatType value) const;\n+    FloatType GetAmplitude() const;\n+    FloatType GetAmplitudeDb() const;\n+    FloatType GetAbsoluteMean() const;\n+    FloatType GetAbsoluteMeanDb() const;\n+    FloatType GetRootMeanSquare() const;\n+    FloatType GetRootMeanSquareDb() const;\n+    FloatType GetCrestFactor() const;\n+    FloatType GetCrestFactorDb() const;\n+    FloatType ComputeGain(FloatType db) const;\n+\n+    void Reset();\n+    void LogStats();\n+\n+    // Samples used to compute the loudness level (arbitrarily chosen)\n+    static constexpr u16 SAMPLES_NEEDED = 128;\n+    static_assert((SAMPLES_NEEDED % BUFF_SIZE_SAMPLES) == 0);\n+\n+    static constexpr FloatType MAX_AMPLITUDE =\n+        FloatType{std::numeric_limits<UnsignedSampleType>::max() / 2};', 'path': 'Source/Core/Core/IOS/USB/Emulated/Microphone.h', 'position': 109, 'original_position': 109, 'commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'The warning comes from this: https://clang.llvm.org/extra/clang-tidy/checks/bugprone/integer-division.html', 'created_at': '2025-04-24T18:14:57Z', 'updated_at': '2025-04-24T18:14:58Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2058993745', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2058993745'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2058993745'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'in_reply_to_id': 2057519199, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2058993745/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T15:43:56.788541	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'OatmealDome', 'action': 'submitted', 'pr_id': 168, 'pr_title': 'downloads: Update Visual C++ redistributable link.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/www/pull/168#pullrequestreview-2791698821', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T15:43:26.758714	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'OatmealDome', 'action': 'submitted', 'pr_id': 168, 'pr_title': 'downloads: Update Visual C++ redistributable link.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/www/pull/168#pullrequestreview-2791697401', 'comments': [{'id': 2058752700, 'node_id': 'PRRC_kwDOALAOP856thK8', 'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058752700', 'pull_request_review_id': 2791697401, 'diff_hunk': '@@ -30,7 +30,7 @@ <h1>{% trans "Releases" %}</h1>\n {% endblocktrans %}</div>\n \n <div class="alert alert-danger">\n-    <p>{% blocktrans %}The Windows releases <b>require</b> the <a href="https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads">64-bit Visual C++ redistributable for Visual Studio 2022</a> to be installed.{% endblocktrans %}</p>\n+    <p>{% blocktrans %}The Windows releases <b>require</b> the <a href="https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170">64-bit Visual C++ redistributable for Visual Studio 2022</a> to be installed.{% endblocktrans %}</p>', 'path': 'dolweb/downloads/templates/downloads-index.html', 'position': 5, 'original_position': 5, 'commit_id': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'user': {'login': 'OatmealDome', 'id': 11504941, 'node_id': 'MDQ6VXNlcjExNTA0OTQx', 'avatar_url': 'https://avatars.githubusercontent.com/u/11504941?u=94362db41b75ee7775ed6b8f265652adc30d4d8c&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/OatmealDome', 'html_url': 'https://github.com/OatmealDome', 'followers_url': 'https://api.github.com/users/OatmealDome/followers', 'following_url': 'https://api.github.com/users/OatmealDome/following{/other_user}', 'gists_url': 'https://api.github.com/users/OatmealDome/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/OatmealDome/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/OatmealDome/subscriptions', 'organizations_url': 'https://api.github.com/users/OatmealDome/orgs', 'repos_url': 'https://api.github.com/users/OatmealDome/repos', 'events_url': 'https://api.github.com/users/OatmealDome/events{/privacy}', 'received_events_url': 'https://api.github.com/users/OatmealDome/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Yeah, I think the support page would be a more stable link.', 'created_at': '2025-04-24T15:43:24Z', 'updated_at': '2025-04-24T15:43:24Z', 'html_url': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058752700', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/www/pulls/168', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058752700'}, 'html': {'href': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058752700'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/www/pulls/168'}}, 'original_commit_id': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'in_reply_to_id': 2047013724, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058752700/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T15:42:29.597424	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'OatmealDome', 'action': 'submitted', 'pr_id': 166, 'pr_title': 'downloads: Add the releases flatpak repository', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/www/pull/166#pullrequestreview-2791694643', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T15:41:06.313300	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'OatmealDome', 'action': 'submitted', 'pr_id': 165, 'pr_title': 'downloads: Handle duplicate version names', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/www/pull/165#pullrequestreview-2791690717', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T10:16:47.780522	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'author': 'mbc07', 'action': 'submitted', 'pr_id': 168, 'pr_title': 'downloads: Update Visual C++ redistributable link.', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/www/pull/168#pullrequestreview-2790549061', 'comments': [{'id': 2058044177, 'node_id': 'PRRC_kwDOALAOP856q0MR', 'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058044177', 'pull_request_review_id': 2790549061, 'diff_hunk': '@@ -30,7 +30,7 @@ <h1>{% trans "Releases" %}</h1>\n {% endblocktrans %}</div>\n \n <div class="alert alert-danger">\n-    <p>{% blocktrans %}The Windows releases <b>require</b> the <a href="https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads">64-bit Visual C++ redistributable for Visual Studio 2022</a> to be installed.{% endblocktrans %}</p>\n+    <p>{% blocktrans %}The Windows releases <b>require</b> the <a href="https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170">64-bit Visual C++ redistributable for Visual Studio 2022</a> to be installed.{% endblocktrans %}</p>', 'path': 'dolweb/downloads/templates/downloads-index.html', 'position': 5, 'original_position': 5, 'commit_id': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'user': {'login': 'mbc07', 'id': 8005966, 'node_id': 'MDQ6VXNlcjgwMDU5NjY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8005966?u=d520fc2347c00acce5cbf6966d935c4126431709&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/mbc07', 'html_url': 'https://github.com/mbc07', 'followers_url': 'https://api.github.com/users/mbc07/followers', 'following_url': 'https://api.github.com/users/mbc07/following{/other_user}', 'gists_url': 'https://api.github.com/users/mbc07/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/mbc07/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/mbc07/subscriptions', 'organizations_url': 'https://api.github.com/users/mbc07/orgs', 'repos_url': 'https://api.github.com/users/mbc07/repos', 'events_url': 'https://api.github.com/users/mbc07/events{/privacy}', 'received_events_url': 'https://api.github.com/users/mbc07/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'IMO we should link to the proper support page, not directly to the binary. That direct URL is not stable either, as Microsoft has changed it already a few times in the past...', 'created_at': '2025-04-24T10:16:45Z', 'updated_at': '2025-04-24T10:16:46Z', 'html_url': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058044177', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/www/pulls/168', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058044177'}, 'html': {'href': 'https://github.com/dolphin-emu/www/pull/168#discussion_r2058044177'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/www/pulls/168'}}, 'original_commit_id': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'in_reply_to_id': 2047013724, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/www/pulls/comments/2058044177/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T08:56:31.133089	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'sepalani', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2790315734', 'comments': [{'id': 2057900322, 'node_id': 'PRRC_kwDOALCn2M56qREi', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057900322', 'pull_request_review_id': 2790315734, 'diff_hunk': '@@ -0,0 +1,131 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <array>\n+#include <cmath>\n+#include <limits>\n+#include <memory>\n+#include <mutex>\n+#include <numeric>\n+#include <ranges>\n+#include <type_traits>\n+\n+#include "Common/CommonTypes.h"\n+\n+#ifdef HAVE_CUBEB\n+#include "AudioCommon/CubebUtils.h"\n+\n+struct cubeb;\n+struct cubeb_stream;\n+#endif\n+\n+namespace IOS::HLE::USB\n+{\n+struct WiiSpeakState;\n+\n+class Microphone final\n+{\n+public:\n+  using FloatType = float;\n+\n+  Microphone(const WiiSpeakState& sampler);\n+  ~Microphone();\n+\n+  bool HasData(u32 sample_count) const;\n+  u16 ReadIntoBuffer(u8* ptr, u32 size);\n+  u16 GetLoudnessLevel() const;\n+  void UpdateLoudness(std::ranges::input_range auto&& samples);\n+  const WiiSpeakState& GetSampler() const;\n+  FloatType ComputeGain(FloatType relative_db) const;\n+  void SetSamplingRate(u32 sampling_rate);\n+\n+private:\n+#ifdef HAVE_CUBEB\n+  static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,\n+                           void* output_buffer, long nframes);\n+#endif\n+\n+  void StreamInit();\n+  void StreamTerminate();\n+  void StreamStart(u32 sampling_rate);\n+  void StreamStop();\n+\n+  using SampleType = s16;\n+  static constexpr u32 BUFF_SIZE_SAMPLES = 32;\n+  static constexpr u32 STREAM_SIZE = BUFF_SIZE_SAMPLES * 500;\n+\n+  std::array<SampleType, STREAM_SIZE> m_stream_buffer{};\n+  u32 m_stream_wpos = 0;\n+  u32 m_stream_rpos = 0;\n+  u32 m_samples_avail = 0;\n+\n+  // TODO: Find how this level is calculated on real hardware\n+  u16 m_loudness_level = 0;\n+  struct Loudness\n+  {\n+    using SampleType = s16;\n+    using UnsignedSampleType = std::make_unsigned_t<SampleType>;\n+\n+    void Update(const auto& samples)\n+    {\n+      samples_count += static_cast<u16>(samples.size());\n+\n+      const auto [min_element, max_element] = std::ranges::minmax_element(samples);\n+      peak_min = std::min<SampleType>(*min_element, peak_min);\n+      peak_max = std::max<SampleType>(*max_element, peak_max);\n+\n+      const auto begin = samples.begin();\n+      const auto end = samples.end();\n+      absolute_sum = std::reduce(begin, end, absolute_sum,\n+                                 [](u32 a, SampleType b) { return a + std::abs(b); });\n+      square_sum = std::reduce(begin, end, square_sum, [](FloatType a, s16 b) {\n+        return a + std::pow(FloatType(b), FloatType(2));\n+      });\n+    }\n+\n+    SampleType GetPeak() const;\n+    FloatType GetDecibel(FloatType value) const;\n+    FloatType GetAmplitude() const;\n+    FloatType GetAmplitudeDb() const;\n+    FloatType GetAbsoluteMean() const;\n+    FloatType GetAbsoluteMeanDb() const;\n+    FloatType GetRootMeanSquare() const;\n+    FloatType GetRootMeanSquareDb() const;\n+    FloatType GetCrestFactor() const;\n+    FloatType GetCrestFactorDb() const;\n+    FloatType ComputeGain(FloatType db) const;\n+\n+    void Reset();\n+    void LogStats();\n+\n+    // Samples used to compute the loudness level (arbitrarily chosen)\n+    static constexpr u16 SAMPLES_NEEDED = 128;\n+    static_assert((SAMPLES_NEEDED % BUFF_SIZE_SAMPLES) == 0);\n+\n+    static constexpr FloatType MAX_AMPLITUDE =\n+        FloatType{std::numeric_limits<UnsignedSampleType>::max() / 2};', 'path': 'Source/Core/Core/IOS/USB/Emulated/Microphone.h', 'position': 109, 'original_position': 109, 'commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'user': {'login': 'sepalani', 'id': 7890055, 'node_id': 'MDQ6VXNlcjc4OTAwNTU=', 'avatar_url': 'https://avatars.githubusercontent.com/u/7890055?u=ddcb228f8f28f609b10240218a87e829766bf505&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/sepalani', 'html_url': 'https://github.com/sepalani', 'followers_url': 'https://api.github.com/users/sepalani/followers', 'following_url': 'https://api.github.com/users/sepalani/following{/other_user}', 'gists_url': 'https://api.github.com/users/sepalani/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/sepalani/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/sepalani/subscriptions', 'organizations_url': 'https://api.github.com/users/sepalani/orgs', 'repos_url': 'https://api.github.com/users/sepalani/repos', 'events_url': 'https://api.github.com/users/sepalani/events{/privacy}', 'received_events_url': 'https://api.github.com/users/sepalani/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I want an integer division (and its truncation) `32767` to be converted to a float type (here float but could be changed later).\r\n\r\nWhere can I find the warning?', 'created_at': '2025-04-24T08:56:29Z', 'updated_at': '2025-04-24T08:56:29Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057900322', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057900322'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057900322'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'in_reply_to_id': 2057519199, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057900322/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T05:05:44.114820	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Pokechu22', 'action': 'submitted', 'pr_id': 10766, 'pr_title': 'DSP accelerator improvements', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/10766#pullrequestreview-2789718849', 'comments': [{'id': 2057539163, 'node_id': 'PRRC_kwDOALCn2M56o45b', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057539163', 'pull_request_review_id': 2789718849, 'diff_hunk': '@@ -0,0 +1,79 @@\n+incdir  "tests"\n+include "dsp_base.inc"\n+\n+test_main:\n+\n+; Test parameters\n+lri $AC0.M, #0x0000 ; start\n+lri $AC0.L, #0x0000 ; start\n+lri $AC1.M, #0x0000 ; end\n+lri $AC1.L, #0x0011 ; end\n+\n+; Set the sample format\n+lri $AC0.H, #0x08 ; 4-bit PCM, gain scaling = x / 2048\n+sr @0xffd1, $AC0.H\n+; Set the starting and current address\n+srs @ACSAH, $AC0.M\n+srs @ACCAH, $AC0.M\n+srs @ACSAL, $AC0.L\n+srs @ACCAL, $AC0.L\n+; Set the ending address\n+srs @ACEAH, $AC1.M\n+srs @ACEAL, $AC1.L\n+\n+; Set the gains\n+si @GAIN, #0x0800 ; 2048 / 2048 = 1.0\n+si @COEF_A1_0, #0x0400 ; 1024 / 2048 = 0.5\n+si @COEF_A2_0, #0x0200 ; 512 / 2048 = 0.25\n+\n+; Reset some registers (these must be reset after setting FORMAT)\n+lri $AC0.H, #0x0000\n+sr @0xffda, $AC0.H ; pred scale, use 0th coefficients\n+sr @0xffdb, $AC0.H ; yn1\n+sr @0xffdc, $AC0.H ; yn2\n+\n+call load_hw_reg_to_regs\n+call send_back ; check the accelerator regs before a read\n+\n+; Expected read sequence\n+; r[0] = (data[0] >> 4) + (0/2) + (0/4)\n+; r[1] = (data[0] & 0xf) + (r[0]/2) + (0/4)\n+; r[2] = (data[1] >> 4) + (r[1]/2) + (r[0]/4)\n+; r[3] = (data[1] & 0xf) + (r[2]/2) + (r[1]/4)\n+; ...\n+\n+bloopi #40, end_of_loop\n+  lr $IX3, @ACDSAMP\n+  call load_hw_reg_to_regs\n+  call send_back ; after a read\n+  nop ; Loops that end at a return of a call are buggy on hw\n+end_of_loop:\n+  nop\n+\n+jmp end_of_test\n+\n+load_hw_reg_to_regs:\n+  lr $AR0, @0xffd1 ; format\n+  lr $AR1, @0xffd2 ; unknown\n+  lr $AR2, @0xffda ; pred scale\n+  lr $AR3, @0xffdb ; yn1\n+  lr $IX0, @0xffdc ; yn2\n+  lr $IX1, @0xffdf ; unknown accelerator register', 'path': 'Source/DSPSpy/tests/accelerator_pcm_test.ds', 'position': 61, 'original_position': 61, 'commit_id': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'user': {'login': 'Pokechu22', 'id': 8334194, 'node_id': 'MDQ6VXNlcjgzMzQxOTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8334194?u=9ad35ec22f76e5eb9bc403c43ca3d6385d7d137a&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Pokechu22', 'html_url': 'https://github.com/Pokechu22', 'followers_url': 'https://api.github.com/users/Pokechu22/followers', 'following_url': 'https://api.github.com/users/Pokechu22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Pokechu22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Pokechu22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Pokechu22/subscriptions', 'organizations_url': 'https://api.github.com/users/Pokechu22/orgs', 'repos_url': 'https://api.github.com/users/Pokechu22/repos', 'events_url': 'https://api.github.com/users/Pokechu22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Pokechu22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Based on DSPTables.cpp pdlabels, these could be:\r\n\r\n```\r\n  lr $AR0, @SampleFormat\r\n  lr $AR1, @0xffd2 ; unknown\r\n  lr $AR2, @pred_scale\r\n  lr $AR3, @yn1\r\n  lr $IX0, @yn2\r\n  lr $IX1, @ACIN\r\n```\r\n\r\n(the names could also be FORMAT and SCALE to match the manual; DSPTables currently uses different names.) It might make sense to replace the raw addresses with names for the other tests, too.\r\n\r\nAt a minimum, the comment saying "unknown accelerator register" should be "ACIN" since we\'ve identified its purpose. This applies to several tests.\r\n', 'created_at': '2025-04-24T05:01:30Z', 'updated_at': '2025-04-24T05:05:42Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057539163', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057539163'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057539163'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766'}}, 'original_commit_id': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057539163/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2057540510, 'node_id': 'PRRC_kwDOALCn2M56o5Oe', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057540510', 'pull_request_review_id': 2789718849, 'diff_hunk': "@@ -14,41 +15,85 @@ class Accelerator\n public:\n   virtual ~Accelerator() = default;\n \n-  u16 Read(const s16* coefs);\n+  u16 ReadSample(const s16* coefs);\n   // Zelda ucode reads ARAM through 0xffd3.\n-  u16 ReadD3();\n-  void WriteD3(u16 value);\n+  u16 ReadRaw();\n+  void WriteRaw(u16 value);\n \n   u32 GetStartAddress() const { return m_start_address; }\n   u32 GetEndAddress() const { return m_end_address; }\n   u32 GetCurrentAddress() const { return m_current_address; }\n-  u16 GetSampleFormat() const { return m_sample_format; }\n+  u16 GetSampleFormat() const { return m_sample_format.hex; }\n+  s16 GetGain() const { return m_gain; }\n   s16 GetYn1() const { return m_yn1; }\n   s16 GetYn2() const { return m_yn2; }\n   u16 GetPredScale() const { return m_pred_scale; }\n+  u16 GetInput() const { return m_input; }\n   void SetStartAddress(u32 address);\n   void SetEndAddress(u32 address);\n   void SetCurrentAddress(u32 address);\n   void SetSampleFormat(u16 format);\n+  void SetGain(s16 gain);\n   void SetYn1(s16 yn1);\n   void SetYn2(s16 yn2);\n   void SetPredScale(u16 pred_scale);\n+  void SetInput(u16 input);\n \n   void DoState(PointerWrap& p);\n \n protected:\n-  virtual void OnEndException() = 0;\n+  virtual void OnRawReadEndException() = 0;\n+  virtual void OnRawWriteEndException() = 0;\n+  virtual void OnSampleReadEndException() = 0;\n   virtual u8 ReadMemory(u32 address) = 0;\n   virtual void WriteMemory(u32 address, u8 value) = 0;\n+  u16 GetCurrentSample();\n \n   // DSP accelerator registers.\n   u32 m_start_address = 0;\n   u32 m_end_address = 0;\n   u32 m_current_address = 0;\n-  u16 m_sample_format = 0;\n+\n+  enum class FormatSize : u16\n+  {\n+    Size4Bit = 0,\n+    Size8Bit = 1,\n+    Size16Bit = 2,\n+    SizeInvalid = 3\n+  };\n+\n+  enum class FormatDecode : u16\n+  {\n+    ADPCM = 0,        // ADPCM reads from ARAM, ACCA increments\n+    MMIOPCMHalt = 1,  // PCM Reads from ACIN, ACCA doesn't increment", 'path': 'Source/Core/Core/DSP/DSPAccelerator.h', 'position': 68, 'original_position': 68, 'commit_id': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'user': {'login': 'Pokechu22', 'id': 8334194, 'node_id': 'MDQ6VXNlcjgzMzQxOTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8334194?u=9ad35ec22f76e5eb9bc403c43ca3d6385d7d137a&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Pokechu22', 'html_url': 'https://github.com/Pokechu22', 'followers_url': 'https://api.github.com/users/Pokechu22/followers', 'following_url': 'https://api.github.com/users/Pokechu22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Pokechu22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Pokechu22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Pokechu22/subscriptions', 'organizations_url': 'https://api.github.com/users/Pokechu22/orgs', 'repos_url': 'https://api.github.com/users/Pokechu22/repos', 'events_url': 'https://api.github.com/users/Pokechu22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Pokechu22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I don\'t like "halt" here, which makes me think an exception is triggered or it does something like the `HALT` instruction. I think just calling it `MMIOPCM` would be clearer.', 'created_at': '2025-04-24T05:03:24Z', 'updated_at': '2025-04-24T05:05:42Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057540510', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057540510'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057540510'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766'}}, 'original_commit_id': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057540510/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2057541855, 'node_id': 'PRRC_kwDOALCn2M56o5jf', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057541855', 'pull_request_review_id': 2789718849, 'diff_hunk': '@@ -113,47 +180,56 @@ u16 Accelerator::Read(const s16* coefs)\n     {\n       m_pred_scale = ReadMemory((m_current_address & ~15) >> 1);\n       m_current_address += 2;\n-      step_size_bytes += 2;\n+      step_size += 2;\n     }\n     break;\n   }\n-  case 0x0A:  // 16-bit PCM audio\n-    val = (ReadMemory(m_current_address * 2) << 8) | ReadMemory(m_current_address * 2 + 1);\n-    m_yn2 = m_yn1;\n-    m_yn1 = val;\n-    step_size_bytes = 2;\n-    m_current_address += 1;\n-    break;\n-  case 0x19:  // 8-bit PCM audio\n-    val = ReadMemory(m_current_address) << 8;\n+  case FormatDecode::MMIOPCMHalt:\n+  case FormatDecode::PCM:  // 16-bit PCM audio\n+  case FormatDecode::MMIOPCMInc:\n+  {\n+    // Gain seems to only apply for PCM decoding\n+    u8 gain_shift = 0;\n+    switch (m_sample_format.gain_scale)\n+    {\n+    case FormatGainScale::GainScale2048:\n+      gain_shift = 11;  // x / 2048 = x >> 11\n+      break;\n+    case FormatGainScale::GainScale1:\n+      gain_shift = 0;  // x / 1 = x >> 0\n+      break;\n+    case FormatGainScale::GainScale65536:\n+      gain_shift = 16;  // x / 65536 = x >> 16\n+      break;\n+    default:\n+      ERROR_LOG_FMT(DSPLLE, "dsp_read_accelerator_sample() invalid gain mode in format {:#x}",\n+                    m_sample_format.hex);\n+      break;\n+    }\n+    s32 val32 = ((static_cast<s32>(m_gain) * raw_sample) >> gain_shift) +\n+                (((coef1 * m_yn1) >> gain_shift) + ((coef2 * m_yn2) >> gain_shift));\n+    val = static_cast<s16>(val32);\n     m_yn2 = m_yn1;\n     m_yn1 = val;\n-    step_size_bytes = 2;\n-    m_current_address += 1;\n-    break;\n-  default:\n-    ERROR_LOG_FMT(DSPLLE, "dsp_read_accelerator() - unknown format {:#x}", m_sample_format);\n-    step_size_bytes = 2;\n-    m_current_address += 1;\n-    val = 0;\n+    step_size = 2;\n+    if (m_sample_format.decode != FormatDecode::MMIOPCMHalt)\n+    {\n+      m_current_address += 1;\n+    }\n     break;\n   }\n-\n-  // TODO: Take GAIN into account\n-  // adpcm = 0, pcm8 = 0x100, pcm16 = 0x800\n-  // games using pcm8 : Phoenix Wright Ace Attorney (WiiWare), Megaman 9-10 (WiiWare)\n-  // games using pcm16: GC Sega games, ...\n+  }\n \n   // Check for loop.\n   // Somehow, YN1 and YN2 must be initialized with their "loop" values,\n   // so yeah, it seems likely that we should raise an exception to let\n   // the DSP program do that, at least if DSP_FORMAT == 0x0A.', 'path': 'Source/Core/Core/DSP/DSPAccelerator.cpp', 'position': 269, 'original_position': 272, 'commit_id': '044028ef1db3c3d94e60e5bf736bb02cde26e157', 'user': {'login': 'Pokechu22', 'id': 8334194, 'node_id': 'MDQ6VXNlcjgzMzQxOTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/8334194?u=9ad35ec22f76e5eb9bc403c43ca3d6385d7d137a&v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/Pokechu22', 'html_url': 'https://github.com/Pokechu22', 'followers_url': 'https://api.github.com/users/Pokechu22/followers', 'following_url': 'https://api.github.com/users/Pokechu22/following{/other_user}', 'gists_url': 'https://api.github.com/users/Pokechu22/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/Pokechu22/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/Pokechu22/subscriptions', 'organizations_url': 'https://api.github.com/users/Pokechu22/orgs', 'repos_url': 'https://api.github.com/users/Pokechu22/repos', 'events_url': 'https://api.github.com/users/Pokechu22/events{/privacy}', 'received_events_url': 'https://api.github.com/users/Pokechu22/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Proposed new comment:\r\n\r\n```\r\n  // Check for loop.\r\n  // YN1 and YN2 need to be initialized with their "loop" values, which is usually done upon this exception.\r\n```', 'created_at': '2025-04-24T05:05:19Z', 'updated_at': '2025-04-24T05:05:42Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057541855', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057541855'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/10766#discussion_r2057541855'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/10766'}}, 'original_commit_id': '003d6a9fae0450089c4a5f3f32ed30b3045340ba', 'in_reply_to_id': 905408227, 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057541855/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T04:38:47.577057	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2789687416', 'comments': [{'id': 2057519199, 'node_id': 'PRRC_kwDOALCn2M56o0Bf', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057519199', 'pull_request_review_id': 2789687416, 'diff_hunk': '@@ -0,0 +1,131 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <array>\n+#include <cmath>\n+#include <limits>\n+#include <memory>\n+#include <mutex>\n+#include <numeric>\n+#include <ranges>\n+#include <type_traits>\n+\n+#include "Common/CommonTypes.h"\n+\n+#ifdef HAVE_CUBEB\n+#include "AudioCommon/CubebUtils.h"\n+\n+struct cubeb;\n+struct cubeb_stream;\n+#endif\n+\n+namespace IOS::HLE::USB\n+{\n+struct WiiSpeakState;\n+\n+class Microphone final\n+{\n+public:\n+  using FloatType = float;\n+\n+  Microphone(const WiiSpeakState& sampler);\n+  ~Microphone();\n+\n+  bool HasData(u32 sample_count) const;\n+  u16 ReadIntoBuffer(u8* ptr, u32 size);\n+  u16 GetLoudnessLevel() const;\n+  void UpdateLoudness(std::ranges::input_range auto&& samples);\n+  const WiiSpeakState& GetSampler() const;\n+  FloatType ComputeGain(FloatType relative_db) const;\n+  void SetSamplingRate(u32 sampling_rate);\n+\n+private:\n+#ifdef HAVE_CUBEB\n+  static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,\n+                           void* output_buffer, long nframes);\n+#endif\n+\n+  void StreamInit();\n+  void StreamTerminate();\n+  void StreamStart(u32 sampling_rate);\n+  void StreamStop();\n+\n+  using SampleType = s16;\n+  static constexpr u32 BUFF_SIZE_SAMPLES = 32;\n+  static constexpr u32 STREAM_SIZE = BUFF_SIZE_SAMPLES * 500;\n+\n+  std::array<SampleType, STREAM_SIZE> m_stream_buffer{};\n+  u32 m_stream_wpos = 0;\n+  u32 m_stream_rpos = 0;\n+  u32 m_samples_avail = 0;\n+\n+  // TODO: Find how this level is calculated on real hardware\n+  u16 m_loudness_level = 0;\n+  struct Loudness\n+  {\n+    using SampleType = s16;\n+    using UnsignedSampleType = std::make_unsigned_t<SampleType>;\n+\n+    void Update(const auto& samples)\n+    {\n+      samples_count += static_cast<u16>(samples.size());\n+\n+      const auto [min_element, max_element] = std::ranges::minmax_element(samples);\n+      peak_min = std::min<SampleType>(*min_element, peak_min);\n+      peak_max = std::max<SampleType>(*max_element, peak_max);\n+\n+      const auto begin = samples.begin();\n+      const auto end = samples.end();\n+      absolute_sum = std::reduce(begin, end, absolute_sum,\n+                                 [](u32 a, SampleType b) { return a + std::abs(b); });\n+      square_sum = std::reduce(begin, end, square_sum, [](FloatType a, s16 b) {\n+        return a + std::pow(FloatType(b), FloatType(2));\n+      });\n+    }\n+\n+    SampleType GetPeak() const;\n+    FloatType GetDecibel(FloatType value) const;\n+    FloatType GetAmplitude() const;\n+    FloatType GetAmplitudeDb() const;\n+    FloatType GetAbsoluteMean() const;\n+    FloatType GetAbsoluteMeanDb() const;\n+    FloatType GetRootMeanSquare() const;\n+    FloatType GetRootMeanSquareDb() const;\n+    FloatType GetCrestFactor() const;\n+    FloatType GetCrestFactorDb() const;\n+    FloatType ComputeGain(FloatType db) const;\n+\n+    void Reset();\n+    void LogStats();\n+\n+    // Samples used to compute the loudness level (arbitrarily chosen)\n+    static constexpr u16 SAMPLES_NEEDED = 128;\n+    static_assert((SAMPLES_NEEDED % BUFF_SIZE_SAMPLES) == 0);\n+\n+    static constexpr FloatType MAX_AMPLITUDE =\n+        FloatType{std::numeric_limits<UnsignedSampleType>::max() / 2};', 'path': 'Source/Core/Core/IOS/USB/Emulated/Microphone.h', 'position': 109, 'original_position': 109, 'commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This doesn't resolve the warning. You're still doing integer division `(65535 / 2)`. Do you want the value to be `32767.5f` or `32767` ?", 'created_at': '2025-04-24T04:38:45Z', 'updated_at': '2025-04-24T04:38:45Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057519199', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057519199'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2057519199'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2057519199/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-24T04:30:17.720725	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13573, 'pr_title': 'DolphinTool: Make parameter constant', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13573#pullrequestreview-2789662327', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T04:29:21.612447	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13577, 'pr_title': 'UCodes: Make functions static', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13577#pullrequestreview-2789659283', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T04:28:51.055539	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13578, 'pr_title': 'Core/HW: Remove redundant empty lambda parameter lists', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13578#pullrequestreview-2789657782', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T04:23:45.346188	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13491, 'pr_title': 'IOS: Remove from m_opened_devices in OH0::OnDeviceChange', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13491#pullrequestreview-2789641235', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-24T03:43:11.223903	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'Tilka', 'action': 'submitted', 'pr_id': 13580, 'pr_title': 'Fix debugger disabled bug', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13580#pullrequestreview-2789458000', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-23T20:19:11.106151	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'AdmiralCurtiss', 'action': 'submitted', 'pr_id': 13431, 'pr_title': 'Common: SPSCQueue cleanups and improvements.', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13431#pullrequestreview-2788597510', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-23T19:11:03.548944	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2788405444', 'comments': [{'id': 2056697888, 'node_id': 'PRRC_kwDOALCn2M56lrgg', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056697888', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,123 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <algorithm>\n+#include <array>\n+#include <cmath>\n+#include <limits>\n+#include <memory>\n+#include <mutex>\n+#include <numeric>\n+#include <ranges>\n+#include <type_traits>\n+\n+#include "AudioCommon/CubebUtils.h"\n+#include "Common/CommonTypes.h"\n+\n+struct cubeb;\n+struct cubeb_stream;\n+\n+namespace IOS::HLE::USB\n+{\n+struct WiiSpeakState;\n+\n+class Microphone final\n+{\n+public:\n+  using FloatType = float;\n+\n+  Microphone(const WiiSpeakState& sampler);\n+  ~Microphone();\n+\n+  bool HasData(u32 sample_count) const;\n+  u16 ReadIntoBuffer(u8* ptr, u32 size);\n+  u16 GetLoudnessLevel() const;\n+  void UpdateLoudness(std::ranges::input_range auto&& samples);\n+  const WiiSpeakState& GetSampler() const;\n+  FloatType ComputeGain(FloatType relative_db) const;\n+  void SetSamplingRate(u32 sampling_rate);\n+\n+private:\n+  static long DataCallback(cubeb_stream* stream, void* user_data, const void* input_buffer,\n+                           void* output_buffer, long nframes);\n+\n+  void StreamInit();\n+  void StreamTerminate();\n+  void StreamStart(u32 sampling_rate);\n+  void StopStream();\n+\n+  using SampleType = s16;\n+  static constexpr u32 BUFF_SIZE_SAMPLES = 32;\n+  static constexpr u32 STREAM_SIZE = BUFF_SIZE_SAMPLES * 500;\n+\n+  std::array<SampleType, STREAM_SIZE> m_stream_buffer{};\n+  u32 m_stream_wpos = 0;\n+  u32 m_stream_rpos = 0;\n+  u32 m_samples_avail = 0;\n+\n+  // TODO: Find how this level is calculated on real hardware\n+  u16 m_loudness_level = 0;\n+  struct Loudness\n+  {\n+    using SampleType = s16;\n+    using UnsignedSampleType = std::make_unsigned_t<SampleType>;\n+\n+    void Update(const auto& samples)\n+    {\n+      samples_count += static_cast<u16>(samples.size());\n+\n+      const auto [min_element, max_element] = std::ranges::minmax_element(samples);\n+      peak_min = std::min<SampleType>(*min_element, peak_min);\n+      peak_max = std::max<SampleType>(*max_element, peak_max);\n+\n+      const auto begin = samples.begin();\n+      const auto end = samples.end();\n+      absolute_sum = std::reduce(begin, end, absolute_sum,\n+                                 [](u32 a, SampleType b) { return a + std::abs(b); });\n+      square_sum = std::reduce(begin, end, square_sum, [](FloatType a, s16 b) {\n+        return a + std::pow(FloatType(b), FloatType(2));\n+      });\n+    }\n+\n+    SampleType GetPeak() const;\n+    FloatType GetDecibel(FloatType value) const;\n+    FloatType GetAmplitude() const;\n+    FloatType GetAmplitudeDb() const;\n+    FloatType GetAbsoluteMean() const;\n+    FloatType GetAbsoluteMeanDb() const;\n+    FloatType GetRootMeanSquare() const;\n+    FloatType GetRootMeanSquareDb() const;\n+    FloatType GetCrestFactor() const;\n+    FloatType GetCrestFactorDb() const;\n+    FloatType ComputeGain(FloatType db) const;\n+\n+    void Reset();\n+    void LogStats();\n+\n+    // Samples used to compute the loudness level (arbitrarily chosen)\n+    static constexpr u16 SAMPLES_NEEDED = 128;\n+    static_assert((SAMPLES_NEEDED % BUFF_SIZE_SAMPLES) == 0);\n+\n+    static constexpr FloatType MAX_AMPLTIUDE = std::numeric_limits<UnsignedSampleType>::max() / 2;', 'path': 'Source/Core/Core/IOS/USB/Emulated/Microphone.h', 'position': 103, 'original_position': 103, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Amplitude misspelled. Also, this produces a warning because integer division (65535 / 2) is stored in a float.', 'created_at': '2025-04-23T18:47:49Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056697888', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056697888'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056697888'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056697888/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2056698975, 'node_id': 'PRRC_kwDOALCn2M56lrxf', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056698975', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,423 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "Core/IOS/USB/Emulated/WiiSpeak.h"\n+\n+#include <algorithm>\n+\n+#include "Core/Config/MainSettings.h"', 'path': 'Source/Core/Core/IOS/USB/Emulated/WiiSpeak.cpp', 'position': 8, 'original_position': 8, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Header not used.', 'created_at': '2025-04-23T18:48:37Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056698975', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056698975'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056698975'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056698975/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2056699437, 'node_id': 'PRRC_kwDOALCn2M56lr4t', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056699437', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,102 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <memory>\n+#include <vector>\n+\n+#include "Common/CommonTypes.h"\n+#include "Core/IOS/USB/Common.h"\n+#include "Core/IOS/USB/Emulated/Microphone.h"\n+#include "Core/System.h"', 'path': 'Source/Core/Core/IOS/USB/Emulated/WiiSpeak.h', 'position': 12, 'original_position': 12, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "This include isn't needed by the header. It can be moved to the cpp files that need it.", 'created_at': '2025-04-23T18:48:55Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056699437', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056699437'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056699437'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056699437/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2056700611, 'node_id': 'PRRC_kwDOALCn2M56lsLD', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700611', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,143 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#include "DolphinQt/EmulatedUSB/WiiSpeakWindow.h"\n+\n+#include <algorithm>\n+#include <limits>', 'path': 'Source/Core/DolphinQt/EmulatedUSB/WiiSpeakWindow.cpp', 'position': 7, 'original_position': 7, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Header not used.', 'created_at': '2025-04-23T18:49:50Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700611', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700611'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700611'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700611/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2056700981, 'node_id': 'PRRC_kwDOALCn2M56lsQ1', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700981', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,34 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <QWidget>\n+\n+#include "Common/CommonTypes.h"', 'path': 'Source/Core/DolphinQt/EmulatedUSB/WiiSpeakWindow.h', 'position': 8, 'original_position': 8, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Header not used.', 'created_at': '2025-04-23T18:50:06Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700981', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700981'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056700981'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056700981/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2056731645, 'node_id': 'PRRC_kwDOALCn2M56lzv9', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056731645', 'pull_request_review_id': 2788405444, 'diff_hunk': '@@ -0,0 +1,34 @@\n+// Copyright 2025 Dolphin Emulator Project\n+// SPDX-License-Identifier: GPL-2.0-or-later\n+\n+#pragma once\n+\n+#include <QWidget>\n+\n+#include "Common/CommonTypes.h"\n+#include "Core/Core.h"\n+\n+class QCheckBox;\n+class QComboBox;\n+class QGroupBox;\n+class QLabel;\n+\n+class WiiSpeakWindow : public QWidget\n+{\n+  Q_OBJECT\n+public:\n+  explicit WiiSpeakWindow(QWidget* parent = nullptr);\n+  ~WiiSpeakWindow() override;\n+\n+private:\n+  void CreateMainWindow();\n+  void OnEmulationStateChanged(Core::State state);\n+  void EmulateWiiSpeak(bool emulate);\n+  void SetWiiSpeakConnectionState(bool connected);\n+  void OnInputDeviceChange();\n+\n+  QCheckBox* m_checkbox_enabled;\n+  QComboBox* m_combobox_microphones;\n+  QGroupBox* m_config_group;\n+  QLabel* m_slider_label;', 'path': 'Source/Core/DolphinQt/EmulatedUSB/WiiSpeakWindow.h', 'position': 33, 'original_position': 33, 'commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': "`m_config_group` and `m_slider_label` don't need to be member variables. They are just used in one function.", 'created_at': '2025-04-23T19:09:21Z', 'updated_at': '2025-04-23T19:11:01Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056731645', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056731645'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/12769#discussion_r2056731645'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/12769'}}, 'original_commit_id': 'bad45ce8a28081f66d6b742b83b433d48e5c32bc', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2056731645/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-23T18:52:48.342162	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'OatmealDome', 'action': 'submitted', 'pr_id': 12769, 'pr_title': 'IOS/USB: Emulate Wii Speak using cubeb', 'state': 'changes_requested', 'url': 'https://github.com/dolphin-emu/dolphin/pull/12769#pullrequestreview-2788417063', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-23T18:35:38.219075	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13554, 'pr_title': 'DSPSpy: Apply style-alignment refactorings', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13554#pullrequestreview-2788372683', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-23T13:53:09.222144	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'mbc07', 'action': 'submitted', 'pr_id': 13570, 'pr_title': 'DolphinQt: Remove unused variables from `AdvancedPane.h`', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13570#pullrequestreview-2787416562', 'comments': [], 'type': 'gh_pull_request_review'}
2025-04-23T08:16:51.757156	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13568, 'pr_title': 'UnitTests: Replace functional style casts with `static_cast`', 'state': 'commented', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13568#pullrequestreview-2786359239', 'comments': [{'id': 2055497107, 'node_id': 'PRRC_kwDOALCn2M56hGWT', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055497107', 'pull_request_review_id': 2786359239, 'diff_hunk': '@@ -128,20 +128,20 @@ TEST(BitField, Assignment)\n     object.full_u64 = val;\n     EXPECT_EQ(val, object.full_u64);\n \n-    object.full_s64 = (s64)val;', 'path': 'Source/UnitTests/Common/BitFieldTest.cpp', 'position': 50, 'original_position': 50, 'commit_id': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'Most of these are not "functional style" casts. I guess it would just be called a c-style cast.\r\nThe commit message isn\'t very accurate.', 'created_at': '2025-04-23T08:10:58Z', 'updated_at': '2025-04-23T08:16:50Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055497107', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13568', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055497107'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055497107'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13568'}}, 'original_commit_id': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055497107/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}, {'id': 2055506536, 'node_id': 'PRRC_kwDOALCn2M56hIpo', 'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055506536', 'pull_request_review_id': 2786359239, 'diff_hunk': '@@ -64,8 +64,8 @@ TEST(MathUtil, SaturatingCast)\n   EXPECT_EQ(std::numeric_limits<s32>::min(),\n             MathUtil::SaturatingCast<s32>(-std::numeric_limits<float>::infinity()));\n   // 16777217 = 2^24 + 1 is the first integer that cannot be represented correctly with a f32.\n-  EXPECT_EQ(16777216, MathUtil::SaturatingCast<s32>(float(16777216)));\n-  EXPECT_EQ(16777216, MathUtil::SaturatingCast<s32>(float(16777217)));', 'path': 'Source/UnitTests/Common/MathUtilTest.cpp', 'position': 5, 'original_position': 5, 'commit_id': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'I think this is a perfect example of `static_cast` providing no benefit and only hurting readability.\r\nI do not see a benefit of changing functional style casts of non-pointer types (like `float` or `u64`) to `static_cast`.\r\nThe type of the cast in `u8(expression)` or `float(numbers)` is perfectly clear and typing out `static_cast` is overly verbose for no reason.', 'created_at': '2025-04-23T08:16:40Z', 'updated_at': '2025-04-23T08:16:50Z', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055506536', 'pull_request_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13568', 'author_association': 'MEMBER', '_links': {'self': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055506536'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13568#discussion_r2055506536'}, 'pull_request': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13568'}}, 'original_commit_id': 'ba3cc2155376fffd94bf82c94d6e2aca419dbd6f', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/comments/2055506536/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}}], 'type': 'gh_pull_request_review'}
2025-04-23T08:06:13.433544	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'author': 'jordan-woyak', 'action': 'submitted', 'pr_id': 13567, 'pr_title': 'UnitTests: Rename lambda parameters which hide previous declarations', 'state': 'approved', 'url': 'https://github.com/dolphin-emu/dolphin/pull/13567#pullrequestreview-2786346300', 'comments': [], 'type': 'gh_pull_request_review'}

Recent 'gh_push' events

2025-04-25T00:56:44.964033	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': 'fe307a06c692f9fd0e7ac04e0ecf37f29393f491', 'after_sha': '805307f432dba079caf7339122a07de5b90c4b47', 'commits': [{'author': {'name': 'vyuuui', 'email': 'tyrannicanine@gmail.com', 'username': 'vyuuui'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/Assembler/GekkoIRGen.cpp', 'Source/Core/Common/Assembler/GekkoLexer.cpp', 'Source/Core/Common/Assembler/GekkoLexer.h', 'Source/Core/Common/Assembler/GekkoParser.cpp', 'Source/Core/Common/Assembler/GekkoParser.h', 'Source/Core/DolphinQt/Debugger/GekkoSyntaxHighlight.cpp', 'Source/UnitTests/Common/AssemblerTest.cpp'], 'removed': [], 'message': 'Add numeric label support to assembler', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e34907025d0f879d862929d8d7ce861d8fba0c43', 'hash': 'e34907025d0f879d862929d8d7ce861d8fba0c43'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/Assembler/GekkoIRGen.cpp', 'Source/Core/Common/Assembler/GekkoLexer.cpp', 'Source/Core/Common/Assembler/GekkoLexer.h', 'Source/Core/Common/Assembler/GekkoParser.cpp', 'Source/Core/Common/Assembler/GekkoParser.h', 'Source/Core/DolphinQt/Debugger/GekkoSyntaxHighlight.cpp', 'Source/UnitTests/Common/AssemblerTest.cpp'], 'removed': [], 'message': 'Merge pull request #13451 from vyuuui/numeric_labels\n\nAdd numeric label support to assembler', 'url': 'https://github.com/dolphin-emu/dolphin/commit/805307f432dba079caf7339122a07de5b90c4b47', 'hash': '805307f432dba079caf7339122a07de5b90c4b47'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-25T00:49:54.010448	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': 'a95779add09bf24002ba9e5d0d5987d2c6945e47', 'after_sha': 'fe307a06c692f9fd0e7ac04e0ecf37f29393f491', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': ['Source/Core/InputCommon/ControllerInterface/SDL/SDLGamepad.cpp', 'Source/Core/InputCommon/ControllerInterface/SDL/SDLGamepad.h'], 'modified': ['Source/Core/DolphinLib.props', 'Source/Core/InputCommon/CMakeLists.txt', 'Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp'], 'removed': [], 'message': 'InputCommon: Move SDL Device class into its own cpp/h files.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/17c994df2a72519c4784011b2339a3ff8315a981', 'hash': '17c994df2a72519c4784011b2339a3ff8315a981'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': ['Source/Core/InputCommon/ControllerInterface/SDL/SDLGamepad.cpp', 'Source/Core/InputCommon/ControllerInterface/SDL/SDLGamepad.h'], 'modified': ['Source/Core/DolphinLib.props', 'Source/Core/InputCommon/CMakeLists.txt', 'Source/Core/InputCommon/ControllerInterface/SDL/SDL.cpp'], 'removed': [], 'message': 'Merge pull request #13476 from jordan-woyak/sdl-header\n\nInputCommon: Move SDL Device class into its own cpp/h files.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fe307a06c692f9fd0e7ac04e0ecf37f29393f491', 'hash': 'fe307a06c692f9fd0e7ac04e0ecf37f29393f491'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-25T00:43:55.175290	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': '5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6', 'after_sha': 'a95779add09bf24002ba9e5d0d5987d2c6945e47', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Android/app/src/main/res/values/strings.xml'], 'removed': [], 'message': 'Android: Create toggle for enabling/disabling time tracking', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3eee52cb6bbebfc6b44b43aa85cd22b17b27aca5', 'hash': '3eee52cb6bbebfc6b44b43aa85cd22b17b27aca5'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Android/app/build.gradle.kts', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.kt', 'Source/Android/app/src/main/res/layout/dialog_game_details.xml', 'Source/Android/app/src/main/res/layout/dialog_game_details_tv.xml', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/GameList/GameFile.cpp'], 'removed': [], 'message': "Android: Show time played in game details\n\nUnlike in DolphinQt, there isn't much space to show playtimes directly in\nthe game list, so I've put it in the game details dialog instead.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/b8e70df413ddd4663aa8e65a6f9d8a1e059c64c7', 'hash': 'b8e70df413ddd4663aa8e65a6f9d8a1e059c64c7'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Android/app/build.gradle.kts', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GameDetailsDialog.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/BooleanSetting.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/model/GameFile.kt', 'Source/Android/app/src/main/res/layout/dialog_game_details.xml', 'Source/Android/app/src/main/res/layout/dialog_game_details_tv.xml', 'Source/Android/app/src/main/res/values/strings.xml', 'Source/Android/jni/GameList/GameFile.cpp'], 'removed': [], 'message': 'Merge pull request #13506 from JosJuice/android-time-played\n\nAndroid: Show time played in game details', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a95779add09bf24002ba9e5d0d5987d2c6945e47', 'hash': 'a95779add09bf24002ba9e5d0d5987d2c6945e47'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-25T00:41:00.768448	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': '50026ab795c6047d3c7fba7d9cd4d8867c67ba7d', 'after_sha': '5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6', 'commits': [{'author': {'name': 'Dentomologist', 'email': 'dentomologist@gmail.com', 'username': 'Dentomologist'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/VideoCommon/PerformanceMetrics.cpp'], 'removed': [], 'message': 'PerformanceMetrics: Fix window arrangement\n\nFix overlays stacking on top of each other or not moving to the edge of\nthe screen when enabling or disabling overlays while emulation is\nactive.\n\nThis change only applies when Config::GFX_MOVABLE_PERFORMANCE_METRICS is\nFalse.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ec49ea5be32a65c974efb06ce16cccba6205a679', 'hash': 'ec49ea5be32a65c974efb06ce16cccba6205a679'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/VideoCommon/PerformanceMetrics.cpp'], 'removed': [], 'message': 'Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement\n\nPerformanceMetrics: Fix window arrangement', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6', 'hash': '5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-25T00:38:37.298036	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': '908094714b5478aab4ec9eeb9de56ca8d4d50662', 'after_sha': '50026ab795c6047d3c7fba7d9cd4d8867c67ba7d', 'commits': [{'author': {'name': 'Javier Martinez', 'email': 'hoogmin@gmail.com', 'username': 'hoogmin'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/FileUtil.cpp'], 'removed': [], 'message': 'Use std path utility for automatic path seperator handling.\n\nIt was being done manually, which a TODO comment advised against.\nUsing generic_string() from std::filesystem::path solves this.\n\nFix encoding issue using generic_wstring instead.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/7ca8dc376745818ab1b1ef3a7092d5f69775b54a', 'hash': '7ca8dc376745818ab1b1ef3a7092d5f69775b54a'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/FileUtil.cpp'], 'removed': [], 'message': 'Merge pull request #13497 from hoogmin/modernize_fs_path\n\nCore/Common/FileUtil.cpp: Use std path utility for automatic path separator handling.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/50026ab795c6047d3c7fba7d9cd4d8867c67ba7d', 'hash': '50026ab795c6047d3c7fba7d9cd4d8867c67ba7d'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T21:38:56.775570	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '8fa725d5e4feb3523f6c97d81a7896e94a47b5cd', 'after_sha': '908094714b5478aab4ec9eeb9de56ca8d4d50662', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': [], 'modified': ['Languages/po/ar.po', 'Languages/po/ca.po', 'Languages/po/cs.po', 'Languages/po/da.po', 'Languages/po/de.po', 'Languages/po/dolphin-emu.pot', 'Languages/po/el.po', 'Languages/po/en.po', 'Languages/po/es.po', 'Languages/po/fa.po', 'Languages/po/fi.po', 'Languages/po/fr.po', 'Languages/po/hr.po', 'Languages/po/hu.po', 'Languages/po/it.po', 'Languages/po/ja.po', 'Languages/po/ko.po', 'Languages/po/ms.po', 'Languages/po/nb.po', 'Languages/po/nl.po', 'Languages/po/pl.po', 'Languages/po/pt.po', 'Languages/po/pt_BR.po', 'Languages/po/ro.po', 'Languages/po/ru.po', 'Languages/po/sr.po', 'Languages/po/sv.po', 'Languages/po/tr.po', 'Languages/po/zh_CN.po', 'Languages/po/zh_TW.po'], 'removed': [], 'message': 'Translation resources sync with Transifex', 'url': 'https://github.com/dolphin-emu/dolphin/commit/908094714b5478aab4ec9eeb9de56ca8d4d50662', 'hash': '908094714b5478aab4ec9eeb9de56ca8d4d50662'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T15:44:00.912055	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': '1d42ae22ddcffcd3b324809726a94c6b89417169', 'after_sha': '0d2c130211945e6feb7ad14e37ed9ce75ceff766', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-index.html'], 'removed': [], 'message': 'downloads: Update Visual C++ redistributable link.', 'url': 'https://github.com/dolphin-emu/www/commit/df797f11f42b1f7fbe5ba2747bc02abc5207c5ed', 'hash': 'df797f11f42b1f7fbe5ba2747bc02abc5207c5ed'}, {'author': {'name': 'OatmealDome', 'email': 'OatmealDome@users.noreply.github.com', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-index.html'], 'removed': [], 'message': 'Merge pull request #168 from jordan-woyak/vcredist-link\n\ndownloads: Update Visual C++ redistributable link.', 'url': 'https://github.com/dolphin-emu/www/commit/0d2c130211945e6feb7ad14e37ed9ce75ceff766', 'hash': '0d2c130211945e6feb7ad14e37ed9ce75ceff766'}], 'base_ref_name': None, 'ref_name': 'stable', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T15:42:55.568270	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': 'c4b54a0a50f331d8f588ac8d0546d0c06713fbb1', 'after_sha': '1d42ae22ddcffcd3b324809726a94c6b89417169', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-index.html'], 'removed': [], 'message': 'downloads: Add the releases flatpak repository', 'url': 'https://github.com/dolphin-emu/www/commit/65ef9842da7630f24f57f8e72716c4b4771dbb7c', 'hash': '65ef9842da7630f24f57f8e72716c4b4771dbb7c'}, {'author': {'name': 'OatmealDome', 'email': 'OatmealDome@users.noreply.github.com', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-index.html'], 'removed': [], 'message': 'Merge pull request #166 from JoshuaVandaele/relflatpakrepo\n\ndownloads: Add the releases flatpak repository', 'url': 'https://github.com/dolphin-emu/www/commit/1d42ae22ddcffcd3b324809726a94c6b89417169', 'hash': '1d42ae22ddcffcd3b324809726a94c6b89417169'}], 'base_ref_name': None, 'ref_name': 'stable', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T15:41:11.452764	{'source': 'ghhookparser', 'repo': 'dolphin-emu/www', 'pusher': 'OatmealDome', 'before_sha': 'a752fb3e9bad2d563341625dec3971f4bb763b43', 'after_sha': 'c4b54a0a50f331d8f588ac8d0546d0c06713fbb1', 'commits': [{'author': {'name': 'Amphitryon', 'email': '17864580+Amphitryon0@users.noreply.github.com', 'username': 'Amphitryon0'}, 'distinct': False, 'added': [], 'modified': ['dolweb/downloads/views.py'], 'removed': [], 'message': 'downloads: Handle duplicate version names\n\nIf there is more than one version on a branch with a given shortrev,\nget_object_or_404 would raise a MultipleObjectsReturned exception. It is\nbetter just to pick one. Since these duplicate versions come from force\npushes, the oldest should be the original and thus the most useful one\nto pick.', 'url': 'https://github.com/dolphin-emu/www/commit/1cb1285d820a8a867522590d723600a63e26e144', 'hash': '1cb1285d820a8a867522590d723600a63e26e144'}, {'author': {'name': 'Amphitryon', 'email': '17864580+Amphitryon0@users.noreply.github.com', 'username': 'Amphitryon0'}, 'distinct': False, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-view-devrel.html', 'dolweb/downloads/views.py'], 'removed': [], 'message': "downloads: Inform user of duplicate version names\n\nThis information is included for hash-based lookups as well as\nbranch+shortrev-based since it's relevant in either case.", 'url': 'https://github.com/dolphin-emu/www/commit/d4131e3d0b5b534855dc51d1fd79bf38a68fec6a', 'hash': 'd4131e3d0b5b534855dc51d1fd79bf38a68fec6a'}, {'author': {'name': 'OatmealDome', 'email': 'OatmealDome@users.noreply.github.com', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['dolweb/downloads/templates/downloads-view-devrel.html', 'dolweb/downloads/views.py'], 'removed': [], 'message': 'Merge pull request #165 from Amphitryon0/duplicate-versions\n\ndownloads: Handle duplicate version names', 'url': 'https://github.com/dolphin-emu/www/commit/c4b54a0a50f331d8f588ac8d0546d0c06713fbb1', 'hash': 'c4b54a0a50f331d8f588ac8d0546d0c06713fbb1'}], 'base_ref_name': None, 'ref_name': 'stable', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T04:49:12.673105	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'fc0aafca3b84503b42da93023ae986faa0b3d029', 'after_sha': '8fa725d5e4feb3523f6c97d81a7896e94a47b5cd', 'commits': [{'author': {'name': 'Dr. Dystopia', 'email': 'jonis9898@hotmail.com', 'username': 'tygyh'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinTool/ExtractCommand.cpp'], 'removed': [], 'message': 'DolphinTool: Make parameter constant', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fe657b9759f04680ef3c6be827a86bc7bfdd226e', 'hash': 'fe657b9759f04680ef3c6be827a86bc7bfdd226e'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinTool/ExtractCommand.cpp'], 'removed': [], 'message': 'Merge pull request #13573 from tygyh/DolphinTool-Make-parameter-constant\n\nDolphinTool: Make parameter constant', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8fa725d5e4feb3523f6c97d81a7896e94a47b5cd', 'hash': '8fa725d5e4feb3523f6c97d81a7896e94a47b5cd'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T04:48:48.323643	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'f675048768b0ca02729cc3e288f0841514c58907', 'after_sha': 'fc0aafca3b84503b42da93023ae986faa0b3d029', 'commits': [{'author': {'name': 'Dr. Dystopia', 'email': 'jonis9898@hotmail.com', 'username': 'tygyh'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h', 'Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h'], 'removed': [], 'message': 'UCodes: Make functions `static`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/564e7c33202f487a53cc42f8f77e4abef71cde5c', 'hash': '564e7c33202f487a53cc42f8f77e4abef71cde5c'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/DSPHLE/UCodes/AXWii.h', 'Source/Core/Core/HW/DSPHLE/UCodes/Zelda.h'], 'removed': [], 'message': 'Merge pull request #13577 from tygyh/UCodes-Make-functions-static\n\nUCodes: Make functions static', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fc0aafca3b84503b42da93023ae986faa0b3d029', 'hash': 'fc0aafca3b84503b42da93023ae986faa0b3d029'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T04:48:29.942995	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': '1cea31c75a98b22c8ddf6bd77dc3572c365913eb', 'after_sha': 'f675048768b0ca02729cc3e288f0841514c58907', 'commits': [{'author': {'name': 'Dr. Dystopia', 'email': 'jonis9898@hotmail.com', 'username': 'tygyh'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp', 'Source/Core/Core/HW/WiimoteEmu/DesiredWiimoteState.cpp', 'Source/Core/Core/HW/WiimoteReal/IOWin.cpp'], 'removed': [], 'message': 'Core/HW: Remove redundant empty lambda parameter lists', 'url': 'https://github.com/dolphin-emu/dolphin/commit/467a568f60f8f3622d547db4135e59158ee3fabf', 'hash': '467a568f60f8f3622d547db4135e59158ee3fabf'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/HW/DSPHLE/UCodes/Zelda.cpp', 'Source/Core/Core/HW/WiimoteEmu/DesiredWiimoteState.cpp', 'Source/Core/Core/HW/WiimoteReal/IOWin.cpp'], 'removed': [], 'message': 'Merge pull request #13578 from tygyh/Core/HW-Remove-redundant-empty-lambda-parameter-lists\n\nCore/HW: Remove redundant empty lambda parameter lists', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f675048768b0ca02729cc3e288f0841514c58907', 'hash': 'f675048768b0ca02729cc3e288f0841514c58907'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T04:28:21.111078	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '3025cd472ce86edf26cd2894718ab6901d1fd920', 'after_sha': '1cea31c75a98b22c8ddf6bd77dc3572c365913eb', 'commits': [{'author': {'name': 'LillyJadeKatrin', 'email': 'lilly.kitty.1988@gmail.com', 'username': 'LillyJadeKatrin'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/MainWindow.cpp'], 'removed': [], 'message': 'Fix debugger disabled bug\n\nFixing an oversight: this was causing the debugger to be disabled if achievements were disabled but hardcore mode was still enabled in the .ini. This fix properly checks for hardcore state via AchievementManager which takes both settings into account.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/022bc3bf8daba28ac75cd674c7721160be7a931f', 'hash': '022bc3bf8daba28ac75cd674c7721160be7a931f'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/MainWindow.cpp'], 'removed': [], 'message': 'Merge pull request #13580 from LillyJadeKatrin/retroachievements-de-bug-debug\n\nFix debugger disabled bug', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1cea31c75a98b22c8ddf6bd77dc3572c365913eb', 'hash': '1cea31c75a98b22c8ddf6bd77dc3572c365913eb'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-24T04:25:36.870905	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '879a8889aacd3be6707e6b663f1dac8de09c9941', 'after_sha': '3025cd472ce86edf26cd2894718ab6901d1fd920', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/OH0/OH0.cpp'], 'removed': [], 'message': "IOS: Remove from m_opened_devices in OH0::OnDeviceChange\n\nI've been playing Rock Band 3 recently and have experienced a bug where\nsometimes if you disconnect and reconnect a USB microphone, the game\nwon't pick up on it connecting, not even it you disconnect and reconnect\nit again. An investigation into what's going on inside Dolphin shows\nthat when the game triggers a call to OH0::DeviceOpen after the device\nhas been reinserted, Dolphin doesn't open the device because it's\nalready present in m_opened_devices.\n\nRemoving the device from m_opened_devices after calling OH0::TriggerHook\nin OH0::OnDeviceChange resolves this specific issue in my testing. Doing\nthis matches us removing the device from m_opened_devices after calling\nOH0::TriggerHook in OH0::DeviceClose, but I haven't looked at exactly\nwhat real IOS does.\n\nI have been able to reproduce a much rarer issue that has the same\nsymptoms on the surface but where OH0::DeviceOpen gets past its\nm_opened_devices check. I'm currently not sure what the cause of this\nremaining issue is.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/bda1f379b7cefa4bdc4c3b4d6210003018d0f4b4', 'hash': 'bda1f379b7cefa4bdc4c3b4d6210003018d0f4b4'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/USB/OH0/OH0.cpp'], 'removed': [], 'message': 'Merge pull request #13491 from JosJuice/oh0-removed-opened\n\nIOS: Remove from m_opened_devices in OH0::OnDeviceChange', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3025cd472ce86edf26cd2894718ab6901d1fd920', 'hash': '3025cd472ce86edf26cd2894718ab6901d1fd920'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T20:19:17.744667	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'AdmiralCurtiss', 'before_sha': '6c751fb722ebe862071cccb63cc92f781fbd0020', 'after_sha': '879a8889aacd3be6707e6b663f1dac8de09c9941', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Common/SPSCQueue.h', 'Source/Core/Core/CoreTiming.h', 'Source/Core/Core/HW/DVD/DVDThread.h', 'Source/Core/Core/NetPlayClient.h', 'Source/Core/Core/NetPlayServer.h', 'Source/Core/VideoCommon/PerformanceTracker.h', 'Source/UnitTests/Common/SPSCQueueTest.cpp'], 'removed': [], 'message': 'Common: SPSCQueue cleanups and improvements.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/af960651e81edf9fd57aba8e19857a5aa48ca184', 'hash': 'af960651e81edf9fd57aba8e19857a5aa48ca184'}, {'author': {'name': 'Admiral H. Curtiss', 'email': 'pikachu025@gmail.com', 'username': 'AdmiralCurtiss'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Common/SPSCQueue.h', 'Source/Core/Core/CoreTiming.h', 'Source/Core/Core/HW/DVD/DVDThread.h', 'Source/Core/Core/NetPlayClient.h', 'Source/Core/Core/NetPlayServer.h', 'Source/Core/VideoCommon/PerformanceTracker.h', 'Source/UnitTests/Common/SPSCQueueTest.cpp'], 'removed': [], 'message': 'Merge pull request #13431 from jordan-woyak/spsc-waiting\n\nCommon: SPSCQueue cleanups and improvements.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/879a8889aacd3be6707e6b663f1dac8de09c9941', 'hash': '879a8889aacd3be6707e6b663f1dac8de09c9941'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T18:30:41.832235	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'c44418a4d93385b622d2d4c180fd629d7314193a', 'after_sha': '6c751fb722ebe862071cccb63cc92f781fbd0020', 'commits': [{'author': {'name': 'Martino Fontana', 'email': 'tinozzo123@gmail.com', 'username': 'SuperSamus'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'DolphinQt: Remove unused variables from `AdvancedPane.h`\nSmall oversight from #13422.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/e75123557453e27bea32f1ec3627aa1c1fe6306d', 'hash': 'e75123557453e27bea32f1ec3627aa1c1fe6306d'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'Merge pull request #13570 from SuperSamus/advanced-panel-unused\n\nDolphinQt: Remove unused variables from `AdvancedPane.h`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6c751fb722ebe862071cccb63cc92f781fbd0020', 'hash': '6c751fb722ebe862071cccb63cc92f781fbd0020'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T15:08:53.176197	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JosJuice', 'before_sha': '8f3483fdd487b9831b7fbf484273ba967ff2888a', 'after_sha': 'c44418a4d93385b622d2d4c180fd629d7314193a', 'commits': [{'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': False, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformTab.kt'], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheManager.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/Platform.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java'], 'removed': [], 'message': "Android: Update platform enum values\n\n71f654c added a new platform in the middle of the C++ platform enum\nwithout updating the corresponding Android code, making the Android code\nincorrectly treat Wii discs as WAD files, WAD files as DOL/ELF files,\nand so on. This commit fixes the problem.\n\nTo be able to add the new Triforce entry into the Platform enum without\nit leading to the UI getting an additional tab, I'm splitting the enum\ninto Platform and PlatformTab. Platform now exactly matches the C++\nenum (previously it excluded ELFOrDOL), and PlatformTab has the same\ncontent as the old Platform.", 'url': 'https://github.com/dolphin-emu/dolphin/commit/25fdde4204e5bb1a747d25b5acd3f691638aee97', 'hash': '25fdde4204e5bb1a747d25b5acd3f691638aee97'}, {'author': {'name': 'JosJuice', 'email': 'josjuice@gmail.com', 'username': 'JosJuice'}, 'distinct': True, 'added': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformTab.kt'], 'modified': ['Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/adapters/PlatformPagerAdapter.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/dialogs/GamePropertiesDialog.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/GameFileCacheManager.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/services/SyncProgramsJobService.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/MainActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/main/TvMainActivity.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/Platform.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/ui/platform/PlatformGamesFragment.kt', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AppLinkHelper.java', 'Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/TvUtil.java'], 'removed': [], 'message': 'Merge pull request #13561 from JosJuice/android-renumbered-platforms\n\nAndroid: Update platform enum values', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c44418a4d93385b622d2d4c180fd629d7314193a', 'hash': 'c44418a4d93385b622d2d4c180fd629d7314193a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T05:01:49.855484	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'd04e9e79a6c8ab59f8d273664c95e35e30354de7', 'after_sha': '8f3483fdd487b9831b7fbf484273ba967ff2888a', 'commits': [{'author': {'name': 'LillyJadeKatrin', 'email': 'lilly.kitty.1988@gmail.com', 'username': 'LillyJadeKatrin'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.cpp'], 'removed': [], 'message': 'Fix memory bounds error in achievements dev\n\nThis particular out of bounds error was causing every memory read at the far end of memory to return all zeroes.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8b610101bcf327c481f854c9bd33df9fe8245b3d', 'hash': '8b610101bcf327c481f854c9bd33df9fe8245b3d'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.cpp'], 'removed': [], 'message': 'Merge pull request #13565 from LillyJadeKatrin/retroachievements-end-of-memory-bug\n\nFix memory bounds error in achievements dev', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8f3483fdd487b9831b7fbf484273ba967ff2888a', 'hash': '8f3483fdd487b9831b7fbf484273ba967ff2888a'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T04:47:00.811961	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'OatmealDome', 'before_sha': '116bd3a031079379b85b118e2a48c86d20e26084', 'after_sha': 'd04e9e79a6c8ab59f8d273664c95e35e30354de7', 'commits': [{'author': {'name': 'OatmealDome', 'email': 'julian@oatmealdome.me', 'username': 'OatmealDome'}, 'distinct': False, 'added': [], 'modified': ['BuildMacOSUniversalBinary.py'], 'removed': [], 'message': 'BuildMacOSUniversalBinary: Explicitly specify CMAKE_OSX_DEPLOYMENT_TARGET in CMake flags\nIf the build folder is created from an older commit and this flag is not set, the last value set for this flag will be used instead.\nThis is currently happening on our macOS build machine, causing macOS 10.15 to still be used as the deployment target.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/968b0cff4409492ec9aca8adee5e160edba64b9f', 'hash': '968b0cff4409492ec9aca8adee5e160edba64b9f'}, {'author': {'name': 'OatmealDome', 'email': 'OatmealDome@users.noreply.github.com', 'username': 'OatmealDome'}, 'distinct': True, 'added': [], 'modified': ['BuildMacOSUniversalBinary.py'], 'removed': [], 'message': 'Merge pull request #13566 from OatmealDome/macos-11-fix\n\nBuildMacOSUniversalBinary: Explicitly specify CMAKE_OSX_DEPLOYMENT_TARGET in CMake flags', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d04e9e79a6c8ab59f8d273664c95e35e30354de7', 'hash': 'd04e9e79a6c8ab59f8d273664c95e35e30354de7'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T03:05:33.237951	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': 'c4f65febf3c1845da4b15ecfedf11e9735b13aa7', 'after_sha': '116bd3a031079379b85b118e2a48c86d20e26084', 'commits': [{'author': {'name': 'Joshua Vandaële', 'email': 'joshua@vandaele.software', 'username': 'JoshuaVandaele'}, 'distinct': False, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp', 'Source/Core/Core/IOS/USB/Bluetooth/BTReal.h', 'Source/Core/Core/IOS/USB/Host.cpp', 'Source/Core/Core/IOS/USB/Host.h', 'Source/Core/DolphinQt/Config/ControllersWindow.cpp', 'Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp', 'Source/Core/DolphinQt/Config/WiimoteControllersWidget.h'], 'removed': [], 'message': 'Add a GUI option to select a bluetooth device', 'url': 'https://github.com/dolphin-emu/dolphin/commit/4773a6f323537fb5bff9fd19eea69787f2927ee7', 'hash': '4773a6f323537fb5bff9fd19eea69787f2927ee7'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['CMakeLists.txt', 'Source/Core/Core/IOS/USB/Bluetooth/BTReal.cpp', 'Source/Core/Core/IOS/USB/Bluetooth/BTReal.h', 'Source/Core/Core/IOS/USB/Host.cpp', 'Source/Core/Core/IOS/USB/Host.h', 'Source/Core/DolphinQt/Config/ControllersWindow.cpp', 'Source/Core/DolphinQt/Config/WiimoteControllersWidget.cpp', 'Source/Core/DolphinQt/Config/WiimoteControllersWidget.h'], 'removed': [], 'message': 'Merge pull request #13382 from JoshuaVandaele/btadapterchoice\n\nAdd a GUI option to select a bluetooth device', 'url': 'https://github.com/dolphin-emu/dolphin/commit/116bd3a031079379b85b118e2a48c86d20e26084', 'hash': '116bd3a031079379b85b118e2a48c86d20e26084'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T02:27:16.571858	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': '871073eee2fd154db09c64dd69719b572a9cf052', 'after_sha': 'c4f65febf3c1845da4b15ecfedf11e9735b13aa7', 'commits': [{'author': {'name': 'Tillmann Karras', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'Fix building with USE_RETRO_ACHIEVEMENTS=OFF', 'url': 'https://github.com/dolphin-emu/dolphin/commit/609165b62bfa5c712a54caee3c1e103e7c674c3a', 'hash': '609165b62bfa5c712a54caee3c1e103e7c674c3a'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/AchievementManager.h'], 'removed': [], 'message': 'Merge pull request #13563 from Tilka/rcheevos\n\nFix building with USE_RETRO_ACHIEVEMENTS=OFF', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c4f65febf3c1845da4b15ecfedf11e9735b13aa7', 'hash': 'c4f65febf3c1845da4b15ecfedf11e9735b13aa7'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T02:26:50.441338	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'Tilka', 'before_sha': '31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7', 'after_sha': '871073eee2fd154db09c64dd69719b572a9cf052', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/Boot/Boot.cpp'], 'removed': [], 'message': 'Core/Boot: Fix unused variable warning.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/00544e4dff252456784d69f84d241c962d5f57a5', 'hash': '00544e4dff252456784d69f84d241c962d5f57a5'}, {'author': {'name': 'Tilka', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/Boot/Boot.cpp'], 'removed': [], 'message': 'Merge pull request #13564 from jordan-woyak/triforce_ipl-warning\n\nCore/Boot: Fix unused variable warning.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/871073eee2fd154db09c64dd69719b572a9cf052', 'hash': '871073eee2fd154db09c64dd69719b572a9cf052'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T01:00:04.861108	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '0fd090ce198a247c71deaaa0aef9b12c142ed13d', 'after_sha': '31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7', 'commits': [{'author': {'name': 'Dr. Dystopia', 'email': 'jonis9898@hotmail.com', 'username': 'tygyh'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DiscIO/DirectoryBlob.cpp', 'Source/Core/DiscIO/DirectoryBlob.h', 'Source/Core/DiscIO/DiscScrubber.cpp', 'Source/Core/DiscIO/DiscUtils.cpp', 'Source/Core/DiscIO/DiscUtils.h', 'Source/Core/DiscIO/Enums.cpp', 'Source/Core/DiscIO/GameModDescriptor.cpp', 'Source/Core/DiscIO/RiivolutionPatcher.cpp', 'Source/Core/DiscIO/VolumeVerifier.cpp'], 'removed': [], 'message': 'DiscIO: Remove redundant qualifiers', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ecafd8058fac02ea2bdff72616bcf59c3a21156d', 'hash': 'ecafd8058fac02ea2bdff72616bcf59c3a21156d'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DiscIO/DirectoryBlob.cpp', 'Source/Core/DiscIO/DirectoryBlob.h', 'Source/Core/DiscIO/DiscScrubber.cpp', 'Source/Core/DiscIO/DiscUtils.cpp', 'Source/Core/DiscIO/DiscUtils.h', 'Source/Core/DiscIO/Enums.cpp', 'Source/Core/DiscIO/GameModDescriptor.cpp', 'Source/Core/DiscIO/RiivolutionPatcher.cpp', 'Source/Core/DiscIO/VolumeVerifier.cpp'], 'removed': [], 'message': 'Merge pull request #13540 from tygyh/DiscIO-Remove-redundant-qualifiers\n\nDiscIO: Remove redundant qualifiers', 'url': 'https://github.com/dolphin-emu/dolphin/commit/31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7', 'hash': '31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-23T00:45:49.146619	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'jordan-woyak', 'before_sha': '826625c7be9e0104eb4de4fc2b2d3d7b6184c580', 'after_sha': '0fd090ce198a247c71deaaa0aef9b12c142ed13d', 'commits': [{'author': {'name': 'Tillmann Karras', 'email': 'tilkax@gmail.com', 'username': 'Tilka'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/Core/IOS/Network/IP/Top.cpp'], 'removed': [], 'message': 'IOS/Network: fix -Wmissing-braces warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f6d3f448d974a38fc8a2d9cf0f7cdf0a8f50061e', 'hash': 'f6d3f448d974a38fc8a2d9cf0f7cdf0a8f50061e'}, {'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/Core/IOS/Network/IP/Top.cpp'], 'removed': [], 'message': 'Merge pull request #13550 from Tilka/top_warnings\n\nIOS/Network: fix some warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0fd090ce198a247c71deaaa0aef9b12c142ed13d', 'hash': '0fd090ce198a247c71deaaa0aef9b12c142ed13d'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}
2025-04-22T23:27:23.309506	{'source': 'ghhookparser', 'repo': 'dolphin-emu/dolphin', 'pusher': 'JMC47', 'before_sha': 'ac76deaef066ec412b5a626afc0ebed8592c18c5', 'after_sha': '826625c7be9e0104eb4de4fc2b2d3d7b6184c580', 'commits': [{'author': {'name': 'Jordan Woyak', 'email': 'jordan.woyak@gmail.com', 'username': 'jordan-woyak'}, 'distinct': False, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/AdvancedPane.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'DolphinQt: Use tooltips on Advanced tab.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fdf00050a6b97314533b2913f03a986f7a9424e0', 'hash': 'fdf00050a6b97314533b2913f03a986f7a9424e0'}, {'author': {'name': 'JMC47', 'email': 'JMC4789@gmail.com', 'username': 'JMC47'}, 'distinct': True, 'added': [], 'modified': ['Source/Core/DolphinQt/Settings/AdvancedPane.cpp', 'Source/Core/DolphinQt/Settings/AdvancedPane.h'], 'removed': [], 'message': 'Merge pull request #13422 from jordan-woyak/adv-tooltips\n\nDolphinQt: Use tooltips on Advanced tab.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/826625c7be9e0104eb4de4fc2b2d3d7b6184c580', 'hash': '826625c7be9e0104eb4de4fc2b2d3d7b6184c580'}], 'base_ref_name': None, 'ref_name': 'master', 'ref_type': 'heads', 'created': False, 'deleted': False, 'forced': False, 'type': 'gh_push'}

Recent 'internal_log' events

2025-04-26T05:19:15.925826	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:19:14.957850	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T05:18:13.955820	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,OatmealDome,jordan-woyak,CrossVR,spycrab,JosJuice,hrydgard,leoetlino,skidau,Tilka,Parlane,degasus,Helios747,linkmauve,phire,lioncash,delroth,Pokechu22')", 'type': 'internal_log'}
2025-04-26T05:18:13.545414	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-04-26T05:14:14.956198	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:14:13.979965	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T05:09:13.979508	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:09:12.986835	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T05:08:13.545099	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,OatmealDome,jordan-woyak,CrossVR,spycrab,JosJuice,hrydgard,leoetlino,skidau,Tilka,Parlane,degasus,Helios747,linkmauve,phire,lioncash,delroth,Pokechu22')", 'type': 'internal_log'}
2025-04-26T05:08:13.331866	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-04-26T05:04:12.986165	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T05:04:11.910527	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T04:59:38.049421	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/buildbot.py', 'lineno': 104, 'msg': 'PR %s mergeable: %s (%s)', 'args': "(13594, True, 'clean')", 'type': 'internal_log'}
2025-04-26T04:59:11.906655	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T04:59:10.870749	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T04:58:13.324986	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,OatmealDome,jordan-woyak,CrossVR,spycrab,JosJuice,hrydgard,leoetlino,skidau,Tilka,Parlane,degasus,Helios747,linkmauve,phire,lioncash,delroth,Pokechu22')", 'type': 'internal_log'}
2025-04-26T04:58:13.139122	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-04-26T04:54:10.870304	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T04:54:09.853164	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T04:51:45.156165	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/d57cdgicxlxwmf3m8vzmwj1z0ql74f9g-python3.12-discord-py-2.4.0/lib/python3.12/site-packages/discord/gateway.py', 'lineno': 568, 'msg': 'Shard ID %s has successfully RESUMED session %s.', 'args': "(None, '37ec7e8e69aef3d45bff93e14265edaf')", 'type': 'internal_log'}
2025-04-26T04:49:09.852832	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}
2025-04-26T04:49:08.789773	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'trusted-developers')", 'type': 'internal_log'}
2025-04-26T04:48:13.138850	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/core-developers', 'AdmiralCurtiss,OatmealDome,jordan-woyak,CrossVR,spycrab,JosJuice,hrydgard,leoetlino,skidau,Tilka,Parlane,degasus,Helios747,linkmauve,phire,lioncash,delroth,Pokechu22')", 'type': 'internal_log'}
2025-04-26T04:48:12.891614	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 21, 'msg': 'Refreshing list of trusted users (from %s/%s)', 'args': "('dolphin-emu', 'core-developers')", 'type': 'internal_log'}
2025-04-26T04:44:08.789366	{'source': 'logging', 'level': 'INFO', 'pathname': '/nix/store/7li4q861w03z1qsisqqqg1mc5amfa2wz-python3.12-central-0.1.0/lib/python3.12/site-packages/central/github/authz.py', 'lineno': 30, 'msg': 'New GH %s: %s', 'args': "('dolphin-emu/trusted-developers', 'Alcaro,skylersaleh,K0bin,Phatcat,mandar1jn,kamiyo,hrydgard,vladfi1,ShimmerGlass,degasus,jloehr,ligfx,unknownbrackets,Filoppi,archshift,DacoTaco,Ryanel,galop1n,cristian64,merryhime,Simonx22,deReeperJosh,kayru,mrgreywater,shonumi,randomstuff,SirMangler,leoetlino,Buddybenj,mbc07,JosJuice,Starsam80,mmastrac,Ziek,mathieui,jezze,Sam-Belliveau,BhaaLseN,rohit-n,mitaclaw,Techjar,Lobsterzelda,noahpistilli,glennricster,LillyJadeKatrin,LPFaint99,LAGonauta,gwicks,TryTwo,mimimi085181,Parlane,marcan,CrystalGamma,JoshuaVandaele,Zopolis4,nullgemm,JordanTheToaster,yourWaifu,Dentomologist,smurf3tte,MayImilae,RisingFog,skidau,hdcmeta,ColinDTaylor,Hydr8gon,Geotale,Ebola16,spxtr,Linktothepast,hackbar,zackhow,RachelBryk,riking,SuperSamus,Tilka,moncefmechri,Helios747,tygyh,magumagu,phire,iwubcode,JMC47,OatmealDome,Gamer64ytb,bentley,NanoByte011,sepalani,FioraAeterna,rlnilsen,delroth,dreamsyntax,nickbeth,TellowKrinkle,spycrab,malleoz,Sintendo,EmptyChaos,krnlyng,Tinob,booto,CelestialAmber,comex,adamdmoss,aroulin,PatrickFerry,linkmauve,neobrain,Pokechu22,jjdelvalle,hthh,aldelaro5,CasualPokePlayer,rukai,endrift,Orphis,Stevoisiak,lioncash,magcius,OrN,AdmiralCurtiss,orbea,meffij,CrossVR,jordan-woyak,zopieux,CookiePLMonster,mahdihijazi')", 'type': 'internal_log'}

Recent 'issue' events

2025-04-24T04:46:05.412330	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13743, 'title': 'Darwin implementation for MemArena is broken on macOS Catalina', 'author': 'OatmealDome', 'type': 'issue'}
2025-04-24T04:45:53.029470	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 13743, 'title': 'Darwin implementation for MemArena is broken on macOS Catalina', 'author': 'OatmealDome', 'type': 'issue'}
2025-04-23T22:38:31.823174	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 13793, 'title': 'Dolphin segfaults on quitting in macOS.', 'author': 'svetlyo', 'type': 'issue'}
2025-04-23T00:25:07.507994	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 13792, 'title': 'Gamepad actions no longer being recognized.', 'author': 'Billiard26', 'type': 'issue'}
2025-04-23T00:21:02.839341	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 13792, 'title': 'Gamepad actions no longer being recognized.', 'author': 'Kyuyrii', 'type': 'issue'}
2025-04-22T20:12:15.685217	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 13787, 'title': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'author': 'Billiard26', 'type': 'issue'}
2025-04-22T17:50:33.149898	{'source': 'redmine', 'new': False, 'update': 7, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'JosJuice', 'type': 'issue'}
2025-04-22T17:38:21.127395	{'source': 'redmine', 'new': False, 'update': 6, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'InfoManiac742', 'type': 'issue'}
2025-04-22T00:37:44.739186	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 13787, 'title': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'author': 'Billiard26', 'type': 'issue'}
2025-04-22T00:37:09.298771	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'Billiard26', 'type': 'issue'}
2025-04-21T22:13:39.784512	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'InfoManiac742', 'type': 'issue'}
2025-04-21T22:09:06.185767	{'source': 'redmine', 'new': False, 'update': 6, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'firehunprime', 'type': 'issue'}
2025-04-21T22:01:49.957136	{'source': 'redmine', 'new': False, 'update': 5, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'Billiard26', 'type': 'issue'}
2025-04-21T21:58:36.179924	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'InfoManiac742', 'type': 'issue'}
2025-04-21T21:57:08.758299	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'InfoManiac742', 'type': 'issue'}
2025-04-21T21:55:47.421238	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 13791, 'title': 'Dolphin crashes upon pausing emulation', 'author': 'InfoManiac742', 'type': 'issue'}
2025-04-21T21:41:58.988837	{'source': 'redmine', 'new': False, 'update': 4, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'firehunprime', 'type': 'issue'}
2025-04-21T21:07:15.780226	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'Billiard26', 'type': 'issue'}
2025-04-21T21:04:51.324695	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'firehunprime', 'type': 'issue'}
2025-04-21T21:02:02.078877	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13785, 'title': 'Dolphin fails to play fifologs with new MemArena implementation', 'author': 'OatmealDome', 'type': 'issue'}
2025-04-21T21:02:01.753944	{'source': 'redmine', 'new': True, 'update': 0, 'issue': 13790, 'title': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'author': 'firehunprime', 'type': 'issue'}
2025-04-21T04:35:48.207260	{'source': 'redmine', 'new': False, 'update': 7, 'issue': 13786, 'title': 'GBA integration (internal and external) not working in Pokemon XD: Gale of Darkness', 'author': 'Billiard26', 'type': 'issue'}
2025-04-19T14:54:31.857178	{'source': 'redmine', 'new': False, 'update': 21, 'issue': 12254, 'title': 'Widescreen Heuristic Mega-Issue', 'author': 'VladimirVSC', 'type': 'issue'}
2025-04-19T08:17:15.517565	{'source': 'redmine', 'new': False, 'update': 3, 'issue': 13787, 'title': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'author': 'JosJuice', 'type': 'issue'}
2025-04-18T03:37:38.680594	{'source': 'redmine', 'new': False, 'update': 2, 'issue': 13789, 'title': 'problems with recents versions of dolphin (that includes dev versions and stables)', 'author': 'Billiard26', 'type': 'issue'}

Recent 'new_dev_version' events

2025-04-25T00:56:46.281468	{'source': 'repomanager', 'hash': '805307f432dba079caf7339122a07de5b90c4b47', 'branch': 'master', 'shortrev': '2503a-328', 'author': 'Tilka', 'message': 'Merge pull request #13451 from vyuuui/numeric_labels\n\nAdd numeric label support to assembler', 'url': 'https://github.com/dolphin-emu/dolphin/commit/805307f432dba079caf7339122a07de5b90c4b47', 'type': 'new_dev_version'}
2025-04-25T00:49:55.335913	{'source': 'repomanager', 'hash': 'fe307a06c692f9fd0e7ac04e0ecf37f29393f491', 'branch': 'master', 'shortrev': '2503a-326', 'author': 'Tilka', 'message': 'Merge pull request #13476 from jordan-woyak/sdl-header\n\nInputCommon: Move SDL Device class into its own cpp/h files.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fe307a06c692f9fd0e7ac04e0ecf37f29393f491', 'type': 'new_dev_version'}
2025-04-25T00:43:56.647804	{'source': 'repomanager', 'hash': 'a95779add09bf24002ba9e5d0d5987d2c6945e47', 'branch': 'master', 'shortrev': '2503a-324', 'author': 'Tilka', 'message': 'Merge pull request #13506 from JosJuice/android-time-played\n\nAndroid: Show time played in game details', 'url': 'https://github.com/dolphin-emu/dolphin/commit/a95779add09bf24002ba9e5d0d5987d2c6945e47', 'type': 'new_dev_version'}
2025-04-25T00:41:02.254802	{'source': 'repomanager', 'hash': '5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6', 'branch': 'master', 'shortrev': '2503a-321', 'author': 'Tilka', 'message': 'Merge pull request #13487 from Dentomologist/performancemetrics_fix_window_arrangement\n\nPerformanceMetrics: Fix window arrangement', 'url': 'https://github.com/dolphin-emu/dolphin/commit/5523b9a01b5e2628b3b22a5b97cb78aac0cd83f6', 'type': 'new_dev_version'}
2025-04-25T00:38:39.039163	{'source': 'repomanager', 'hash': '50026ab795c6047d3c7fba7d9cd4d8867c67ba7d', 'branch': 'master', 'shortrev': '2503a-319', 'author': 'Tilka', 'message': 'Merge pull request #13497 from hoogmin/modernize_fs_path\n\nCore/Common/FileUtil.cpp: Use std path utility for automatic path separator handling.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/50026ab795c6047d3c7fba7d9cd4d8867c67ba7d', 'type': 'new_dev_version'}
2025-04-24T21:38:58.366635	{'source': 'repomanager', 'hash': '908094714b5478aab4ec9eeb9de56ca8d4d50662', 'branch': 'master', 'shortrev': '2503a-317', 'author': 'JosJuice', 'message': 'Translation resources sync with Transifex', 'url': 'https://github.com/dolphin-emu/dolphin/commit/908094714b5478aab4ec9eeb9de56ca8d4d50662', 'type': 'new_dev_version'}
2025-04-24T04:49:14.039035	{'source': 'repomanager', 'hash': '8fa725d5e4feb3523f6c97d81a7896e94a47b5cd', 'branch': 'master', 'shortrev': '2503a-316', 'author': 'JMC47', 'message': 'Merge pull request #13573 from tygyh/DolphinTool-Make-parameter-constant\n\nDolphinTool: Make parameter constant', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8fa725d5e4feb3523f6c97d81a7896e94a47b5cd', 'type': 'new_dev_version'}
2025-04-24T04:48:49.623566	{'source': 'repomanager', 'hash': 'fc0aafca3b84503b42da93023ae986faa0b3d029', 'branch': 'master', 'shortrev': '2503a-314', 'author': 'JMC47', 'message': 'Merge pull request #13577 from tygyh/UCodes-Make-functions-static\n\nUCodes: Make functions static', 'url': 'https://github.com/dolphin-emu/dolphin/commit/fc0aafca3b84503b42da93023ae986faa0b3d029', 'type': 'new_dev_version'}
2025-04-24T04:48:31.273489	{'source': 'repomanager', 'hash': 'f675048768b0ca02729cc3e288f0841514c58907', 'branch': 'master', 'shortrev': '2503a-312', 'author': 'JMC47', 'message': 'Merge pull request #13578 from tygyh/Core/HW-Remove-redundant-empty-lambda-parameter-lists\n\nCore/HW: Remove redundant empty lambda parameter lists', 'url': 'https://github.com/dolphin-emu/dolphin/commit/f675048768b0ca02729cc3e288f0841514c58907', 'type': 'new_dev_version'}
2025-04-24T04:28:22.639012	{'source': 'repomanager', 'hash': '1cea31c75a98b22c8ddf6bd77dc3572c365913eb', 'branch': 'master', 'shortrev': '2503a-310', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13580 from LillyJadeKatrin/retroachievements-de-bug-debug\n\nFix debugger disabled bug', 'url': 'https://github.com/dolphin-emu/dolphin/commit/1cea31c75a98b22c8ddf6bd77dc3572c365913eb', 'type': 'new_dev_version'}
2025-04-24T04:25:38.634001	{'source': 'repomanager', 'hash': '3025cd472ce86edf26cd2894718ab6901d1fd920', 'branch': 'master', 'shortrev': '2503a-308', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13491 from JosJuice/oh0-removed-opened\n\nIOS: Remove from m_opened_devices in OH0::OnDeviceChange', 'url': 'https://github.com/dolphin-emu/dolphin/commit/3025cd472ce86edf26cd2894718ab6901d1fd920', 'type': 'new_dev_version'}
2025-04-23T20:19:19.153924	{'source': 'repomanager', 'hash': '879a8889aacd3be6707e6b663f1dac8de09c9941', 'branch': 'master', 'shortrev': '2503a-306', 'author': 'Admiral H. Curtiss', 'message': 'Merge pull request #13431 from jordan-woyak/spsc-waiting\n\nCommon: SPSCQueue cleanups and improvements.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/879a8889aacd3be6707e6b663f1dac8de09c9941', 'type': 'new_dev_version'}
2025-04-23T18:30:43.263444	{'source': 'repomanager', 'hash': '6c751fb722ebe862071cccb63cc92f781fbd0020', 'branch': 'master', 'shortrev': '2503a-304', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13570 from SuperSamus/advanced-panel-unused\n\nDolphinQt: Remove unused variables from `AdvancedPane.h`', 'url': 'https://github.com/dolphin-emu/dolphin/commit/6c751fb722ebe862071cccb63cc92f781fbd0020', 'type': 'new_dev_version'}
2025-04-23T15:08:54.667722	{'source': 'repomanager', 'hash': 'c44418a4d93385b622d2d4c180fd629d7314193a', 'branch': 'master', 'shortrev': '2503a-302', 'author': 'JosJuice', 'message': 'Merge pull request #13561 from JosJuice/android-renumbered-platforms\n\nAndroid: Update platform enum values', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c44418a4d93385b622d2d4c180fd629d7314193a', 'type': 'new_dev_version'}
2025-04-23T05:01:51.504386	{'source': 'repomanager', 'hash': '8f3483fdd487b9831b7fbf484273ba967ff2888a', 'branch': 'master', 'shortrev': '2503a-300', 'author': 'JMC47', 'message': 'Merge pull request #13565 from LillyJadeKatrin/retroachievements-end-of-memory-bug\n\nFix memory bounds error in achievements dev', 'url': 'https://github.com/dolphin-emu/dolphin/commit/8f3483fdd487b9831b7fbf484273ba967ff2888a', 'type': 'new_dev_version'}
2025-04-23T04:47:02.159420	{'source': 'repomanager', 'hash': 'd04e9e79a6c8ab59f8d273664c95e35e30354de7', 'branch': 'master', 'shortrev': '2503a-298', 'author': 'OatmealDome', 'message': 'Merge pull request #13566 from OatmealDome/macos-11-fix\n\nBuildMacOSUniversalBinary: Explicitly specify CMAKE_OSX_DEPLOYMENT_TARGET in CMake flags', 'url': 'https://github.com/dolphin-emu/dolphin/commit/d04e9e79a6c8ab59f8d273664c95e35e30354de7', 'type': 'new_dev_version'}
2025-04-23T03:05:34.769292	{'source': 'repomanager', 'hash': '116bd3a031079379b85b118e2a48c86d20e26084', 'branch': 'master', 'shortrev': '2503a-296', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13382 from JoshuaVandaele/btadapterchoice\n\nAdd a GUI option to select a bluetooth device', 'url': 'https://github.com/dolphin-emu/dolphin/commit/116bd3a031079379b85b118e2a48c86d20e26084', 'type': 'new_dev_version'}
2025-04-23T02:27:18.169145	{'source': 'repomanager', 'hash': 'c4f65febf3c1845da4b15ecfedf11e9735b13aa7', 'branch': 'master', 'shortrev': '2503a-294', 'author': 'Tilka', 'message': 'Merge pull request #13563 from Tilka/rcheevos\n\nFix building with USE_RETRO_ACHIEVEMENTS=OFF', 'url': 'https://github.com/dolphin-emu/dolphin/commit/c4f65febf3c1845da4b15ecfedf11e9735b13aa7', 'type': 'new_dev_version'}
2025-04-23T02:26:52.163140	{'source': 'repomanager', 'hash': '871073eee2fd154db09c64dd69719b572a9cf052', 'branch': 'master', 'shortrev': '2503a-292', 'author': 'Tilka', 'message': 'Merge pull request #13564 from jordan-woyak/triforce_ipl-warning\n\nCore/Boot: Fix unused variable warning.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/871073eee2fd154db09c64dd69719b572a9cf052', 'type': 'new_dev_version'}
2025-04-23T01:00:06.412047	{'source': 'repomanager', 'hash': '31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7', 'branch': 'master', 'shortrev': '2503a-290', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13540 from tygyh/DiscIO-Remove-redundant-qualifiers\n\nDiscIO: Remove redundant qualifiers', 'url': 'https://github.com/dolphin-emu/dolphin/commit/31a3de819d7d8d5cc6a39cd3f835ad0dac7f70a7', 'type': 'new_dev_version'}
2025-04-23T00:45:50.460474	{'source': 'repomanager', 'hash': '0fd090ce198a247c71deaaa0aef9b12c142ed13d', 'branch': 'master', 'shortrev': '2503a-288', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13550 from Tilka/top_warnings\n\nIOS/Network: fix some warnings', 'url': 'https://github.com/dolphin-emu/dolphin/commit/0fd090ce198a247c71deaaa0aef9b12c142ed13d', 'type': 'new_dev_version'}
2025-04-22T23:27:24.955247	{'source': 'repomanager', 'hash': '826625c7be9e0104eb4de4fc2b2d3d7b6184c580', 'branch': 'master', 'shortrev': '2503a-286', 'author': 'JMC47', 'message': 'Merge pull request #13422 from jordan-woyak/adv-tooltips\n\nDolphinQt: Use tooltips on Advanced tab.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/826625c7be9e0104eb4de4fc2b2d3d7b6184c580', 'type': 'new_dev_version'}
2025-04-22T21:30:55.232693	{'source': 'repomanager', 'hash': 'ac76deaef066ec412b5a626afc0ebed8592c18c5', 'branch': 'master', 'shortrev': '2503a-284', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13529 from jordan-woyak/StateBuffer\n\nCore/State: Avoid unnecessarily value-initializing large buffers.', 'url': 'https://github.com/dolphin-emu/dolphin/commit/ac76deaef066ec412b5a626afc0ebed8592c18c5', 'type': 'new_dev_version'}
2025-04-22T21:27:16.248453	{'source': 'repomanager', 'hash': 'da84a9f605ee96cd47f651e07d24f26325d25181', 'branch': 'master', 'shortrev': '2503a-280', 'author': 'OatmealDome', 'message': 'Merge pull request #13477 from OatmealDome/macos-11\n\nCMakeLists: Bump minimum macOS to 11.0', 'url': 'https://github.com/dolphin-emu/dolphin/commit/da84a9f605ee96cd47f651e07d24f26325d25181', 'type': 'new_dev_version'}
2025-04-22T21:02:21.364290	{'source': 'repomanager', 'hash': 'afee9a56e96766d4622b1694398704e4c8d57b25', 'branch': 'master', 'shortrev': '2503a-270', 'author': 'Jordan Woyak', 'message': 'Merge pull request #13474 from JosJuice/rock-band-playstation\n\nIOS: Disguise Rock Band PlayStation USB devices as Wii equivalents', 'url': 'https://github.com/dolphin-emu/dolphin/commit/afee9a56e96766d4622b1694398704e4c8d57b25', 'type': 'new_dev_version'}

Recent 'new_release_version' events

2025-04-21T19:08:53.881115	{'source': 'repomanager', 'hash': '0827d9f06d2b467926ede9a636d51075495c2859', 'tag': '2503a', 'author': 'OatmealDome', 'type': 'new_release_version'}

Recent 'notification' events

2025-04-26T05:13:35.923145	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] build for #13594 \x0304failed\x03 on builders [pr-android]: \x1f\x0302https://dolphin.ci/#/builders/22/builds/6365\x03\x1f', 'type': 'notification'}
2025-04-26T05:03:12.036223	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 edited pull request #13594: State: Simplify interthread communication and general cleanups. (\x0306master\x03...\x0306state-cleanups\x03): \x1f\x0302https://dolp.in/pr13594\x03\x1f', 'type': 'notification'}
2025-04-26T05:02:05.763529	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 edited pull request #13594: State: Simplify interthread communication and general cleanups. (\x0306master\x03...\x0306state-cleanups\x03): \x1f\x0302https://dolp.in/pr13594\x03\x1f', 'type': 'notification'}
2025-04-26T04:59:37.632507	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303j\ufeffordan-woyak\x03 opened pull request #13594: State: Simplify interthread communication and general cleanups. (\x0306master\x03...\x0306state-cleanups\x03): \x1f\x0302https://dolp.in/pr13594\x03\x1f', 'type': 'notification'}
2025-04-25T23:43:47.047170	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303D\ufeffentomologist\x03 edited pull request #13593: MainWindow: Fix use-after-free during Dolphin shutdown (\x0306master\x03...\x0306mainwindow_fix_use_after_free_during_dolphin_shutdown\x03): \x1f\x0302https://dolp.in/pr13593\x03\x1f', 'type': 'notification'}
2025-04-25T23:38:59.591890	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303D\ufeffentomologist\x03 opened pull request #13593: Mainwindow: Fix use-after-free during Dolphin shutdown (\x0306master\x03...\x0306mainwindow_fix_use_after_free_during_dolphin_shutdown\x03): \x1f\x0302https://dolp.in/pr13593\x03\x1f', 'type': 'notification'}
2025-04-25T23:35:03.933949	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T23:29:49.466396	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T23:24:08.396406	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 deleted a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T23:24:03.371032	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825838996\x03\x1f', 'type': 'notification'}
2025-04-25T23:23:37.827142	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825838996\x03\x1f', 'type': 'notification'}
2025-04-25T23:22:54.315819	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825838996\x03\x1f', 'type': 'notification'}
2025-04-25T23:17:32.757359	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T23:14:30.392837	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T23:03:18.171781	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T23:00:05.621703	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T22:57:41.604186	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T22:55:42.736455	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T22:54:11.429405	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T22:50:14.806959	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T22:48:58.771886	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T22:47:41.362656	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T22:46:28.780850	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303i\ufeffwubcode\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2829099805\x03\x1f', 'type': 'notification'}
2025-04-25T22:43:53.515059	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}
2025-04-25T22:25:07.093263	{'source': 'notifications', 'msg': '[\x1f\x0313dolphin-emu/dolphin\x03\x1f] \x0303J\ufeffMC47\x03 edited a comment on #13046 (Add VBI Frequency): \x1f\x0302https://dolp.in/pr13046#issuecomment-2825772367\x03\x1f', 'type': 'notification'}

Recent 'pull_request_fifoci_status' events

2025-04-25T13:37:50.782161	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '49d614b15c8dd7d2c80ab9ed06bc1943268c6612', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 12769, 'type': 'pull_request_fifoci_status'}
2025-04-25T13:27:44.515371	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '49d614b15c8dd7d2c80ab9ed06bc1943268c6612', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 12769, 'type': 'pull_request_fifoci_status'}
2025-04-25T01:19:13.542502	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8bb07bf3c40be4564bb9d478af2eadd8384226e7', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13562, 'type': 'pull_request_fifoci_status'}
2025-04-25T01:18:12.129286	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8bb07bf3c40be4564bb9d478af2eadd8384226e7', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13562, 'type': 'pull_request_fifoci_status'}
2025-04-25T00:53:29.886095	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8bb07bf3c40be4564bb9d478af2eadd8384226e7', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13562, 'type': 'pull_request_fifoci_status'}
2025-04-25T00:44:35.047034	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '8bb07bf3c40be4564bb9d478af2eadd8384226e7', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13562, 'type': 'pull_request_fifoci_status'}
2025-04-24T13:29:52.611049	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2045d85b7c6836a0300b83186dcda8e144924148', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T13:16:29.100702	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2045d85b7c6836a0300b83186dcda8e144924148', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T13:08:07.405790	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2045d85b7c6836a0300b83186dcda8e144924148', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T13:00:32.456671	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '2045d85b7c6836a0300b83186dcda8e144924148', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:52:27.973490	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'e28449e7d9caf2014845ef5b6efd8a2d27570ef5', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:45:30.527021	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': 'e28449e7d9caf2014845ef5b6efd8a2d27570ef5', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:39:40.416583	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '268b5ab7b289c06dfc393f99d5c4f489f0dac65d', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:20:02.794404	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '268b5ab7b289c06dfc393f99d5c4f489f0dac65d', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:19:43.371334	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '268b5ab7b289c06dfc393f99d5c4f489f0dac65d', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T12:10:21.458688	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '268b5ab7b289c06dfc393f99d5c4f489f0dac65d', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13583, 'type': 'pull_request_fifoci_status'}
2025-04-24T04:33:56.203346	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '022bc3bf8daba28ac75cd674c7721160be7a931f', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13580, 'type': 'pull_request_fifoci_status'}
2025-04-24T04:11:30.482481	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '022bc3bf8daba28ac75cd674c7721160be7a931f', 'service': 'pr-fifoci-sw-lin-mesa', 'pr': 13580, 'type': 'pull_request_fifoci_status'}
2025-04-24T03:35:02.295066	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '022bc3bf8daba28ac75cd674c7721160be7a931f', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 13580, 'type': 'pull_request_fifoci_status'}
2025-04-24T03:16:24.172677	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '022bc3bf8daba28ac75cd674c7721160be7a931f', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 13580, 'type': 'pull_request_fifoci_status'}
2025-04-24T00:15:28.197707	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'service': 'pr-fifoci-mvk-osx-m1', 'pr': 12769, 'type': 'pull_request_fifoci_status'}
2025-04-24T00:05:38.338651	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '85b29e4f96c9c7f8c4a9b45e38f3932f5da0e96c', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 12769, 'type': 'pull_request_fifoci_status'}
2025-04-23T23:57:03.205273	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '07a353f920da0ba13d203a8ec19dffab5da0529d', 'service': 'pr-fifoci-mtl-osx-m1', 'pr': 12769, 'type': 'pull_request_fifoci_status'}
2025-04-23T22:51:37.524974	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '564e7c33202f487a53cc42f8f77e4abef71cde5c', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13577, 'type': 'pull_request_fifoci_status'}
2025-04-23T22:38:12.865287	{'source': 'buildbot', 'repo': 'dolphin-emu/dolphin', 'hash': '467a568f60f8f3622d547db4135e59158ee3fabf', 'service': 'pr-fifoci-ogl-lin-mesa', 'pr': 13578, 'type': 'pull_request_fifoci_status'}

Recent 'raw_bb_hook' events

2025-04-26T05:20:44.098960	{'source': 'webserver', 'raw': {'buildid': 108490, 'number': 6362, 'builderid': 26, 'buildrequestid': 108598, 'workerid': 9, 'masterid': 1, 'started_at': 1745644305, 'complete_at': 1745644832, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'shortrev': ['45c9f5', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'builderid': [26, 'Builder'], 'buildnumber': [6362, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'branchname': ['pr-13594', 'Change'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-x64', 'Worker'], 'warnings-count': [18, 'WarningCountingShellCommand'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108598, 'buildsetid': 25789, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1745644305, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6362'}, 'type': 'raw_bb_hook'}
2025-04-26T05:15:13.180182	{'source': 'webserver', 'raw': {'buildid': 108489, 'number': 6363, 'builderid': 31, 'buildrequestid': 108600, 'workerid': 4, 'masterid': 1, 'started_at': 1745644299, 'complete_at': 1745644504, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'builderid': [31, 'Builder'], 'buildnumber': [6363, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['c:\\buildbot\\pr-win-dbg-x64', 'Worker'], 'repository': ['', 'Build'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/ff/eb/pr-13594-dolphin-latest-dbg-x64.7z', 'SetProperty']}, 'buildrequest': {'buildrequestid': 108600, 'buildsetid': 25789, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1745644299, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6363'}, 'type': 'raw_bb_hook'}
2025-04-26T05:13:05.621424	{'source': 'webserver', 'raw': {'buildid': 108476, 'number': 6365, 'builderid': 22, 'buildrequestid': 108597, 'workerid': 12, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745644370, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed Gradle (failure)', 'results': 2, 'properties': {'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'branchname': ['pr-13594', 'Change'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'workername': ['android', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'buildername': ['pr-android', 'Builder'], 'builderid': [22, 'Builder'], 'buildnumber': [6365, 'Build'], 'project': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-android', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108597, 'buildsetid': 25789, 'builderid': 22, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6365'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:26.928976	{'source': 'webserver', 'raw': {'buildid': 108480, 'number': 1505, 'builderid': 43, 'buildrequestid': 108601, 'workerid': 13, 'masterid': 1, 'started_at': 1745643582, 'complete_at': 1745644342, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'pr_id': [13594, 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-x64', 'Builder'], 'builderid': [43, 'Builder'], 'workername': ['altair-flatpak', 'Worker'], 'repository': ['', 'Build'], 'buildnumber': [1505, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/2995', 'SetPropertyFromCommand Step'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-x64', 'Worker'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108601, 'buildsetid': 25789, 'builderid': 43, 'priority': 0, 'claimed': True, 'claimed_at': 1745643582, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1745643581, 'complete_at': 1745644342, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 43, 'name': 'pr-flatpak-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/43/builds/1505'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:11.821400	{'source': 'webserver', 'raw': {'buildid': 108474, 'number': 6366, 'builderid': 1, 'buildrequestid': 108591, 'workerid': 9, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745644305, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'builderid': [1, 'Builder'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'project': ['', 'Build'], 'shortrev': ['45c9f5', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-deb-dbg-x64', 'Builder'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['debian', 'Worker'], 'buildnumber': [6366, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-deb-dbg-x64', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'warnings-count': [18, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 108591, 'buildsetid': 25789, 'builderid': 1, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6366'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:11.327118	{'source': 'webserver', 'raw': {'buildid': 108490, 'number': 6362, 'builderid': 26, 'buildrequestid': 108598, 'workerid': 9, 'masterid': 1, 'started_at': 1745644305, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'shortrev': ['45c9f5', 'Change'], 'buildername': ['pr-deb-x64', 'Builder'], 'builderid': [26, 'Builder'], 'buildnumber': [6362, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'branchname': ['pr-13594', 'Change'], 'pr_id': [13594, 'Change'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'workername': ['debian', 'Worker'], 'repository': ['', 'Build'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108598, 'buildsetid': 25789, 'builderid': 26, 'priority': 0, 'claimed': True, 'claimed_at': 1745644305, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6362'}, 'type': 'raw_bb_hook'}
2025-04-26T05:12:11.193581	{'source': 'webserver', 'raw': {'buildid': 108488, 'number': 5452, 'builderid': 35, 'buildrequestid': 108606, 'workerid': 5, 'masterid': 1, 'started_at': 1745644287, 'complete_at': 1745644308, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5452, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-sw-lin-mesa', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'pr_id': [13594, 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'project': ['', 'Build'], 'warnings-count': [5, 'WarningCountingShellCommand']}, 'buildrequest': {'buildrequestid': 108606, 'buildsetid': 25792, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1745644287, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5452'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:57.672918	{'source': 'webserver', 'raw': {'buildid': 108483, 'number': 6361, 'builderid': 13, 'buildrequestid': 108596, 'workerid': 4, 'masterid': 1, 'started_at': 1745643958, 'complete_at': 1745644299, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'buildnumber': [6361, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/03/b5/pr-13594-dolphin-latest-ARM64.7z', 'SetProperty'], 'shortrev': ['45c9f5', 'Change'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'builddir': ['c:\\buildbot\\pr-win-arm64', 'Worker'], 'pr_id': [13594, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108596, 'buildsetid': 25789, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1745643958, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6361'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:56.530651	{'source': 'webserver', 'raw': {'buildid': 108489, 'number': 6363, 'builderid': 31, 'buildrequestid': 108600, 'workerid': 4, 'masterid': 1, 'started_at': 1745644299, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-dbg-x64', 'Builder'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build'], 'project': ['', 'Build'], 'builderid': [31, 'Builder'], 'buildnumber': [6363, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'repository': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108600, 'buildsetid': 25789, 'builderid': 31, 'priority': 0, 'claimed': True, 'claimed_at': 1745644299, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6363'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:38.935196	{'source': 'webserver', 'raw': {'buildid': 108488, 'number': 5452, 'builderid': 35, 'buildrequestid': 108606, 'workerid': 5, 'masterid': 1, 'started_at': 1745644287, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-sw-lin-mesa', 'Builder'], 'builderid': [35, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5452, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [13594, 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108606, 'buildsetid': 25792, 'builderid': 35, 'priority': 0, 'claimed': True, 'claimed_at': 1745644287, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5452'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:29.767896	{'source': 'webserver', 'raw': {'buildid': 108487, 'number': 1440, 'builderid': 41, 'buildrequestid': 108607, 'workerid': 5, 'masterid': 1, 'started_at': 1745644259, 'complete_at': 1745644286, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'builderid': [41, 'Builder'], 'buildnumber': [1440, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-vk-lin-mesa', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/13594/head', 'Build'], 'warnings-count': [5, 'WarningCountingShellCommand'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker']}, 'buildrequest': {'buildrequestid': 108607, 'buildsetid': 25792, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1745644259, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/1440'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:15.875588	{'source': 'webserver', 'raw': {'buildid': 108486, 'number': 5453, 'builderid': 10, 'buildrequestid': 108605, 'workerid': 5, 'masterid': 1, 'started_at': 1745644229, 'complete_at': 1745644259, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build (failure)', 'results': 2, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'pr_id': [13594, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5453, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'builddir': ['/var/lib/fifoci-worker/worker/pr-fifoci-ogl-lin-mesa', 'Worker'], 'warnings-count': [5, 'WarningCountingShellCommand'], 'shortrev': ['45c9f5', 'Trigger'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'basedir': ['/var/lib/fifoci-worker/worker', 'Worker']}, 'buildrequest': {'buildrequestid': 108605, 'buildsetid': 25792, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1745644229, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5453'}, 'type': 'raw_bb_hook'}
2025-04-26T05:11:03.941148	{'source': 'webserver', 'raw': {'buildid': 108487, 'number': 1440, 'builderid': 41, 'buildrequestid': 108607, 'workerid': 5, 'masterid': 1, 'started_at': 1745644259, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'shortrev': ['45c9f5', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'buildername': ['pr-fifoci-vk-lin-mesa', 'Builder'], 'builderid': [41, 'Builder'], 'buildnumber': [1440, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'branch': ['refs/pull/13594/head', 'Build'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'workername': ['altair-fifoci', 'Worker'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108607, 'buildsetid': 25792, 'builderid': 41, 'priority': 0, 'claimed': True, 'claimed_at': 1745644259, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/1440'}, 'type': 'raw_bb_hook'}
2025-04-26T05:10:50.177998	{'source': 'webserver', 'raw': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/pr-ubu-x64', 'Worker'], 'warnings-count': [9, 'WarningCountingShellCommand'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'branchname': ['pr-13594', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'buildername': ['pr-ubu-x64', 'Builder'], 'project': ['', 'Build'], 'builderid': [27, 'Builder'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'workername': ['ubuntu-lts', 'Worker'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'buildnumber': [6361, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108599, 'buildsetid': 25789, 'builderid': 27, 'priority': 0, 'claimed': True, 'claimed_at': 1745643584, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 27, 'name': 'pr-ubu-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/27/builds/6361'}, 'type': 'raw_bb_hook'}
2025-04-26T05:10:48.429532	{'source': 'webserver', 'raw': {'buildid': 108486, 'number': 5453, 'builderid': 10, 'buildrequestid': 108605, 'workerid': 5, 'masterid': 1, 'started_at': 1745644229, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'pr_id': [13594, 'Trigger'], 'scheduler': ['pr-fifoci-lin', 'Scheduler'], 'buildername': ['pr-fifoci-ogl-lin-mesa', 'Builder'], 'builderid': [10, 'Builder'], 'workername': ['altair-fifoci', 'Worker'], 'buildnumber': [5453, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'shortrev': ['45c9f5', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108605, 'buildsetid': 25792, 'builderid': 10, 'priority': 0, 'claimed': True, 'claimed_at': 1745644229, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745644228, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25792, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-lin' triggered this build", 'submitted_at': 1745644228, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108482, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108482, 'number': 6361, 'builderid': 27, 'buildrequestid': 108599, 'workerid': 10, 'masterid': 1, 'started_at': 1745643584, 'complete_at': 1745644229, '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/5453'}, 'type': 'raw_bb_hook'}
2025-04-26T05:10:28.915885	{'source': 'webserver', 'raw': {'buildid': 108485, 'number': 5483, 'builderid': 19, 'buildrequestid': 108603, 'workerid': 8, 'masterid': 1, 'started_at': 1745644108, 'complete_at': 1745644213, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'shortrev': ['45c9f5', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [5483, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mvk-osx-m1', 'Worker'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'warnings-count': [22, 'WarningCountingShellCommand'], 'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108603, 'buildsetid': 25791, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1745644108, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643999, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25791, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1745643999, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108479, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108479, 'number': 6366, 'builderid': 7, 'buildrequestid': 108593, 'workerid': 8, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643999, '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/5483'}, 'type': 'raw_bb_hook'}
2025-04-26T05:09:28.822249	{'source': 'webserver', 'raw': {'buildid': 108481, 'number': 1452, 'builderid': 44, 'buildrequestid': 108602, 'workerid': 14, 'masterid': 1, 'started_at': 1745643582, 'complete_at': 1745644164, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'workername': ['deneb-flatpak', 'Worker'], 'buildnumber': [1452, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-flatpak-arm64', 'Builder'], 'builderid': [44, 'Builder'], 'branch': ['refs/pull/13594/head', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'fm_build_url': ['https://flat-manager.dolphin-emu.org/api/v1/build/2994', 'SetPropertyFromCommand Step'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'basedir': ['/var/lib/flatpak-worker/worker', 'Worker'], 'builddir': ['/var/lib/flatpak-worker/worker/pr-flatpak-arm64', 'Worker']}, 'buildrequest': {'buildrequestid': 108602, 'buildsetid': 25789, 'builderid': 44, 'priority': 0, 'claimed': True, 'claimed_at': 1745643582, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 44, 'name': 'pr-flatpak-arm64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/44/builds/1452'}, 'type': 'raw_bb_hook'}
2025-04-26T05:08:48.714144	{'source': 'webserver', 'raw': {'buildid': 108485, 'number': 5483, 'builderid': 19, 'buildrequestid': 108603, 'workerid': 8, 'masterid': 1, 'started_at': 1745644108, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'shortrev': ['45c9f5', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'buildername': ['pr-fifoci-mvk-osx-m1', 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [5483, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'codebase': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'builderid': [19, 'Builder'], 'repository': ['', 'Build'], 'project': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108603, 'buildsetid': 25791, 'builderid': 19, 'priority': 0, 'claimed': True, 'claimed_at': 1745644108, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643999, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25791, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1745643999, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108479, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108479, 'number': 6366, 'builderid': 7, 'buildrequestid': 108593, 'workerid': 8, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643999, '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/5483'}, 'type': 'raw_bb_hook'}
2025-04-26T05:08:48.708852	{'source': 'webserver', 'raw': {'buildid': 108484, 'number': 5481, 'builderid': 21, 'buildrequestid': 108604, 'workerid': 8, 'masterid': 1, 'started_at': 1745643999, 'complete_at': 1745644108, 'locks_duration_s': 0, 'complete': True, 'state_string': 'failed build (failure)', 'results': 2, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'builderid': [21, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [5481, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'got_revision': ['ca98b3030bcc70e67158ce899a5589aa2ec65d32', 'GitNoBranch'], 'shortrev': ['45c9f5', 'Trigger'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-fifoci-mtl-osx-m1', 'Worker'], 'warnings-count': [22, 'WarningCountingShellCommand'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/13594/head', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108604, 'buildsetid': 25791, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1745643999, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643999, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25791, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1745643999, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108479, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108479, 'number': 6366, 'builderid': 7, 'buildrequestid': 108593, 'workerid': 8, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643999, '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/5481'}, 'type': 'raw_bb_hook'}
2025-04-26T05:07:01.399673	{'source': 'webserver', 'raw': {'buildid': 108479, 'number': 6366, 'builderid': 7, 'buildrequestid': 108593, 'workerid': 8, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643999, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'pr_id': [13594, 'Change'], 'shortrev': ['45c9f5', 'Change'], 'builderid': [7, 'Builder'], 'buildnumber': [6366, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'buildername': ['pr-osx-universal', 'Builder'], 'scheduler': ['pr', 'Scheduler'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'workername': ['osx-m1', 'Worker'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'basedir': ['/Users/administrator/buildbot-worker/osx_m1', 'Worker'], 'builddir': ['/Users/administrator/buildbot-worker/osx_m1/pr-osx-universal', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108593, 'buildsetid': 25789, 'builderid': 7, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6366'}, 'type': 'raw_bb_hook'}
2025-04-26T05:06:59.797078	{'source': 'webserver', 'raw': {'buildid': 108484, 'number': 5481, 'builderid': 21, 'buildrequestid': 108604, 'workerid': 8, 'masterid': 1, 'started_at': 1745643999, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Trigger'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Trigger'], 'pr_id': [13594, 'Trigger'], 'repo': ['dolphin-emu/dolphin', 'Trigger'], 'buildername': ['pr-fifoci-mtl-osx-m1', 'Builder'], 'builderid': [21, 'Builder'], 'workername': ['osx-m1', 'Worker'], 'buildnumber': [5481, 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'shortrev': ['45c9f5', 'Trigger'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'scheduler': ['pr-fifoci-osx', 'Scheduler'], 'branch': ['refs/pull/13594/head', 'Build'], 'codebase': ['', 'Build']}, 'buildrequest': {'buildrequestid': 108604, 'buildsetid': 25791, 'builderid': 21, 'priority': 0, 'claimed': True, 'claimed_at': 1745643999, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643999, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25791, 'external_idstring': None, 'reason': "The Triggerable scheduler named 'pr-fifoci-osx' triggered this build", 'submitted_at': 1745643999, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': 108479, 'parent_relationship': 'Triggered from', 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': {'buildid': 108479, 'number': 6366, 'builderid': 7, 'buildrequestid': 108593, 'workerid': 8, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643999, '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/5481'}, 'type': 'raw_bb_hook'}
2025-04-26T05:06:20.889133	{'source': 'webserver', 'raw': {'buildid': 108478, 'number': 6362, 'builderid': 2, 'buildrequestid': 108592, 'workerid': 4, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643958, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'branchname': ['pr-13594', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'workername': ['windows', 'Worker'], 'buildername': ['pr-win-x64', 'Builder'], 'builderid': [2, 'Builder'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'buildnumber': [6362, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'basedir': ['c:\\buildbot', 'Worker'], 'warnings-count': [0, 'WarningCountingShellCommand'], 'build_url': ['https://dl.dolphin-emu.org/prs/8c/75/pr-13594-dolphin-latest-x64.7z', 'SetProperty'], 'builddir': ['c:\\buildbot\\pr-win-x64', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch']}, 'buildrequest': {'buildrequestid': 108592, 'buildsetid': 25789, 'builderid': 2, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 2, 'name': 'pr-win-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/2/builds/6362'}, 'type': 'raw_bb_hook'}
2025-04-26T05:06:20.589954	{'source': 'webserver', 'raw': {'buildid': 108483, 'number': 6361, 'builderid': 13, 'buildrequestid': 108596, 'workerid': 4, 'masterid': 1, 'started_at': 1745643958, 'complete_at': None, 'locks_duration_s': 0, 'complete': False, 'state_string': 'starting', 'results': None, 'properties': {'branchname': ['pr-13594', 'Change'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-win-arm64', 'Builder'], 'builderid': [13, 'Builder'], 'buildnumber': [6361, 'Build'], 'repository': ['', 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'shortrev': ['45c9f5', 'Change'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'pr_id': [13594, 'Change'], 'workername': ['windows', 'Worker'], 'branch': ['refs/pull/13594/head', 'Build']}, 'buildrequest': {'buildrequestid': 108596, 'buildsetid': 25789, 'builderid': 13, 'priority': 0, 'claimed': True, 'claimed_at': 1745643958, 'claimed_by_masterid': 1, 'complete': False, 'results': -1, 'submitted_at': 1745643581, 'complete_at': None, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, '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/6361'}, 'type': 'raw_bb_hook'}
2025-04-26T05:01:02.178586	{'source': 'webserver', 'raw': {'buildid': 108477, 'number': 6364, 'builderid': 11, 'buildrequestid': 108595, 'workerid': 1, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643614, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'workername': ['freebsd', 'Worker'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['pr-freebsd-x64', 'Builder'], 'branchname': ['pr-13594', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'builderid': [11, 'Builder'], 'repository': ['', 'Build'], 'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'buildnumber': [6364, 'Build'], 'codebase': ['', 'Build'], 'project': ['', 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'basedir': ['/usr/home/buildbot/freebsd', 'Worker'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'warnings-count': [2, 'WarningCountingShellCommand'], 'builddir': ['/usr/home/buildbot/freebsd/pr-freebsd-x64', 'Worker']}, 'buildrequest': {'buildrequestid': 108595, 'buildsetid': 25789, 'builderid': 11, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1745643581, 'complete_at': 1745643614, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 11, 'name': 'pr-freebsd-x64', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/11/builds/6364'}, 'type': 'raw_bb_hook'}
2025-04-26T05:00:59.948887	{'source': 'webserver', 'raw': {'buildid': 108475, 'number': 6363, 'builderid': 9, 'buildrequestid': 108594, 'workerid': 10, 'masterid': 1, 'started_at': 1745643581, 'complete_at': 1745643584, 'locks_duration_s': 0, 'complete': True, 'state_string': 'build successful', 'results': 0, 'properties': {'headrev': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Change'], 'codebase': ['', 'Build'], 'baserev': ['805307f432dba079caf7339122a07de5b90c4b47', 'Change'], 'shortrev': ['45c9f5', 'Change'], 'revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'Build'], 'scheduler': ['pr', 'Scheduler'], 'buildername': ['lint', 'Builder'], 'builderid': [9, 'Builder'], 'workername': ['ubuntu-lts', 'Worker'], 'buildnumber': [6363, 'Build'], 'branch': ['refs/pull/13594/head', 'Build'], 'branchname': ['pr-13594', 'Change'], 'pr_id': [13594, 'Change'], 'repo': ['dolphin-emu/dolphin', 'Change'], 'repository': ['', 'Build'], 'project': ['', 'Build'], 'owners': [['Central (on behalf of: jordan-woyak)'], 'Build'], 'got_revision': ['45c9f56b63b7c82d7218f395982ed696ca11e58d', 'GitNoBranch'], 'basedir': ['/buildbot', 'Worker'], 'builddir': ['/buildbot/lint', 'Worker']}, 'buildrequest': {'buildrequestid': 108594, 'buildsetid': 25789, 'builderid': 9, 'priority': 0, 'claimed': True, 'claimed_at': 1745643581, 'claimed_by_masterid': 1, 'complete': True, 'results': 0, 'submitted_at': 1745643581, 'complete_at': 1745643584, 'waited_for': False, 'properties': None}, 'buildset': {'bsid': 25789, 'external_idstring': None, 'reason': "The AnyBranchScheduler scheduler named 'pr' triggered this build", 'submitted_at': 1745643581, 'complete': False, 'complete_at': None, 'results': -1, 'parent_buildid': None, 'parent_relationship': None, 'rebuilt_buildid': None, 'sourcestamps': [{'ssid': 7733, 'branch': 'refs/pull/13594/head', 'revision': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'project': '', 'repository': '', 'codebase': '', 'created_at': 1745643581, 'patch': None}]}, 'parentbuild': None, 'parentbuilder': None, 'builder': {'builderid': 9, 'name': 'lint', 'masterids': [1], 'description': None, 'description_format': None, 'description_html': None, 'projectid': None, 'tags': []}, 'url': 'https://dolphin.ci/#/builders/9/builds/6363'}, 'type': 'raw_bb_hook'}

Recent 'raw_gh_hook' events

2025-04-26T05:03:12.028887	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 13594, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594', 'id': 2482865278, 'node_id': 'PR_kwDOALCn2M6T_YR-', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594', 'number': 13594, 'state': 'open', 'locked': False, 'title': 'State: Simplify interthread communication and general cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'There was a lot of hard-to-validate interthread communication going on in State.cpp.\r\nIt\'s now far less complicated.\r\ne.g. there were four `std::mutex`, now there\'s one that\'s only used twice.\r\n\r\nSaves still compress and dump on a `Common::WorkQueueThread` in a non-blocking manner.\r\n\r\nIf CPU-thread needs to read states from the filesystem it first waits on completion of all dumps.\r\nThat happens on `Load` or `SaveFirstSaved` (which requires reading headers).\r\n\r\n`Core::RunOnCPUThread` calls are now all non-blocking from Host thread.\r\n\r\nThe TODOs regarding atomic filesystem access are resolved.\r\nSince much of the work already has to be done on CPU-thread, the minor filesystem manipulation now happens there too.\r\n\r\nThere is a mutex around writes to the filesystem and reads within `GetInfoStringOfSlot` which is used for some UI elements.\r\nThere\'s an existing super-not-important race condition there for which I\'ve added a comment.\r\nIt\'s an existing situation that I don\'t plan to resolve at this time.\r\n\r\nThe explicit "Measure" step of `PointerWrap` is now skipped by just doing "Write" on a buffer sized 110% of the last state.\r\n`PointerWrap` conveniently switches to "Measure" mode on buffer overrun.\r\nOn would-be overrun that becomes the measurement for a secondary real "Write".\r\nThat saves like ~0.3ms per state save here.', 'created_at': '2025-04-26T04:59:35Z', 'updated_at': '2025-04-26T05:03:09Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '57cf16082fc728e6b95f18a5fd7732aa7273e13c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d', 'head': {'label': 'jordan-woyak:state-cleanups', 'ref': 'state-cleanups', 'sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-02-08T02:39:24Z', 'pushed_at': '2025-04-26T04:40:23Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 491986, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '805307f432dba079caf7339122a07de5b90c4b47', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T05:02:12Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13650, 'watchers_count': 13650, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13650, '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/13594'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13594'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 151, 'deletions': 255, 'changed_files': 2}, 'changes': {'body': {'from': 'There was a lot of hard-to-validate interthread communication going on in State.cpp.\r\nIt\'s now far less complicated.\r\ne.g. there were four `std::mutex`, now there\'s one.\r\n\r\nSaves still compress and dump on a `Common::WorkQueueThread` in a non-blocking manner.\r\n\r\nIf CPU-thread needs to read states from the filesystem it first waits on completion of all dumps.\r\nThat happens on `Load` or `SaveFirstSaved` (which requires reading headers).\r\n\r\n`Core::RunOnCPUThread` calls are now all non-blocking from Host thread.\r\n\r\nThe TODOs regarding atomic filesystem access are resolved.\r\nSince much of the work already has to be done on CPU-thread, the minor filesystem manipulation now happens there too.\r\n\r\nThere is a mutex around writes to the filesystem and reads within `GetInfoStringOfSlot` which is used for some UI elements.\r\nThere\'s an existing super-not-important race condition there for which I\'ve added a comment.\r\nIt\'s an existing situation that I don\'t plan to resolve at this time.\r\n\r\nThe explicit "Measure" step of `PointerWrap` is now skipped by just doing "Write" on a buffer sized 110% of the last state.\r\n`PointerWrap` conveniently switches to "Measure" mode on buffer overrun.\r\nOn would-be overrun that becomes the measurement for a secondary real "Write".\r\nThat saves like ~0.3ms per state save here.'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T05:02:12Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13650, 'watchers_count': 13650, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13650, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-26T05:02:05.762938	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 13594, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594', 'id': 2482865278, 'node_id': 'PR_kwDOALCn2M6T_YR-', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594', 'number': 13594, 'state': 'open', 'locked': False, 'title': 'State: Simplify interthread communication and general cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'There was a lot of hard-to-validate interthread communication going on in State.cpp.\r\nIt\'s now far less complicated.\r\ne.g. there were four `std::mutex`, now there\'s one.\r\n\r\nSaves still compress and dump on a `Common::WorkQueueThread` in a non-blocking manner.\r\n\r\nIf CPU-thread needs to read states from the filesystem it first waits on completion of all dumps.\r\nThat happens on `Load` or `SaveFirstSaved` (which requires reading headers).\r\n\r\n`Core::RunOnCPUThread` calls are now all non-blocking from Host thread.\r\n\r\nThe TODOs regarding atomic filesystem access are resolved.\r\nSince much of the work already has to be done on CPU-thread, the minor filesystem manipulation now happens there too.\r\n\r\nThere is a mutex around writes to the filesystem and reads within `GetInfoStringOfSlot` which is used for some UI elements.\r\nThere\'s an existing super-not-important race condition there for which I\'ve added a comment.\r\nIt\'s an existing situation that I don\'t plan to resolve at this time.\r\n\r\nThe explicit "Measure" step of `PointerWrap` is now skipped by just doing "Write" on a buffer sized 110% of the last state.\r\n`PointerWrap` conveniently switches to "Measure" mode on buffer overrun.\r\nOn would-be overrun that becomes the measurement for a secondary real "Write".\r\nThat saves like ~0.3ms per state save here.', 'created_at': '2025-04-26T04:59:35Z', 'updated_at': '2025-04-26T05:02:03Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '57cf16082fc728e6b95f18a5fd7732aa7273e13c', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d', 'head': {'label': 'jordan-woyak:state-cleanups', 'ref': 'state-cleanups', 'sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-02-08T02:39:24Z', 'pushed_at': '2025-04-26T04:40:23Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 491986, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '805307f432dba079caf7339122a07de5b90c4b47', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T02:17:20Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13649, 'watchers_count': 13649, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13649, '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/13594'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13594'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 151, 'deletions': 255, 'changed_files': 2}, 'changes': {'body': {'from': 'There was a lot of hard-to-validate interthread communication going on in State.cpp.\r\nIt\'s now far less complicated.\r\ne.g. there were four `std::mutex`, now there\'s one.\r\n\r\nSaves still compress and dump on a `Common::WorkQueueThread` in a non-blocking manner.\r\n\r\nIf CPU-thread needs to read states from the filesystem it first waits on completion of all dumps.\r\nThat happens on `Load` or `SaveFirstSaved` (which requires reading headers).\r\n\r\n`Core::RunOnCPUThread` calls are now all non-blocking from Host thread.\r\n\r\nThe TODOs regarding atomic filesystem access are resolved.\r\nSince 95% of the work already has to be done on CPU-thread, the minor filesystem manipulation now happens there too.\r\n\r\nThere is a mutex around writes to the filesystem and reads within `GetInfoStringOfSlot` which is used for some UI elements.\r\nThere\'s an existing super-not-important race condition there for which I\'ve added a comment.\r\nIt\'s an existing situation that I don\'t plan to resolve at this time.\r\n\r\nThe explicit "Measure" step of `PointerWrap` is now skipped by just doing "Write" on a buffer sized 110% of the last state.\r\n`PointerWrap` conveniently switches to "Measure" mode on buffer overrun.\r\nOn would-be overrun that becomes the measurement for a secondary real "Write".\r\nThat saves like ~0.3ms per state save here.'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T02:17:20Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13649, 'watchers_count': 13649, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13649, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-26T04:59:37.631037	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 13594, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594', 'id': 2482865278, 'node_id': 'PR_kwDOALCn2M6T_YR-', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13594', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13594.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594', 'number': 13594, 'state': 'open', 'locked': False, 'title': 'State: Simplify interthread communication and general cleanups.', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'body': 'There was a lot of hard-to-validate interthread communication going on in State.cpp.\r\nIt\'s now far less complicated.\r\ne.g. there were four `std::mutex`, now there\'s one.\r\n\r\nSaves still compress and dump on a `Common::WorkQueueThread` in a non-blocking manner.\r\n\r\nIf CPU-thread needs to read states from the filesystem it first waits on completion of all dumps.\r\nThat happens on `Load` or `SaveFirstSaved` (which requires reading headers).\r\n\r\n`Core::RunOnCPUThread` calls are now all non-blocking from Host thread.\r\n\r\nThe TODOs regarding atomic filesystem access are resolved.\r\nSince 95% of the work already has to be done on CPU-thread, the minor filesystem manipulation now happens there too.\r\n\r\nThere is a mutex around writes to the filesystem and reads within `GetInfoStringOfSlot` which is used for some UI elements.\r\nThere\'s an existing super-not-important race condition there for which I\'ve added a comment.\r\nIt\'s an existing situation that I don\'t plan to resolve at this time.\r\n\r\nThe explicit "Measure" step of `PointerWrap` is now skipped by just doing "Write" on a buffer sized 110% of the last state.\r\n`PointerWrap` conveniently switches to "Measure" mode on buffer overrun.\r\nOn would-be overrun that becomes the measurement for a secondary real "Write".\r\nThat saves like ~0.3ms per state save here.', 'created_at': '2025-04-26T04:59:35Z', 'updated_at': '2025-04-26T04:59:35Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d', 'head': {'label': 'jordan-woyak:state-cleanups', 'ref': 'state-cleanups', 'sha': '45c9f56b63b7c82d7218f395982ed696ca11e58d', 'user': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 16818408, 'node_id': 'MDEwOlJlcG9zaXRvcnkxNjgxODQwOA==', 'name': 'dolphin', 'full_name': 'jordan-woyak/dolphin', 'private': False, 'owner': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/jordan-woyak/dolphin', 'description': 'Dolphin is a GameCube/Wii emulator, allowing you to play games for these two platforms on PC, with improvements.', 'fork': True, 'url': 'https://api.github.com/repos/jordan-woyak/dolphin', 'forks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/forks', 'keys_url': 'https://api.github.com/repos/jordan-woyak/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/jordan-woyak/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/jordan-woyak/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/jordan-woyak/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/jordan-woyak/dolphin/events', 'assignees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/jordan-woyak/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/jordan-woyak/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/jordan-woyak/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/jordan-woyak/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/jordan-woyak/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/jordan-woyak/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/jordan-woyak/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/jordan-woyak/dolphin/merges', 'archive_url': 'https://api.github.com/repos/jordan-woyak/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/jordan-woyak/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/jordan-woyak/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/jordan-woyak/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/jordan-woyak/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/jordan-woyak/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/jordan-woyak/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/jordan-woyak/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/jordan-woyak/dolphin/deployments', 'created_at': '2014-02-13T21:50:38Z', 'updated_at': '2025-02-08T02:39:24Z', 'pushed_at': '2025-04-26T04:40:23Z', 'git_url': 'git://github.com/jordan-woyak/dolphin.git', 'ssh_url': 'git@github.com:jordan-woyak/dolphin.git', 'clone_url': 'https://github.com/jordan-woyak/dolphin.git', 'svn_url': 'https://github.com/jordan-woyak/dolphin', 'homepage': None, 'size': 491986, 'stargazers_count': 3, 'watchers_count': 3, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': False, 'has_pages': False, 'has_discussions': False, 'forks_count': 4, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 2, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 4, 'open_issues': 2, 'watchers': 3, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': True, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '805307f432dba079caf7339122a07de5b90c4b47', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T02:17:20Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13649, 'watchers_count': 13649, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13649, '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/13594'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13594'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13594/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13594/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/13594/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/45c9f56b63b7c82d7218f395982ed696ca11e58d'}}, 'author_association': 'MEMBER', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': True, 'commits': 1, 'additions': 151, 'deletions': 255, 'changed_files': 2}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-26T02:17:20Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13649, 'watchers_count': 13649, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2777, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 362, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2777, 'open_issues': 362, 'watchers': 13649, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'jordan-woyak', 'id': 1768214, 'node_id': 'MDQ6VXNlcjE3NjgyMTQ=', 'avatar_url': 'https://avatars.githubusercontent.com/u/1768214?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/jordan-woyak', 'html_url': 'https://github.com/jordan-woyak', 'followers_url': 'https://api.github.com/users/jordan-woyak/followers', 'following_url': 'https://api.github.com/users/jordan-woyak/following{/other_user}', 'gists_url': 'https://api.github.com/users/jordan-woyak/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/jordan-woyak/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/jordan-woyak/subscriptions', 'organizations_url': 'https://api.github.com/users/jordan-woyak/orgs', 'repos_url': 'https://api.github.com/users/jordan-woyak/repos', 'events_url': 'https://api.github.com/users/jordan-woyak/events{/privacy}', 'received_events_url': 'https://api.github.com/users/jordan-woyak/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:43:47.046529	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'edited', 'number': 13593, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593', 'id': 2482635861, 'node_id': 'PR_kwDOALCn2M6T-gRV', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13593', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13593.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13593.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593', 'number': 13593, 'state': 'open', 'locked': False, 'title': 'MainWindow: Fix use-after-free during Dolphin shutdown', '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': "The primary thing this PR does is fix a use-after-free during Dolphin shutdown caused by a ConfigChangedCallback trying to access `MainWindow` after it's destroyed. This didn't cause any visible issues in Release builds (not that we should rely on that), but crashed in Debug builds (at least with Visual Studio) with an Access Violation.\r\n\r\nTo prevent this sort of thing from happening in the future I've also added `[[nodiscard]]` to the return value of `Config::AddConfigChangedCallback` and `CPUThreadConfigCallback::AddConfigChangedCallback`, which in turn required handling the return value for a handful of callers that don't already do so and calling RemoveConfigChangedCallback for them during shutdown.", 'created_at': '2025-04-25T23:38:57Z', 'updated_at': '2025-04-25T23:43:44Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': '79ebd08f07f2f5caaaa05857da89ef4caa6ed2f4', 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/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/13593/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3a883f28d675f971509c165cfedeba861ecdd48a', 'head': {'label': 'Dentomologist:mainwindow_fix_use_after_free_during_dolphin_shutdown', 'ref': 'mainwindow_fix_use_after_free_during_dolphin_shutdown', 'sha': '3a883f28d675f971509c165cfedeba861ecdd48a', '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}, 'repo': {'id': 307468940, 'node_id': 'MDEwOlJlcG9zaXRvcnkzMDc0Njg5NDA=', 'name': 'dolphin', 'full_name': 'Dentomologist/dolphin', 'private': False, 'owner': {'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}, 'html_url': 'https://github.com/Dentomologist/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/Dentomologist/dolphin', 'forks_url': 'https://api.github.com/repos/Dentomologist/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Dentomologist/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Dentomologist/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Dentomologist/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Dentomologist/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Dentomologist/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Dentomologist/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Dentomologist/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Dentomologist/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Dentomologist/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Dentomologist/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Dentomologist/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Dentomologist/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Dentomologist/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Dentomologist/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Dentomologist/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Dentomologist/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Dentomologist/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Dentomologist/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Dentomologist/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Dentomologist/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Dentomologist/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Dentomologist/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Dentomologist/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Dentomologist/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Dentomologist/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Dentomologist/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Dentomologist/dolphin/deployments', 'created_at': '2020-10-26T18:29:21Z', 'updated_at': '2025-04-25T23:16:21Z', 'pushed_at': '2025-04-25T23:20:10Z', 'git_url': 'git://github.com/Dentomologist/dolphin.git', 'ssh_url': 'git@github.com:Dentomologist/dolphin.git', 'clone_url': 'https://github.com/Dentomologist/dolphin.git', 'svn_url': 'https://github.com/Dentomologist/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 488364, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '805307f432dba079caf7339122a07de5b90c4b47', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 361, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 361, 'watchers': 13647, '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/13593'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13593'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/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/13593/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3a883f28d675f971509c165cfedeba861ecdd48a'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': True, 'rebaseable': True, 'mergeable_state': 'unstable', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 7, 'additions': 72, 'deletions': 23, 'changed_files': 14}, 'changes': {'title': {'from': 'Mainwindow: Fix use-after-free during Dolphin shutdown'}}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 361, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 361, 'watchers': 13647, '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'}
2025-04-25T23:38:59.590679	{'source': 'webserver', 'gh_type': 'pull_request', 'raw': {'action': 'opened', 'number': 13593, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593', 'id': 2482635861, 'node_id': 'PR_kwDOALCn2M6T-gRV', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13593', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13593.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13593.patch', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593', 'number': 13593, 'state': 'open', 'locked': False, 'title': 'Mainwindow: Fix use-after-free during Dolphin shutdown', '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': "The primary thing this PR does is fix a use-after-free during Dolphin shutdown caused by a ConfigChangedCallback trying to access `MainWindow` after it's destroyed. This didn't cause any visible issues in Release builds (not that we should rely on that), but crashed in Debug builds (at least with Visual Studio) with an Access Violation.\r\n\r\nTo prevent this sort of thing from happening in the future I've also added `[[nodiscard]]` to the return value of `Config::AddConfigChangedCallback` and `CPUThreadConfigCallback::AddConfigChangedCallback`, which in turn required handling the return value for a handful of callers that don't already do so and calling RemoveConfigChangedCallback for them during shutdown.", 'created_at': '2025-04-25T23:38:57Z', 'updated_at': '2025-04-25T23:38:57Z', 'closed_at': None, 'merged_at': None, 'merge_commit_sha': None, 'assignee': None, 'assignees': [], 'requested_reviewers': [], 'requested_teams': [], 'labels': [], 'milestone': None, 'draft': False, 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/commits', 'review_comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/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/13593/comments', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3a883f28d675f971509c165cfedeba861ecdd48a', 'head': {'label': 'Dentomologist:mainwindow_fix_use_after_free_during_dolphin_shutdown', 'ref': 'mainwindow_fix_use_after_free_during_dolphin_shutdown', 'sha': '3a883f28d675f971509c165cfedeba861ecdd48a', '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}, 'repo': {'id': 307468940, 'node_id': 'MDEwOlJlcG9zaXRvcnkzMDc0Njg5NDA=', 'name': 'dolphin', 'full_name': 'Dentomologist/dolphin', 'private': False, 'owner': {'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}, 'html_url': 'https://github.com/Dentomologist/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/Dentomologist/dolphin', 'forks_url': 'https://api.github.com/repos/Dentomologist/dolphin/forks', 'keys_url': 'https://api.github.com/repos/Dentomologist/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/Dentomologist/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/Dentomologist/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/Dentomologist/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/Dentomologist/dolphin/events', 'assignees_url': 'https://api.github.com/repos/Dentomologist/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/Dentomologist/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/Dentomologist/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/Dentomologist/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/Dentomologist/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/Dentomologist/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/Dentomologist/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/Dentomologist/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/Dentomologist/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/Dentomologist/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/Dentomologist/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/Dentomologist/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/Dentomologist/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/Dentomologist/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/Dentomologist/dolphin/merges', 'archive_url': 'https://api.github.com/repos/Dentomologist/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/Dentomologist/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/Dentomologist/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/Dentomologist/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/Dentomologist/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/Dentomologist/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/Dentomologist/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/Dentomologist/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/Dentomologist/dolphin/deployments', 'created_at': '2020-10-26T18:29:21Z', 'updated_at': '2025-04-25T23:16:21Z', 'pushed_at': '2025-04-25T23:20:10Z', 'git_url': 'git://github.com/Dentomologist/dolphin.git', 'ssh_url': 'git@github.com:Dentomologist/dolphin.git', 'clone_url': 'https://github.com/Dentomologist/dolphin.git', 'svn_url': 'https://github.com/Dentomologist/dolphin', 'homepage': 'https://dolphin-emu.org/', 'size': 488364, 'stargazers_count': 0, 'watchers_count': 0, 'language': 'C++', 'has_issues': False, 'has_projects': True, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 0, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 0, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': [], 'visibility': 'public', 'forks': 0, 'open_issues': 0, 'watchers': 0, 'default_branch': 'master', 'allow_squash_merge': True, 'allow_merge_commit': True, 'allow_rebase_merge': True, 'allow_auto_merge': False, 'delete_branch_on_merge': False, 'allow_update_branch': False, 'use_squash_pr_title_as_default': False, 'squash_merge_commit_message': 'COMMIT_MESSAGES', 'squash_merge_commit_title': 'COMMIT_OR_PR_TITLE', 'merge_commit_message': 'PR_TITLE', 'merge_commit_title': 'MERGE_MESSAGE'}}, 'base': {'label': 'dolphin-emu:master', 'ref': 'master', 'sha': '805307f432dba079caf7339122a07de5b90c4b47', 'user': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'repo': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 361, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 361, 'watchers': 13647, '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/13593'}, 'html': {'href': 'https://github.com/dolphin-emu/dolphin/pull/13593'}, 'issue': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593'}, 'comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13593/comments'}, 'review_comments': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13593/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/13593/commits'}, 'statuses': {'href': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/3a883f28d675f971509c165cfedeba861ecdd48a'}}, 'author_association': 'CONTRIBUTOR', 'auto_merge': None, 'active_lock_reason': None, 'merged': False, 'mergeable': None, 'rebaseable': None, 'mergeable_state': 'unknown', 'merged_by': None, 'comments': 0, 'review_comments': 0, 'maintainer_can_modify': False, 'commits': 7, 'additions': 72, 'deletions': 23, 'changed_files': 14}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 361, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 361, 'watchers': 13647, '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'}
2025-04-25T23:35:03.933491	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:35:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:35:02Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n* Legend of Spyro: A New Beginning - Works.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:29:49.465874	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 16, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:08Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:29:48Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n* Rayman Raving Rabbids - Works.  This is an ubisoft Wii game, so works is a relative term.\r\n* Spiderman 2 - Incredibly demanding, but can be run basically at any framerate.  Was running 120 FPS at the edges of the city where it's less demanding.\r\n* The Incredibles Rise of the Underminer - Works out of the box.  Only tested one stage.\r\n* The Incredibles - Works out of the box.  Only tested the intro\r\n* The Incredible Hulk: Ultimate Destruction - Appears to work!  A little demanding in spots, however.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n* Ultimate Spider-Man - Locked to 30 FPS no matter what.  Some loading animations break at higher VPS, but in-game seems completely unaffected.\r\n* Viewtiful Joe - Not only speeds up, but hangs in the intro!\r\n* Wario World - Speeds up\r\n* Rogue Squadron 2/3 - no surprise here, speeds up.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:24:08.396014	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'deleted', 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:57:39Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:24:03.370675	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:24:02Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:24:02Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:23:37.826828	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:23:37Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:23:36Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Chicken Little: Ace in Action\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* NyxQuest\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:22:54.315467	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Kore Gang\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* Sengoku Basara: Utage\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:17:32Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825838996', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825838996, 'node_id': 'IC_kwDOALCn2M6obuGU', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-24T00:25:19Z', 'updated_at': '2025-04-25T23:22:52Z', 'author_association': 'MEMBER', 'body': "Tested again... I'm not as good at seeing this sort of stuff so uh...maybe my information is wrong.  I won't list all the games I tested that didn't work.\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Kore Gang\r\n* Link's Crossbow Training\r\n* Lost Winds / Lost Winds 2\r\n* Mushroom Men / Ghostbusters (same dev)\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Sengoku Basara: Utage\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box (not easy for me to see even at 20% emulation speed):\r\n\r\n* Chicken Little: Ace in Action\r\n* Mario Strikers Charged\r\n* Mini Ninjas\r\n* Mobile Suit Gundam: MS Sensen 0079\r\n* Monster Lab\r\n* Munchables, The\r\n* NIGHTS: Journey of Dreams\r\n* Prince of Persia: The Forgotten Sands\r\n* Red Steel (has a 60fps code but..)\r\n* Speed Racer (already confirmed by JMC)\r\n* Tomb Raider: Anniversary\r\n\r\nOther:\r\n\r\n* Harvest Moon Animal Parade - FPS changed, animations/walking didn't change speed, speech bubbles would get stuck, clouds moved really fast\r\n* Pitfall the Lost Expedition - confirmed by @Avasam \r\n* Sky Crawlers: Innocent Aces - did lock up on startup", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825838996/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:17:32.757018	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:14:29Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:17:31Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n* Monster House - Piece of shit game is not really improved by running at 120+ FPS.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:14:30.392454	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:03:17Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:14:29Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n* Tomb Raider Legend - Works in the intro/tutorial.   Didn't test further\r\n* Legend of Spyro: Eternal Night - Works, but is extremely demanding.  Didn't test past tutorial, could only get to 70 FPS before my computer gave out and couldn't run it full speed.\r\n* Mario & Sonic at the London 2012 Olympic Games - Works in the events I tested.  This game has been noted as somewhat touchy in emulation, so I wouldn't be surprised if there were stability issues.\r\n* Mario & Sonic at the Winter Olympic Games - Extremely demanding, but works.  Could get up to about 70 - 80 FPS in 30 FPS games.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n* Mario and Sonic & the Olympic Games - speeds up, oddly enough.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T23:12:22Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13647, 'watchers_count': 13647, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13647, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:03:18.171416	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:00:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:03:16Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n* Ed, Edd, n' Eddy Misedventures - Works well, but some on-screen effects like the outlines are sped up.  Unsure if it's worth it here.  Didn't test long enough to see if other things were broken.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T23:00:05.621344	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T23:00:04Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T23:00:04Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n* Cars Maternational - Works well in game, some cutscene appear to be keyframed but work properly overall.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:57:41.603814	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:55:42Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:57:39Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Harvest Moon: Tree of Tranqulity\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:55:42.736039	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:54:10Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:55:41Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* No More Heroes 2\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:54:11.429066	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:50:14Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:54:10Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n* Cars 2 - LMAO good luck.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:50:14.806571	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:48:58Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:50:13Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n* Zelda: Twilight Princess\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:48:58.771538	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:47:40Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:48:57Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n* Cars - Works out of the box.  Is especially nice as this is a 30 FPS game by default.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:47:41.362309	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Nyx's Quest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)"}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:46:28Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:47:40Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* NyxQuest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:46:28.780476	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': 'I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)'}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:43:52Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2829099805', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2829099805, 'node_id': 'IC_kwDOALCn2M6ooKMd', 'user': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-25T00:06:36Z', 'updated_at': '2025-04-25T22:46:27Z', 'author_association': 'MEMBER', 'body': "I tested a bit more...\r\n\r\n\r\nGames that did not change FPS despite enabling:\r\n\r\n* Boom Blox\r\n* Cursed  Mountain\r\n* Deadly Creatures\r\n* Epic Mickey\r\n* Link's Crossbow Training\r\n* NBA Jam\r\n* Punch-Out!!!\r\n\r\nGames that might get enhanced framerates out of the box:\r\n\r\n* Bully Scholarship Edition (though load screens seems to suffer from the same issue as startup...meaning they take a very long time)\r\n* Kid Adventures: Sky Captain (one of my favorites, just needs emulated relative tilt support....Billiard please!)\r\n* Nyx's Quest\r\n\r\nOther\r\n* Epic Mickey 2 (freezes the scene when on?)\r\n* Spiderman 3 (worked but capped out framerate at like 50fps?)", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2829099805/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'iwubcode', 'id': 15224722, 'node_id': 'MDQ6VXNlcjE1MjI0NzIy', 'avatar_url': 'https://avatars.githubusercontent.com/u/15224722?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/iwubcode', 'html_url': 'https://github.com/iwubcode', 'followers_url': 'https://api.github.com/users/iwubcode/followers', 'following_url': 'https://api.github.com/users/iwubcode/following{/other_user}', 'gists_url': 'https://api.github.com/users/iwubcode/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/iwubcode/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/iwubcode/subscriptions', 'organizations_url': 'https://api.github.com/users/iwubcode/orgs', 'repos_url': 'https://api.github.com/users/iwubcode/repos', 'events_url': 'https://api.github.com/users/iwubcode/events{/privacy}', 'received_events_url': 'https://api.github.com/users/iwubcode/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:43:53.514641	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:43:52Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:43:52Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n* Spongebob: Battle for Bikini Bottom - works out the box.  Didn't test the whole game, but Jellyfish fields worked well.\r\n* Spongebob: The Movie - works out of the box.  Didn't test the whole game, but the intro level played normally.\r\n* Spyro: Enter the Dragonfly - works.  Requires an extra emulated CPU clock override to reach 120 FPS or higher though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n* Wheel of Fortune - works perfectly, but almost everything is keyed to 20 FPS, so only the Wii Remote cursor and some camera movements feel any better.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n* Spyro - A Hero's Tail - speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T22:28:38Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13646, 'watchers_count': 13646, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13646, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:25:07.092919	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T22:21:40Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:25:05Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other working games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n* Sonic Colors - 60 FPS cheat doesn't appear to be easily modifiable into a 120 FPS cheat, speeds up beyond 60 FPS.\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}
2025-04-25T22:21:41.149776	{'source': 'webserver', 'gh_type': 'issue_comment', 'raw': {'action': 'edited', 'changes': {'body': {'from': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay."}}, 'issue': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'repository_url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/labels{/name}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/comments', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/events', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'id': 2499591130, 'node_id': 'PR_kwDOALCn2M56Fzyc', 'number': 13046, 'title': 'Add VBI Frequency', 'user': {'login': 'SuperSamus', 'id': 40663462, 'node_id': 'MDQ6VXNlcjQwNjYzNDYy', 'avatar_url': 'https://avatars.githubusercontent.com/u/40663462?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/SuperSamus', 'html_url': 'https://github.com/SuperSamus', 'followers_url': 'https://api.github.com/users/SuperSamus/followers', 'following_url': 'https://api.github.com/users/SuperSamus/following{/other_user}', 'gists_url': 'https://api.github.com/users/SuperSamus/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/SuperSamus/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/SuperSamus/subscriptions', 'organizations_url': 'https://api.github.com/users/SuperSamus/orgs', 'repos_url': 'https://api.github.com/users/SuperSamus/repos', 'events_url': 'https://api.github.com/users/SuperSamus/events{/privacy}', 'received_events_url': 'https://api.github.com/users/SuperSamus/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'labels': [], 'state': 'open', 'locked': False, 'assignee': None, 'assignees': [], 'milestone': None, 'comments': 17, 'created_at': '2024-09-01T17:20:54Z', 'updated_at': '2025-04-25T21:24:01Z', 'closed_at': None, 'author_association': 'CONTRIBUTOR', 'type': None, 'active_lock_reason': None, 'draft': True, 'pull_request': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls/13046', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046', 'diff_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.diff', 'patch_url': 'https://github.com/dolphin-emu/dolphin/pull/13046.patch', 'merged_at': None}, 'body': 'Rebase of #11486, which seems to have been abandoned.\r\n\r\nThe highlight of this feature is the ability to **play games at higher than 60 FPS**, at normal gameplay speed, and without affecting the audio.\r\n\r\nhttps://github.com/user-attachments/assets/d33119c7-994a-4414-a9f9-0e8ed8f7cb4a\r\n\r\n(More videos on #11486)\r\n\r\nThis feature works, it\'s simple and non-invasive, and put formally, it is very cool.\r\n\r\nHowever, the current user experience isn\'t the best.\r\nHere are the current problems, with proposed solutions. I\'m asking for feedback on the "IMO"s.\r\n\r\n### ~~CPU Overclock~~\r\n\r\nA game with more FPS is obviously going to be more demanding for the emulated console, but if the emulated CPU clock doesn\'t change, then the console is basically going to be underclocked.\r\nAt best, this will cause the game to not run at the target framerate (which defeats the whole point).\r\nAt worst, the game will freeze.[^1]\r\n\r\n~~IMO, a simple solution would be that changing VBI Overclock will also "secretly" multiply the emulated CPU clock.~~ Done!\r\n\r\n### Cheat codes\r\n\r\nThere are different types of games.\r\n- Some will speed up.[^2]\r\n  -  Worst case, you can do nothing about it.\r\n     - Many Nintendo games like Mario Kart Wii or Super Mario Galaxy have their speed completely tied to the frame rate. They even ignore PAL 50 Hz!\r\n  - Best case, the game doesn\'t dynamically change the game speed, but it *can* be changed with a cheat code.\r\n    - A good chunk of codes is probably just going to replace a `3C888889` (1/60) with 1/DesiredFPS.\r\n    - If the game speed is adjusted in PAL 50 Hz, then it\'s a good sign that this is likely possible.\r\n- Others seem to not react at all.\r\n  - Best case, the rendering is capped by a time-based frame rate limiter. It can be theoretically uncapped with a cheat code.\r\n  - Worst case, the game logic is capped by a time-based/MaxFPS frame rate limiter. Forcing the game to render more often simply results in duplicated frames. (e.g. PokéPark Wii, which internally runs at 60 FPS no matter what, even in PAL50.)\r\n- Some are... [a weird mix of these](https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-2160631877)?\r\n- And some play at normal speed at higher framerates with no (or minor) issues!\r\n\r\nSo, the situation here is extremely game-dependent.\r\n\r\nThe golden standard for this is probably Cemu: its graphics packs, which are automatically downloaded, offer a choice of presets that patch the game *and* set the settings required to play at a specific framerate.\r\n\r\nDolphin could do something like it with its per-game settings, but... there can only be one per game. You can\'t "choose" a preset.\r\n\r\nThe discoverability of cheat codes in general is also bad. Currently, all "enhancement" cheat codes are only located in the Dolphin wiki, and must be manually inserted. This is in contrast to, for instance, PCSX2 and RPCS3, which do have patches included (for the former they are in a separate repo, for the latter they are scraped from the wiki).\r\n\r\nThis is a complicated issue, and affects more than this PR.[^3] However, because there are games that don\'t require this, I don\'t think that it *needs* to be tackled now, IMO.\r\n\r\nPlus, giving cheat-makers the ability to cook these codes for the games that need it is valuable, even before the feature has good UX, IMO.\r\n\r\n### Where to put the option?\r\n\r\n![image](https://github.com/user-attachments/assets/b863866b-91c9-4660-ba14-0ff51532c60b)\r\n\r\nWhat this says: https://github.com/dolphin-emu/dolphin/pull/11486#issuecomment-1402925859\r\n\r\nEDIT: No much of a problem anymore since 13422 has been merged.\r\n\r\nIMO, it could be exposed exclusively in the in-game settings (like RPCS3)? That would make the options harder to discover for the users that shouldn\'t touch it, while allowing the cheat-makers to have fun with it.\r\n\r\n### Vsync\r\n\r\nWhat if VBI Frequency makes framerate higher than the display\'s refresh rate, and Vsync is on?\r\n\r\nEDIT NOTE: Previous note was VBI Overclock.\r\n\r\n[^1]: For instance, Skylanders: Swap Force is affected by this. Do note that this happens when the emulated CPU is underclocked, even *without* VBI Frequency.\r\n[^2]: Though, I guess being able to play a game in fast-forward without affecting audio is a use case, assuming the game doesn\'t depend on audio timings.\r\n[^3]: Something I was thinking is, Dolphin currently has a problem in giving a user the choice of performance vs accuracy. The current situation is that performance is favored, and to get accuracy, the user needs to visit the wiki and manually apply the settings listed there. Whatever system is going to solve this could also be applied here.', 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/reactions', 'total_count': 6, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 6}, 'timeline_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046/timeline', 'performed_via_github_app': None, 'state_reason': None}, 'comment': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367', 'html_url': 'https://github.com/dolphin-emu/dolphin/pull/13046#issuecomment-2825772367', 'issue_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/13046', 'id': 2825772367, 'node_id': 'IC_kwDOALCn2M6obd1P', 'user': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'created_at': '2025-04-23T23:40:20Z', 'updated_at': '2025-04-25T22:21:39Z', 'author_association': 'MEMBER', 'body': "I wanted to compile a list of games that support this because they're pretty spread out and annoying to find.  I'm ordering them based on how they run (in terms of brokenness) and spectacle.  Novelty means that it works, but too many things are broken to really play the game for long.\r\n\r\nExcellent:\r\n* Speedracer - works without cheats\r\n* Nascar - Inside Line - works up to 120 FPS without cheats\r\n* Skylanders Supercharged Racing - Requires cheats\r\n* Need For Speed Nitro - Requires cheats\r\n* Skylanders Swap Force - Requires anti-softlock cheats but works otherwise.\r\n* Crash Nitro Kart - works without cheats\r\n* Crash Tag Team Racing - works without cheats\r\n* NIGHTS: Journey of Dreams - works without cheats.  Interpolates some hair physics to 60 if you go above 60.\r\n* Mini Ninjas - works without cheats.\r\n* Tomb Raider: Anniversary - reported by iwubcode, but not personally verified\r\n* Pitfall the Lost Expedition - confirmed by avasam, but not personally verified\r\n* Prince of Persia: The Forgotten Sands - reported by iwubcode, but not personally verified\r\n* Munchables, The - reported by iwubcode, yada yada yada\r\n* Chicken Little: Ace in Action - Reported by iwubcode\r\n* Red Steel - works without cheats, but a cheat already exists to get it to 60.\r\n* Mobile Suit Gundamn: MS Sensen 0079 - reported by iwubcode\r\n* Crash Bandicoot: Wrath of Cortex - works up to 200%, then starts to speed up.  Allows for consistent 60 FPS but nothing more.\r\n* Super Mario Strikers - Works without cheats\r\n* Mario Strikers Charged - Works without cheats\r\n* Mario Sports Mix - Works without cheats\r\n* Pokemon Battle Revolution - Appears to work, but some animations may be keyframed to 60.  Definitely have some smoother animations and camera movements though.\r\n\r\nGood:\r\n* Skylander's Spyro's Adventure and Giants - require cheats, but seem to work okay with some minor issues.\r\n* Metroid Prime 2 - Possibly more for primehack, requires cheats, breaks in some cutscenes above 90 FPS.\r\n* Super Smash Bros. Brawl - Needs a cheat - 04708D20 3F000000.  Menus are far too fast, but in-game seems fine.  I haven't played brawl in a long time to know if it feels any different, but it's definitely smooth.\r\n\r\nClose to working:\r\n\r\n* Super Smash Bros. Melee - Does not work yet with 04432A2C 00149970 code, but should be patchable.  If this is fixed, would be more or less perfect with the other owrking games.\r\n* Sonic and the Black Knight - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS\r\n* Sonic and the Secret Rings - In theory should work, but hangs on boot with the current 60 FPS code modified to 120 FPS.\r\n\r\nNovelty:\r\n* Super Mario Sunshine - Requires cheats, music does not work.\r\n* Pikmin 1/2 GC - Requires cheats, causes a multitude of issues.\r\n* 007 NightFire - Driving scenes run fine, but the rest of the game is 2x speed.\r\n\r\nI'll note some games that have no interesting effects as well, just to show they've been tested.  This is just a sampling I decided to write down - the vast majority of titles do not have positive benefits to this feature.  It's possible that cheats could allow some of these games to reach higher framerates with this hack, but I'm not the right person to do serious digging on them.\r\n\r\n* Dave Mirra's Freestyle BMX 2 - Speeds up\r\n* Pokemon Colosseum - Speeds up\r\n* Super Mario Galaxy 1/2 - Speeds up/Hangs on audio potentially\r\n* Wind Waker - speeds up, hangs on audio potentially\r\n* F-Zero GX - Speeds up\r\n* Fortune Street - Speeds up\r\n* Gotcha Force - Speeds up\r\n* Luigi's Mansion - speeds up\r\n* Mario Superstar Baseball - speeds up\r\n* Mega Man Network Transmission - speeds up\r\n* Klonoa - speeds up\r\n* Elebits-  speeds up\r\n\r\nMost games I've tested just speed up or slow down, other games like Silent Hill: Shattered Memories show significant bugginess in cutscenes but are just sped up during gameplay.", 'reactions': {'url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments/2825772367/reactions', 'total_count': 0, '+1': 0, '-1': 0, 'laugh': 0, 'hooray': 0, 'confused': 0, 'heart': 0, 'rocket': 0, 'eyes': 0}, 'performed_via_github_app': None}, 'repository': {'id': 11577304, 'node_id': 'MDEwOlJlcG9zaXRvcnkxMTU3NzMwNA==', 'name': 'dolphin', 'full_name': 'dolphin-emu/dolphin', 'private': False, 'owner': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/dolphin-emu', 'html_url': 'https://github.com/dolphin-emu', 'followers_url': 'https://api.github.com/users/dolphin-emu/followers', 'following_url': 'https://api.github.com/users/dolphin-emu/following{/other_user}', 'gists_url': 'https://api.github.com/users/dolphin-emu/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/dolphin-emu/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/dolphin-emu/subscriptions', 'organizations_url': 'https://api.github.com/users/dolphin-emu/orgs', 'repos_url': 'https://api.github.com/users/dolphin-emu/repos', 'events_url': 'https://api.github.com/users/dolphin-emu/events{/privacy}', 'received_events_url': 'https://api.github.com/users/dolphin-emu/received_events', 'type': 'Organization', 'user_view_type': 'public', 'site_admin': False}, 'html_url': 'https://github.com/dolphin-emu/dolphin', 'description': 'Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.', 'fork': False, 'url': 'https://api.github.com/repos/dolphin-emu/dolphin', 'forks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/forks', 'keys_url': 'https://api.github.com/repos/dolphin-emu/dolphin/keys{/key_id}', 'collaborators_url': 'https://api.github.com/repos/dolphin-emu/dolphin/collaborators{/collaborator}', 'teams_url': 'https://api.github.com/repos/dolphin-emu/dolphin/teams', 'hooks_url': 'https://api.github.com/repos/dolphin-emu/dolphin/hooks', 'issue_events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/events{/number}', 'events_url': 'https://api.github.com/repos/dolphin-emu/dolphin/events', 'assignees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/assignees{/user}', 'branches_url': 'https://api.github.com/repos/dolphin-emu/dolphin/branches{/branch}', 'tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/tags', 'blobs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/blobs{/sha}', 'git_tags_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/tags{/sha}', 'git_refs_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/refs{/sha}', 'trees_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/trees{/sha}', 'statuses_url': 'https://api.github.com/repos/dolphin-emu/dolphin/statuses/{sha}', 'languages_url': 'https://api.github.com/repos/dolphin-emu/dolphin/languages', 'stargazers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/stargazers', 'contributors_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contributors', 'subscribers_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscribers', 'subscription_url': 'https://api.github.com/repos/dolphin-emu/dolphin/subscription', 'commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/commits{/sha}', 'git_commits_url': 'https://api.github.com/repos/dolphin-emu/dolphin/git/commits{/sha}', 'comments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/comments{/number}', 'issue_comment_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues/comments{/number}', 'contents_url': 'https://api.github.com/repos/dolphin-emu/dolphin/contents/{+path}', 'compare_url': 'https://api.github.com/repos/dolphin-emu/dolphin/compare/{base}...{head}', 'merges_url': 'https://api.github.com/repos/dolphin-emu/dolphin/merges', 'archive_url': 'https://api.github.com/repos/dolphin-emu/dolphin/{archive_format}{/ref}', 'downloads_url': 'https://api.github.com/repos/dolphin-emu/dolphin/downloads', 'issues_url': 'https://api.github.com/repos/dolphin-emu/dolphin/issues{/number}', 'pulls_url': 'https://api.github.com/repos/dolphin-emu/dolphin/pulls{/number}', 'milestones_url': 'https://api.github.com/repos/dolphin-emu/dolphin/milestones{/number}', 'notifications_url': 'https://api.github.com/repos/dolphin-emu/dolphin/notifications{?since,all,participating}', 'labels_url': 'https://api.github.com/repos/dolphin-emu/dolphin/labels{/name}', 'releases_url': 'https://api.github.com/repos/dolphin-emu/dolphin/releases{/id}', 'deployments_url': 'https://api.github.com/repos/dolphin-emu/dolphin/deployments', 'created_at': '2013-07-22T09:07:57Z', 'updated_at': '2025-04-25T16:33:46Z', 'pushed_at': '2025-04-25T00:56:43Z', 'git_url': 'git://github.com/dolphin-emu/dolphin.git', 'ssh_url': 'git@github.com:dolphin-emu/dolphin.git', 'clone_url': 'https://github.com/dolphin-emu/dolphin.git', 'svn_url': 'https://github.com/dolphin-emu/dolphin', 'homepage': 'https://dolphin-emu.org', 'size': 526967, 'stargazers_count': 13645, 'watchers_count': 13645, 'language': 'C++', 'has_issues': False, 'has_projects': False, 'has_downloads': True, 'has_wiki': True, 'has_pages': False, 'has_discussions': False, 'forks_count': 2778, 'mirror_url': None, 'archived': False, 'disabled': False, 'open_issues_count': 360, 'license': {'key': 'other', 'name': 'Other', 'spdx_id': 'NOASSERTION', 'url': None, 'node_id': 'MDc6TGljZW5zZTA='}, 'allow_forking': True, 'is_template': False, 'web_commit_signoff_required': False, 'topics': ['cpp', 'emulation', 'emulator', 'gamecube', 'wii'], 'visibility': 'public', 'forks': 2778, 'open_issues': 360, 'watchers': 13645, 'default_branch': 'master', 'custom_properties': {}}, 'organization': {'login': 'dolphin-emu', 'id': 5050316, 'node_id': 'MDEyOk9yZ2FuaXphdGlvbjUwNTAzMTY=', 'url': 'https://api.github.com/orgs/dolphin-emu', 'repos_url': 'https://api.github.com/orgs/dolphin-emu/repos', 'events_url': 'https://api.github.com/orgs/dolphin-emu/events', 'hooks_url': 'https://api.github.com/orgs/dolphin-emu/hooks', 'issues_url': 'https://api.github.com/orgs/dolphin-emu/issues', 'members_url': 'https://api.github.com/orgs/dolphin-emu/members{/member}', 'public_members_url': 'https://api.github.com/orgs/dolphin-emu/public_members{/member}', 'avatar_url': 'https://avatars.githubusercontent.com/u/5050316?v=4', 'description': ''}, 'sender': {'login': 'JMC47', 'id': 6598209, 'node_id': 'MDQ6VXNlcjY1OTgyMDk=', 'avatar_url': 'https://avatars.githubusercontent.com/u/6598209?v=4', 'gravatar_id': '', 'url': 'https://api.github.com/users/JMC47', 'html_url': 'https://github.com/JMC47', 'followers_url': 'https://api.github.com/users/JMC47/followers', 'following_url': 'https://api.github.com/users/JMC47/following{/other_user}', 'gists_url': 'https://api.github.com/users/JMC47/gists{/gist_id}', 'starred_url': 'https://api.github.com/users/JMC47/starred{/owner}{/repo}', 'subscriptions_url': 'https://api.github.com/users/JMC47/subscriptions', 'organizations_url': 'https://api.github.com/users/JMC47/orgs', 'repos_url': 'https://api.github.com/users/JMC47/repos', 'events_url': 'https://api.github.com/users/JMC47/events{/privacy}', 'received_events_url': 'https://api.github.com/users/JMC47/received_events', 'type': 'User', 'user_view_type': 'public', 'site_admin': False}, 'installation': {'id': 35437981, 'node_id': 'MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMzU0Mzc5ODE='}}, 'type': 'raw_gh_hook'}

Recent 'raw_redmine_hook' events

2025-04-24T04:46:05.412341	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13743, 'subject': 'Darwin implementation for MemArena is broken on macOS Catalina', 'description': '**Game Name?**\r\n\r\nMario Kart Wii, but possibly the entire GC/Wii library\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nRCMP01\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nGood dump\r\n\r\n\r\n**What\'s the problem? Describe what went wrong.**\r\n\r\n"Memory::Init(): failed to create view for physical region"\r\n\r\nThis may affect other older macOS versions as well. Additional testing is required.\r\n\r\nReport made on behalf of Moonwalker of the Cuckoo Variety on Discord.\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start a game\r\n2. Observe error\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2412-258\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo (implied), 2412\r\n\r\n**If the issue isn\'t present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2412-168\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nmacOS Catalina 10.15.7\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\nN/A', 'created_on': '2025-02-10T21:55:55.211Z', 'updated_on': '2025-04-24T04:46:05.364Z', 'closed_on': '2025-04-24T04:46:05.364Z', 'root_id': 13743, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 3, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['OS X']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '1'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2412-168'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503-206'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 3, 'name': 'Fixed'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 34070, 'login': 'OatmealDome', 'mail': 'julian@oatmealdome.me', 'firstname': 'Julian', 'lastname': 'P', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f911993a7217b495c2d4168af1578ab0?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748586, 'notes': '', 'created_on': '2025-04-24T04:46:05.376Z', 'private_notes': False, 'author': {'id': 34070, 'login': 'OatmealDome', 'mail': 'julian@oatmealdome.me', 'firstname': 'Julian', 'lastname': 'P', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f911993a7217b495c2d4168af1578ab0?rating=PG&size=24'}, 'details': [{'id': 182813, 'value': '3', 'old_value': '7', 'prop_key': 'status_id', 'property': 'attr'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13743'}, 'type': 'raw_redmine_hook'}
2025-04-24T04:45:53.029477	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13743, 'subject': 'Darwin implementation for MemArena is broken on macOS Catalina', 'description': '**Game Name?**\r\n\r\nMario Kart Wii, but possibly the entire GC/Wii library\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nRCMP01\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nGood dump\r\n\r\n\r\n**What\'s the problem? Describe what went wrong.**\r\n\r\n"Memory::Init(): failed to create view for physical region"\r\n\r\nThis may affect other older macOS versions as well. Additional testing is required.\r\n\r\nReport made on behalf of Moonwalker of the Cuckoo Variety on Discord.\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start a game\r\n2. Observe error\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2412-258\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo (implied), 2412\r\n\r\n**If the issue isn\'t present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2412-168\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nmacOS Catalina 10.15.7\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\nN/A', 'created_on': '2025-02-10T21:55:55.211Z', 'updated_on': '2025-04-24T04:45:52.950Z', 'closed_on': None, 'root_id': 13743, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 2, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['OS X']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '1'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2412-168'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503-206'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 7, 'name': 'Accepted'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 34070, 'login': 'OatmealDome', 'mail': 'julian@oatmealdome.me', 'firstname': 'Julian', 'lastname': 'P', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f911993a7217b495c2d4168af1578ab0?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748585, 'notes': 'Assuming fixed in 2503-206; 10.15 support dropped in 2503a-280.', 'created_on': '2025-04-24T04:45:52.955Z', 'private_notes': False, 'author': {'id': 34070, 'login': 'OatmealDome', 'mail': 'julian@oatmealdome.me', 'firstname': 'Julian', 'lastname': 'P', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f911993a7217b495c2d4168af1578ab0?rating=PG&size=24'}, 'details': [{'id': 182812, 'value': '2503-206', 'old_value': '', 'prop_key': '10', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13743'}, 'type': 'raw_redmine_hook'}
2025-04-23T22:38:31.823182	{'source': 'webserver', 'rm_type': 'opened', 'raw': {'action': 'opened', 'issue': {'id': 13793, 'subject': 'Dolphin segfaults on quitting in macOS.', 'description': '\r\n\r\n\r\n\r\n\r\n\r\n**What\'s the problem? Describe what went wrong.**\r\n\r\nDolphin crashes with segmentation fault when the user quits the app.\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\nQuit the app (Command-Q or via the menu)\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes - version 2503a-306\r\n\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nMacbook Pro 16-inch, Nov 2023\r\nChip: Apple M3 Max\r\nMemory: 36 GB\r\nmacOS 14.7.4\r\n\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n-------------------------------------\r\nTranslated Report (Full Report Below)\r\n-------------------------------------\r\n\r\nProcess:               Dolphin [43320]\r\nPath:                  /Applications/Dolphin.app/Contents/MacOS/Dolphin\r\nIdentifier:            org.dolphin-emu.dolphin\r\nVersion:               2503a-306 (2503.1)\r\nCode Type:             ARM-64 (Native)\r\nParent Process:        launchd [1]\r\nUser ID:               501\r\n\r\nDate/Time:             2025-04-24 01:27:44.5511 +0300\r\nOS Version:            macOS 14.7.4 (23H420)\r\nReport Version:        12\r\nAnonymous UUID:        5639D0DE-000E-246F-46C4-6340960C7F98\r\n\r\n\r\nTime Awake Since Boot: 5800000 seconds\r\n\r\nSystem Integrity Protection: enabled\r\n\r\nCrashed Thread:        0  Dispatch queue: com.apple.main-thread\r\n\r\nException Type:        EXC_BAD_ACCESS (SIGSEGV)\r\nException Codes:       KERN_INVALID_ADDRESS at 0x0000000000000000\r\nException Codes:       0x0000000000000001, 0x0000000000000000\r\n\r\nTermination Reason:    Namespace SIGNAL, Code 11 Segmentation fault: 11\r\nTerminating Process:   exc handler [43320]\r\n\r\nVM Region Info: 0 is not in any region.  Bytes before following region: 4367548416\r\n      REGION TYPE                    START - END         [ VSIZE] PRT/MAX SHRMOD  REGION DETAIL\r\n      UNUSED SPACE AT START\r\n--->  \r\n      __TEXT                      104538000-1053b8000    [ 14.5M] r-x/r-x SM=COW  /Applications/Dolphin.app/Contents/MacOS/Dolphin\r\n\r\nThread 0 Crashed::  Dispatch queue: com.apple.main-thread\r\n0   QtCore                        \t       0x1086067e0 QThreadData::ref() + 4\r\n1   QtCore                        \t       0x1085622f4 QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, int, int const*, QMetaObject const*) + 540\r\n2   QtCore                        \t       0x108561fc8 QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) + 452\r\n3   Dolphin                       \t       0x1046768d4 std::__1::__function::__func<MainWindow::MainWindow(Core::System&, std::__1::unique_ptr<BootParameters, std::__1::default_delete<BootParameters>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0, std::__1::allocator<MainWindow::MainWindow(Core::System&, std::__1::unique_ptr<BootParameters, std::__1::default_delete<BootParameters>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0>, void ()>::operator()() + 116\r\n\r\nThread 1:\r\n0   libsystem_pthread.dylib       \t       0x19a8c8d20 start_wqthread + 0\r\n\r\nThread 2:\r\n0   libsystem_pthread.dylib       \t       0x19a8c8d20 start_wqthread + 0\r\n\r\nThread 3:\r\n0   libsystem_pthread.dylib       \t       0x19a8c8d20 start_wqthread + 0\r\n\r\nThread 4:: org.libusb.device-hotplug\r\n0   libsystem_kernel.dylib        \t       0x19a88cdd4 mach_msg2_trap + 8\r\n1   libsystem_kernel.dylib        \t       0x19a89f5c4 mach_msg2_internal + 80\r\n2   libsystem_kernel.dylib        \t       0x19a8959a4 mach_msg_overwrite + 476\r\n3   libsystem_kernel.dylib        \t       0x19a88d158 mach_msg + 24\r\n4   CoreFoundation                \t       0x19a9ad660 __CFRunLoopServiceMachPort + 160\r\n5   CoreFoundation                \t       0x19a9abf24 __CFRunLoopRun + 1208\r\n6   CoreFoundation                \t       0x19a9ab414 CFRunLoopRunSpecific + 608\r\n7   CoreFoundation                \t       0x19aa2943c CFRunLoopRun + 64\r\n8   Dolphin                       \t       0x10519b7b0 darwin_event_thread_main + 332\r\n9   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 5:: libusb thread\r\n0   libsystem_kernel.dylib        \t       0x19a8956e0 poll + 8\r\n1   Dolphin                       \t       0x10519de5c usbi_wait_for_events + 44\r\n2   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 6:\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   libc++.1.dylib                \t       0x19a7f3ba8 std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) + 100\r\n3   Dolphin                       \t       0x1051b9f54 IoThreadHolder::Start()::\'lambda\'()::operator()() const + 272\r\n4   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 7:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 8:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 9:: Analytics\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   libc++.1.dylib                \t       0x19a7f3b14 std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&) + 28\r\n3   Dolphin                       \t       0x1050a6264 Common::AnalyticsReporter::ThreadProc() + 148\r\n4   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 10:\r\n0   libsystem_pthread.dylib       \t       0x19a8c8d20 start_wqthread + 0\r\n\r\nThread 11:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 12:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 13:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 14:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 15:: Thread (pooled)\r\n0   libsystem_kernel.dylib        \t       0x19a8905cc __psynch_cvwait + 8\r\n1   libsystem_pthread.dylib       \t       0x19a8ce55c _pthread_cond_wait + 1228\r\n2   QtCore                        \t       0x108688be8 QWaitConditionPrivate::wait_relative(QDeadlineTimer) + 280\r\n3   QtCore                        \t       0x1086888a0 QWaitConditionPrivate::wait(QDeadlineTimer) + 92\r\n4   QtCore                        \t       0x1086887cc QWaitCondition::wait(QMutex*, QDeadlineTimer) + 108\r\n5   QtCore                        \t       0x108682d98 QThreadPoolThread::run() + 876\r\n6   QtCore                        \t       0x10867ead0 QThreadPrivate::start(void*) + 332\r\n7   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n8   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 16:: com.apple.CFSocket.private\r\n0   libsystem_kernel.dylib        \t       0x19a897ec8 __select + 8\r\n1   CoreFoundation                \t       0x19a9d6914 __CFSocketManager + 640\r\n2   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n3   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 17:: com.apple.NSEventThread\r\n0   libsystem_kernel.dylib        \t       0x19a88cdd4 mach_msg2_trap + 8\r\n1   libsystem_kernel.dylib        \t       0x19a89f5c4 mach_msg2_internal + 80\r\n2   libsystem_kernel.dylib        \t       0x19a8959a4 mach_msg_overwrite + 476\r\n3   libsystem_kernel.dylib        \t       0x19a88d158 mach_msg + 24\r\n4   CoreFoundation                \t       0x19a9ad660 __CFRunLoopServiceMachPort + 160\r\n5   CoreFoundation                \t       0x19a9abf24 __CFRunLoopRun + 1208\r\n6   CoreFoundation                \t       0x19a9ab414 CFRunLoopRunSpecific + 608\r\n7   AppKit                        \t       0x19e337280 _NSEventThread + 144\r\n8   libsystem_pthread.dylib       \t       0x19a8cdf94 _pthread_start + 136\r\n9   libsystem_pthread.dylib       \t       0x19a8c8d34 thread_start + 8\r\n\r\nThread 18:\r\n0   libsystem_pthread.dylib       \t       0x19a8c8d20 start_wqthread + 0\r\n\r\n\r\nThread 0 crashed with ARM Thread State (64-bit):\r\n    x0: 0x0000000000000000   x1: 0x00000000e2641031   x2: 0x0000000000000060   x3: 0x0000000000000005\r\n    x4: 0x0000000000000003   x5: 0x0000000000001200   x6: 0x0000600001105200   x7: 0x000000010891f9a8\r\n    x8: 0x0000000000000001   x9: 0x0000600001105200  x10: 0x00006013d0860000  x11: 0x0000000000000060\r\n   x12: 0x0000600003704144  x13: 0x00000000001ff800  x14: 0x00000000000007fb  x15: 0x00000000e2641031\r\n   x16: 0x0000000000000030  x17: 0x00000000e2840833  x18: 0x0000000000000000  x19: 0x000000000000003a\r\n   x20: 0x000000016b8c71a8  x21: 0x0000000000000000  x22: 0x000000016b8c71b0  x23: 0x000000010891f9a8\r\n   x24: 0x0000000000000000  x25: 0x0000600001105200  x26: 0x0000000000000002  x27: 0x00000001051df958\r\n   x28: 0x000000016b8c7570   fp: 0x000000016b8c7120   lr: 0x00000001085622f4\r\n    sp: 0x000000016b8c70a0   pc: 0x00000001086067e0 cpsr: 0x60001000\r\n   far: 0x0000000000000000  esr: 0x92000006 (Data Abort) byte read Translation fault\r\n\r\nBinary Images:\r\n       0x112dcc000 -        0x112de3fff com.apple.iokit.IOHIDLib (2.0.0) <a9e69c72-ac13-310b-a63e-99b33fe0ffef> /System/Library/Extensions/IOHIDFamily.kext/Contents/PlugIns/IOHIDLib.plugin/Contents/MacOS/IOHIDLib\r\n       0x10c09c000 -        0x10c0a3fff com.apple.GameController.KeyboardAndMouseSupport (*) <384afc36-6cca-3809-b88c-509762712e06> /System/Library/Frameworks/GameController.framework/Versions/A/Resources/KeyboardAndMouseSupport.bundle/Contents/MacOS/KeyboardAndMouseSupport\r\n       0x107120000 -        0x10712bfff libobjc-trampolines.dylib (*) <bc93a03a-e201-3510-816f-92da60f1109b> /usr/lib/libobjc-trampolines.dylib\r\n       0x1070fc000 -        0x107107fff com.apple.iokit.IOUSBLib (900.4.2) <14b1fbb4-54d8-3e8d-b0e1-e0bff75b67ec> /System/Library/Extensions/IOUSBHostFamily.kext/Contents/PlugIns/IOUSBLib.bundle/Contents/MacOS/IOUSBLib\r\n       0x1062c4000 -        0x1062e7fff libqmacstyle.dylib (*) <48d9ee09-0961-3112-8fca-55b8be5b13a6> /Applications/Dolphin.app/Contents/MacOS/styles/libqmacstyle.dylib\r\n       0x1061b4000 -        0x106247fff libqcocoa.dylib (*) <afd68a54-a7cd-3c78-b942-50ffc848d3f8> /Applications/Dolphin.app/Contents/MacOS/platforms/libqcocoa.dylib\r\n       0x107134000 -        0x107587fff org.qt-project.QtWidgets (6.4) <49e3d219-33f0-3b0e-96ec-7f16f63f94f4> /Applications/Dolphin.app/Contents/Frameworks/QtWidgets.framework/Versions/A/QtWidgets\r\n       0x106358000 -        0x10690ffff org.qt-project.QtGui (6.4) <fde96f4b-6cba-3661-b881-ccbbdc4bbb81> /Applications/Dolphin.app/Contents/Frameworks/QtGui.framework/Versions/A/QtGui\r\n       0x1084ac000 -        0x10891bfff org.qt-project.QtCore (6.4) <8a63c154-84f8-3bc4-8d57-051eb51dcc0a> /Applications/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore\r\n       0x104538000 -        0x1053b7fff org.dolphin-emu.dolphin (2503a-306) <9bc43d70-9871-30b1-bd7b-e9a8e91f9e24> /Applications/Dolphin.app/Contents/MacOS/Dolphin\r\n               0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???\r\n       0x19a8c7000 -        0x19a8d3fff libsystem_pthread.dylib (*) <57cf0002-c127-3580-a0b7-fd447cc0f745> /usr/lib/system/libsystem_pthread.dylib\r\n       0x19a88c000 -        0x19a8c6feb libsystem_kernel.dylib (*) <4d5594b1-bbd0-33c6-a5ed-49569aa03ff2> /usr/lib/system/libsystem_kernel.dylib\r\n       0x19a92f000 -        0x19ae07fff com.apple.CoreFoundation (6.9) <92587b23-b215-3017-b0d3-cc2cbaebbde0> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation\r\n       0x19a7e3000 -        0x19a86fff7 libc++.1.dylib (*) <c4e10d69-6f13-32b1-831d-82da32d7db88> /usr/lib/libc++.1.dylib\r\n       0x19e1d3000 -        0x19f511fff com.apple.AppKit (6.9) <a1126218-5fea-3936-97e6-c8554d390545> /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit\r\n\r\nExternal Modification Summary:\r\n  Calls made by other processes targeting this process:\r\n    task_for_pid: 0\r\n    thread_create: 0\r\n    thread_set_state: 0\r\n  Calls made by this process:\r\n    task_for_pid: 0\r\n    thread_create: 0\r\n    thread_set_state: 0\r\n  Calls made by all processes on this machine:\r\n    task_for_pid: 0\r\n    thread_create: 0\r\n    thread_set_state: 0\r\n\r\nVM Region Summary:\r\nReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)\r\nWritable regions: Total=2.4G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=2.4G(100%)\r\n\r\n                                VIRTUAL   REGION \r\nREGION TYPE                        SIZE    COUNT (non-coalesced) \r\n===========                     =======  ======= \r\nAccelerate framework               256K        2 \r\nActivity Tracing                   256K        1 \r\nCG image                           320K       15 \r\nColorSync                          624K       28 \r\nCoreAnimation                     1104K       55 \r\nCoreGraphics                        32K        2 \r\nCoreServices                       112K        1 \r\nCoreUI image data                 2448K       15 \r\nFoundation                          48K        2 \r\nKernel Alloc Once                   32K        1 \r\nMALLOC                             2.4G       82 \r\nMALLOC guard page                  192K       12 \r\nSTACK GUARD                       56.3M       19 \r\nStack                             17.5M       19 \r\nVM_ALLOCATE                        224K       12 \r\n__AUTH                            1771K      323 \r\n__AUTH_CONST                      23.2M      516 \r\n__CTF                               824        1 \r\n__DATA                            11.1M      511 \r\n__DATA_CONST                      28.0M      530 \r\n__DATA_DIRTY                      1501K      171 \r\n__FONT_DATA                          4K        1 \r\n__INFO_FILTER                         8        1 \r\n__LINKEDIT                       537.0M       11 \r\n__OBJC_RO                         71.9M        1 \r\n__OBJC_RW                         2200K        1 \r\n__TEXT                           503.0M      544 \r\ndyld private memory                272K        2 \r\nmapped file                      214.7M       44 \r\nshared memory                      896K       16 \r\n===========                     =======  ======= \r\nTOTAL                              3.8G     2939 \r\n\r\n\r\n\r\n-----------\r\nFull Report\r\n-----------\r\n\r\n{"app_name":"Dolphin","timestamp":"2025-04-24 01:27:44.00 +0300","app_version":"2503a-306","slice_uuid":"9bc43d70-9871-30b1-bd7b-e9a8e91f9e24","build_version":"2503.1","platform":1,"bundleID":"org.dolphin-emu.dolphin","share_with_app_devs":0,"is_first_party":0,"bug_type":"309","os_version":"macOS 14.7.4 (23H420)","roots_installed":0,"name":"Dolphin","incident_id":"047566D3-1104-451A-BEEF-730E04CAB9BC"}\r\n{\r\n  "uptime" : 5800000,\r\n  "procRole" : "Foreground",\r\n  "version" : 2,\r\n  "userID" : 501,\r\n  "deployVersion" : 210,\r\n  "modelCode" : "Mac15,11",\r\n  "coalitionID" : 344880,\r\n  "osVersion" : {\r\n    "train" : "macOS 14.7.4",\r\n    "build" : "23H420",\r\n    "releaseType" : "User"\r\n  },\r\n  "captureTime" : "2025-04-24 01:27:44.5511 +0300",\r\n  "codeSigningMonitor" : 1,\r\n  "incident" : "047566D3-1104-451A-BEEF-730E04CAB9BC",\r\n  "pid" : 43320,\r\n  "translated" : false,\r\n  "cpuType" : "ARM-64",\r\n  "roots_installed" : 0,\r\n  "bug_type" : "309",\r\n  "procLaunch" : "2025-04-24 01:27:34.3363 +0300",\r\n  "procStartAbsTime" : 141598904815293,\r\n  "procExitAbsTime" : 141599149643926,\r\n  "procName" : "Dolphin",\r\n  "procPath" : "\\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/Dolphin",\r\n  "bundleInfo" : {"CFBundleShortVersionString":"2503a-306","CFBundleVersion":"2503.1","CFBundleIdentifier":"org.dolphin-emu.dolphin"},\r\n  "storeInfo" : {"deviceIdentifierForVendor":"0582145F-7F08-5287-A535-22EA08DE2BA0","thirdParty":true},\r\n  "parentProc" : "launchd",\r\n  "parentPid" : 1,\r\n  "coalitionName" : "org.dolphin-emu.dolphin",\r\n  "crashReporterKey" : "5639D0DE-000E-246F-46C4-6340960C7F98",\r\n  "codeSigningID" : "org.dolphin-emu.dolphin",\r\n  "codeSigningTeamID" : "97835T4369",\r\n  "codeSigningFlags" : 570495745,\r\n  "codeSigningValidationCategory" : 6,\r\n  "codeSigningTrustLevel" : 4294967295,\r\n  "instructionByteStream" : {"beforePC":"AQOAUgIBgFLJSwCU4AMTqv17Qan0T8KowANf1lq5+pd4\\/\\/8XKACAUg==","atPC":"CADouMADX9b9e7+p\\/QMAkQgAgBIIAOi4HwUAcQQIQPphAABU\\/XvBqA=="},\r\n  "sip" : "enabled",\r\n  "vmRegionInfo" : "0 is not in any region.  Bytes before following region: 4367548416\\n      REGION TYPE                    START - END         [ VSIZE] PRT\\/MAX SHRMOD  REGION DETAIL\\n      UNUSED SPACE AT START\\n--->  \\n      __TEXT                      104538000-1053b8000    [ 14.5M] r-x\\/r-x SM=COW  \\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/Dolphin",\r\n  "exception" : {"codes":"0x0000000000000001, 0x0000000000000000","rawCodes":[1,0],"type":"EXC_BAD_ACCESS","signal":"SIGSEGV","subtype":"KERN_INVALID_ADDRESS at 0x0000000000000000"},\r\n  "termination" : {"flags":0,"code":11,"namespace":"SIGNAL","indicator":"Segmentation fault: 11","byProc":"exc handler","byPid":43320},\r\n  "vmregioninfo" : "0 is not in any region.  Bytes before following region: 4367548416\\n      REGION TYPE                    START - END         [ VSIZE] PRT\\/MAX SHRMOD  REGION DETAIL\\n      UNUSED SPACE AT START\\n--->  \\n      __TEXT                      104538000-1053b8000    [ 14.5M] r-x\\/r-x SM=COW  \\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/Dolphin",\r\n  "extMods" : {"caller":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"system":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"targeted":{"thread_create":0,"thread_set_state":0,"task_for_pid":0},"warnings":0},\r\n  "faultingThread" : 0,\r\n  "threads" : [{"triggered":true,"id":46248929,"threadState":{"x":[{"value":0},{"value":3798208561},{"value":96},{"value":5},{"value":3},{"value":4608},{"value":105553134113280},{"value":4438751656,"symbolLocation":0,"symbol":"QObject::staticMetaObject"},{"value":1},{"value":105553134113280},{"value":105638219087872},{"value":96},{"value":105553173954884},{"value":2095104},{"value":2043},{"value":3798208561},{"value":48},{"value":3800303667},{"value":0},{"value":58},{"value":6099333544},{"value":0},{"value":6099333552},{"value":4438751656,"symbolLocation":0,"symbol":"QObject::staticMetaObject"},{"value":0},{"value":105553134113280},{"value":2},{"value":4380817752,"symbolLocation":0,"symbol":"QtPrivate::ConnectionTypes<QtPrivate::List<QObject*>, true>::types()::t"},{"value":6099334512}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4434830068},"cpsr":{"value":1610616832},"fp":{"value":6099333408},"sp":{"value":6099333280},"esr":{"value":2449473542,"description":"(Data Abort) byte read Translation fault"},"pc":{"value":4435503072,"matchesCrashFrame":1},"far":{"value":0}},"queue":"com.apple.main-thread","frames":[{"imageOffset":1419232,"symbol":"QThreadData::ref()","symbolLocation":4,"imageIndex":8},{"imageOffset":746228,"symbol":"QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, int, int const*, QMetaObject const*)","symbolLocation":540,"imageIndex":8},{"imageOffset":745416,"symbol":"QObject::connectImpl(QObject const*, void**, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*)","symbolLocation":452,"imageIndex":8},{"imageOffset":1304788,"symbol":"std::__1::__function::__func<MainWindow::MainWindow(Core::System&, std::__1::unique_ptr<BootParameters, std::__1::default_delete<BootParameters>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0, std::__1::allocator<MainWindow::MainWindow(Core::System&, std::__1::unique_ptr<BootParameters, std::__1::default_delete<BootParameters>>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&)::$_0>, void ()>::operator()()","symbolLocation":116,"imageIndex":9}]},{"id":46248952,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}],"threadState":{"x":[{"value":6099890176},{"value":5635},{"value":6099353600},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6099890176},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887869728},"far":{"value":0}}},{"id":46248953,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}],"threadState":{"x":[{"value":6100463616},{"value":6915},{"value":6099927040},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6100463616},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887869728},"far":{"value":0}}},{"id":46248970,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}],"threadState":{"x":[{"value":6101037056},{"value":18435},{"value":6100500480},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6101037056},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887869728},"far":{"value":0}}},{"id":46248986,"name":"org.libusb.device-hotplug","threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":106665512796160},{"value":0},{"value":106665512796160},{"value":2},{"value":4294967295},{"value":18446744073709550527},{"value":24835},{"value":0},{"value":1},{"value":24835},{"value":4294967172},{"value":2043},{"value":2210652155},{"value":18446744073709551569},{"value":123},{"value":0},{"value":4294967295},{"value":2},{"value":106665512796160},{"value":0},{"value":106665512796160},{"value":6101606328},{"value":8589934592},{"value":21592279046},{"value":21592279046},{"value":4412409862}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887699908},"cpsr":{"value":4096},"fp":{"value":6101606176},"sp":{"value":6101606096},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887624148},"far":{"value":0}},"frames":[{"imageOffset":3540,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":12},{"imageOffset":79300,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":12},{"imageOffset":39332,"symbol":"mach_msg_overwrite","symbolLocation":476,"imageIndex":12},{"imageOffset":4440,"symbol":"mach_msg","symbolLocation":24,"imageIndex":12},{"imageOffset":517728,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":13},{"imageOffset":511780,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":13},{"imageOffset":508948,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":13},{"imageOffset":1025084,"symbol":"CFRunLoopRun","symbolLocation":64,"imageIndex":13},{"imageOffset":12990384,"symbol":"darwin_event_thread_main","symbolLocation":332,"imageIndex":9},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46248987,"name":"libusb thread","threadState":{"x":[{"value":4},{"value":0},{"value":5000},{"value":0},{"value":11},{"value":96},{"value":0},{"value":0},{"value":0},{"value":6102184160},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":2043},{"value":3275698183},{"value":230},{"value":3277793289},{"value":0},{"value":6102183448},{"value":5368736496},{"value":1},{"value":5368735936},{"value":105553174134880},{"value":4389067288,"symbolLocation":0,"symbol":"usbi_default_context"},{"value":1000000},{"value":1},{"value":5368735936},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":4380548700},"cpsr":{"value":536875008},"fp":{"value":6102183904},"sp":{"value":6102183376},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887659232},"far":{"value":0}},"frames":[{"imageOffset":38624,"symbol":"poll","symbolLocation":8,"imageIndex":12},{"imageOffset":13000284,"symbol":"usbi_wait_for_events","symbolLocation":44,"imageIndex":9},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249006,"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":68520,"symbol":"std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>)","symbolLocation":100,"imageIndex":14},{"imageOffset":13115220,"symbol":"IoThreadHolder::Start()::\'lambda\'()::operator()() const","symbolLocation":272,"imageIndex":9},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}],"threadState":{"x":[{"value":260},{"value":0},{"value":5376},{"value":0},{"value":0},{"value":160},{"value":0},{"value":499998000},{"value":6102757016},{"value":0},{"value":105553144923424},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553144923400},{"value":105553144923464},{"value":6102757600},{"value":499998000},{"value":0},{"value":5376},{"value":5377},{"value":5632},{"value":18437520701672696841},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6102757136},"sp":{"value":6102756992},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}}},{"id":46249013,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":11008},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999875},{"value":6103330168},{"value":0},{"value":105553144711320},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553144711296},{"value":105553144711360},{"value":6103331040},{"value":999999875},{"value":29},{"value":11008},{"value":11009},{"value":11264},{"value":10248191152060862009},{"value":105553123886136}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6103330288},"sp":{"value":6103330144},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249014,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":10752},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999917},{"value":6103903608},{"value":0},{"value":105553144711704},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553144711680},{"value":105553144711744},{"value":6103904480},{"value":999999917},{"value":29},{"value":10752},{"value":10753},{"value":11008},{"value":10248191152060862009},{"value":5208309952}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6103903728},"sp":{"value":6103903584},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249015,"name":"Analytics","threadState":{"x":[{"value":260},{"value":0},{"value":256},{"value":0},{"value":0},{"value":160},{"value":0},{"value":0},{"value":6104477320},{"value":0},{"value":4383608224,"symbolLocation":856,"symbol":"_MergedGlobals"},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":4383608200,"symbolLocation":832,"symbol":"_MergedGlobals"},{"value":4383608152,"symbolLocation":784,"symbol":"_MergedGlobals"},{"value":6104477920},{"value":0},{"value":0},{"value":256},{"value":257},{"value":512},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6104477440},"sp":{"value":6104477296},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":68372,"symbol":"std::__1::condition_variable::wait(std::__1::unique_lock<std::__1::mutex>&)","symbolLocation":28,"imageIndex":14},{"imageOffset":11985508,"symbol":"Common::AnalyticsReporter::ThreadProc()","symbolLocation":148,"imageIndex":9},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249021,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}],"threadState":{"x":[{"value":6105051136},{"value":94983},{"value":6104514560},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6105051136},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887869728},"far":{"value":0}}},{"id":46249043,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":9984},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999998792},{"value":6106770808},{"value":0},{"value":105553145007256},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553145007232},{"value":105553145007296},{"value":6106771680},{"value":999998792},{"value":29},{"value":9984},{"value":9985},{"value":10240},{"value":10248191152060862009},{"value":105553123886136}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6106770928},"sp":{"value":6106770784},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249044,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":11008},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999042},{"value":6107344248},{"value":0},{"value":105553144929176},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553144929152},{"value":105553144929216},{"value":6107345120},{"value":999999042},{"value":29},{"value":11008},{"value":11009},{"value":11264},{"value":10248191152060862009},{"value":105553123886136}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6107344368},"sp":{"value":6107344224},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249045,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":10752},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999999875},{"value":6107917688},{"value":0},{"value":105553145404184},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553145404160},{"value":105553145404224},{"value":6107918560},{"value":999999875},{"value":29},{"value":10752},{"value":10753},{"value":11008},{"value":10248191152060862009},{"value":105553123886136}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6107917808},"sp":{"value":6107917664},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249046,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":10496},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999998917},{"value":6108491128},{"value":0},{"value":105553145409176},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553145409152},{"value":105553145409216},{"value":6108492000},{"value":999998917},{"value":29},{"value":10496},{"value":10497},{"value":10752},{"value":10248191152060862009},{"value":105553123886144}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6108491248},"sp":{"value":6108491104},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249047,"name":"Thread (pooled)","threadState":{"x":[{"value":260},{"value":0},{"value":10752},{"value":0},{"value":0},{"value":160},{"value":29},{"value":999998708},{"value":6109064568},{"value":0},{"value":105553145409560},{"value":2},{"value":0},{"value":0},{"value":0},{"value":0},{"value":305},{"value":8806117192},{"value":0},{"value":105553145409536},{"value":105553145409600},{"value":6109065440},{"value":999998708},{"value":29},{"value":10752},{"value":10753},{"value":11008},{"value":10248191152060862009},{"value":105553123886136}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887892316},"cpsr":{"value":1610616832},"fp":{"value":6109064688},"sp":{"value":6109064544},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887638476},"far":{"value":0}},"frames":[{"imageOffset":17868,"symbol":"__psynch_cvwait","symbolLocation":8,"imageIndex":12},{"imageOffset":30044,"symbol":"_pthread_cond_wait","symbolLocation":1228,"imageIndex":11},{"imageOffset":1952744,"symbol":"QWaitConditionPrivate::wait_relative(QDeadlineTimer)","symbolLocation":280,"imageIndex":8},{"imageOffset":1951904,"symbol":"QWaitConditionPrivate::wait(QDeadlineTimer)","symbolLocation":92,"imageIndex":8},{"imageOffset":1951692,"symbol":"QWaitCondition::wait(QMutex*, QDeadlineTimer)","symbolLocation":108,"imageIndex":8},{"imageOffset":1928600,"symbol":"QThreadPoolThread::run()","symbolLocation":876,"imageIndex":8},{"imageOffset":1911504,"symbol":"QThreadPrivate::start(void*)","symbolLocation":332,"imageIndex":8},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249054,"name":"com.apple.CFSocket.private","threadState":{"x":[{"value":4},{"value":0},{"value":105553174230352},{"value":0},{"value":0},{"value":8800},{"value":16},{"value":0},{"value":6112506080},{"value":4},{"value":52113},{"value":31},{"value":14},{"value":4636196320},{"value":72057602669038937,"symbolLocation":72057594037927937,"symbol":"OBJC_CLASS_$___NSCFType"},{"value":8631111000,"symbolLocation":0,"symbol":"OBJC_CLASS_$___NSCFType"},{"value":93},{"value":8806106872},{"value":0},{"value":32},{"value":8631116648,"symbolLocation":0,"symbol":"__CFActiveSocketsLock"},{"value":1},{"value":4638457320},{"value":0},{"value":105553174230352},{"value":105553174230368},{"value":8716651520,"symbolLocation":0,"symbol":"__kCFNull"},{"value":0},{"value":8631115776,"symbolLocation":16,"symbol":"OBJC_CLASS_$_NSConstantArray"}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6888974612},"cpsr":{"value":1610616832},"fp":{"value":6112505792},"sp":{"value":6112472016},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887669448},"far":{"value":0}},"frames":[{"imageOffset":48840,"symbol":"__select","symbolLocation":8,"imageIndex":12},{"imageOffset":686356,"symbol":"__CFSocketManager","symbolLocation":640,"imageIndex":13},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249059,"name":"com.apple.NSEventThread","threadState":{"x":[{"value":268451845},{"value":21592279046},{"value":8589934592},{"value":326636557828096},{"value":0},{"value":326636557828096},{"value":2},{"value":4294967295},{"value":18446744073709550527},{"value":76051},{"value":0},{"value":1},{"value":76051},{"value":1878180},{"value":0},{"value":0},{"value":18446744073709551569},{"value":8806101384},{"value":0},{"value":4294967295},{"value":2},{"value":326636557828096},{"value":0},{"value":326636557828096},{"value":6113075304},{"value":8589934592},{"value":21592279046},{"value":21592279046},{"value":4412409862}],"flavor":"ARM_THREAD_STATE64","lr":{"value":6887699908},"cpsr":{"value":4096},"fp":{"value":6113075152},"sp":{"value":6113075072},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887624148},"far":{"value":0}},"frames":[{"imageOffset":3540,"symbol":"mach_msg2_trap","symbolLocation":8,"imageIndex":12},{"imageOffset":79300,"symbol":"mach_msg2_internal","symbolLocation":80,"imageIndex":12},{"imageOffset":39332,"symbol":"mach_msg_overwrite","symbolLocation":476,"imageIndex":12},{"imageOffset":4440,"symbol":"mach_msg","symbolLocation":24,"imageIndex":12},{"imageOffset":517728,"symbol":"__CFRunLoopServiceMachPort","symbolLocation":160,"imageIndex":13},{"imageOffset":511780,"symbol":"__CFRunLoopRun","symbolLocation":1208,"imageIndex":13},{"imageOffset":508948,"symbol":"CFRunLoopRunSpecific","symbolLocation":608,"imageIndex":13},{"imageOffset":1458816,"symbol":"_NSEventThread","symbolLocation":144,"imageIndex":15},{"imageOffset":28564,"symbol":"_pthread_start","symbolLocation":136,"imageIndex":11},{"imageOffset":7476,"symbol":"thread_start","symbolLocation":8,"imageIndex":11}]},{"id":46249071,"frames":[{"imageOffset":7456,"symbol":"start_wqthread","symbolLocation":0,"imageIndex":11}],"threadState":{"x":[{"value":6113652736},{"value":95239},{"value":6113116160},{"value":0},{"value":409604},{"value":18446744073709551615},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0},{"value":0}],"flavor":"ARM_THREAD_STATE64","lr":{"value":0},"cpsr":{"value":4096},"fp":{"value":0},"sp":{"value":6113652736},"esr":{"value":1442840704,"description":" Address size fault"},"pc":{"value":6887869728},"far":{"value":0}}}],\r\n  "usedImages" : [\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 4611424256,\r\n    "CFBundleShortVersionString" : "2.0.0",\r\n    "CFBundleIdentifier" : "com.apple.iokit.IOHIDLib",\r\n    "size" : 98304,\r\n    "uuid" : "a9e69c72-ac13-310b-a63e-99b33fe0ffef",\r\n    "path" : "\\/System\\/Library\\/Extensions\\/IOHIDFamily.kext\\/Contents\\/PlugIns\\/IOHIDLib.plugin\\/Contents\\/MacOS\\/IOHIDLib",\r\n    "name" : "IOHIDLib",\r\n    "CFBundleVersion" : "2.0.0"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 4496932864,\r\n    "CFBundleIdentifier" : "com.apple.GameController.KeyboardAndMouseSupport",\r\n    "size" : 32768,\r\n    "uuid" : "384afc36-6cca-3809-b88c-509762712e06",\r\n    "path" : "\\/System\\/Library\\/Frameworks\\/GameController.framework\\/Versions\\/A\\/Resources\\/KeyboardAndMouseSupport.bundle\\/Contents\\/MacOS\\/KeyboardAndMouseSupport",\r\n    "name" : "KeyboardAndMouseSupport",\r\n    "CFBundleVersion" : "11.6.3"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 4413587456,\r\n    "size" : 49152,\r\n    "uuid" : "bc93a03a-e201-3510-816f-92da60f1109b",\r\n    "path" : "\\/usr\\/lib\\/libobjc-trampolines.dylib",\r\n    "name" : "libobjc-trampolines.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 4413440000,\r\n    "CFBundleShortVersionString" : "900.4.2",\r\n    "CFBundleIdentifier" : "com.apple.iokit.IOUSBLib",\r\n    "size" : 49152,\r\n    "uuid" : "14b1fbb4-54d8-3e8d-b0e1-e0bff75b67ec",\r\n    "path" : "\\/System\\/Library\\/Extensions\\/IOUSBHostFamily.kext\\/Contents\\/PlugIns\\/IOUSBLib.bundle\\/Contents\\/MacOS\\/IOUSBLib",\r\n    "name" : "IOUSBLib",\r\n    "CFBundleVersion" : "900.4.2"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4398530560,\r\n    "size" : 147456,\r\n    "uuid" : "48d9ee09-0961-3112-8fca-55b8be5b13a6",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/styles\\/libqmacstyle.dylib",\r\n    "name" : "libqmacstyle.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4397416448,\r\n    "size" : 606208,\r\n    "uuid" : "afd68a54-a7cd-3c78-b942-50ffc848d3f8",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/platforms\\/libqcocoa.dylib",\r\n    "name" : "libqcocoa.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4413669376,\r\n    "CFBundleShortVersionString" : "6.4",\r\n    "CFBundleIdentifier" : "org.qt-project.QtWidgets",\r\n    "size" : 4538368,\r\n    "uuid" : "49e3d219-33f0-3b0e-96ec-7f16f63f94f4",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/Frameworks\\/QtWidgets.framework\\/Versions\\/A\\/QtWidgets",\r\n    "name" : "QtWidgets",\r\n    "CFBundleVersion" : "6.4.3"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4399136768,\r\n    "CFBundleShortVersionString" : "6.4",\r\n    "CFBundleIdentifier" : "org.qt-project.QtGui",\r\n    "size" : 5996544,\r\n    "uuid" : "fde96f4b-6cba-3661-b881-ccbbdc4bbb81",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/Frameworks\\/QtGui.framework\\/Versions\\/A\\/QtGui",\r\n    "name" : "QtGui",\r\n    "CFBundleVersion" : "6.4.3"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4434083840,\r\n    "CFBundleShortVersionString" : "6.4",\r\n    "CFBundleIdentifier" : "org.qt-project.QtCore",\r\n    "size" : 4653056,\r\n    "uuid" : "8a63c154-84f8-3bc4-8d57-051eb51dcc0a",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/Frameworks\\/QtCore.framework\\/Versions\\/A\\/QtCore",\r\n    "name" : "QtCore",\r\n    "CFBundleVersion" : "6.4.3"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64",\r\n    "base" : 4367548416,\r\n    "CFBundleShortVersionString" : "2503a-306",\r\n    "CFBundleIdentifier" : "org.dolphin-emu.dolphin",\r\n    "size" : 15204352,\r\n    "uuid" : "9bc43d70-9871-30b1-bd7b-e9a8e91f9e24",\r\n    "path" : "\\/Applications\\/Dolphin.app\\/Contents\\/MacOS\\/Dolphin",\r\n    "name" : "Dolphin",\r\n    "CFBundleVersion" : "2503.1"\r\n  },\r\n  {\r\n    "size" : 0,\r\n    "source" : "A",\r\n    "base" : 0,\r\n    "uuid" : "00000000-0000-0000-0000-000000000000"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 6887862272,\r\n    "size" : 53248,\r\n    "uuid" : "57cf0002-c127-3580-a0b7-fd447cc0f745",\r\n    "path" : "\\/usr\\/lib\\/system\\/libsystem_pthread.dylib",\r\n    "name" : "libsystem_pthread.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 6887620608,\r\n    "size" : 241644,\r\n    "uuid" : "4d5594b1-bbd0-33c6-a5ed-49569aa03ff2",\r\n    "path" : "\\/usr\\/lib\\/system\\/libsystem_kernel.dylib",\r\n    "name" : "libsystem_kernel.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 6888288256,\r\n    "CFBundleShortVersionString" : "6.9",\r\n    "CFBundleIdentifier" : "com.apple.CoreFoundation",\r\n    "size" : 5083136,\r\n    "uuid" : "92587b23-b215-3017-b0d3-cc2cbaebbde0",\r\n    "path" : "\\/System\\/Library\\/Frameworks\\/CoreFoundation.framework\\/Versions\\/A\\/CoreFoundation",\r\n    "name" : "CoreFoundation",\r\n    "CFBundleVersion" : "2602.0.901"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 6886928384,\r\n    "size" : 577528,\r\n    "uuid" : "c4e10d69-6f13-32b1-831d-82da32d7db88",\r\n    "path" : "\\/usr\\/lib\\/libc++.1.dylib",\r\n    "name" : "libc++.1.dylib"\r\n  },\r\n  {\r\n    "source" : "P",\r\n    "arch" : "arm64e",\r\n    "base" : 6947680256,\r\n    "CFBundleShortVersionString" : "6.9",\r\n    "CFBundleIdentifier" : "com.apple.AppKit",\r\n    "size" : 20180992,\r\n    "uuid" : "a1126218-5fea-3936-97e6-c8554d390545",\r\n    "path" : "\\/System\\/Library\\/Frameworks\\/AppKit.framework\\/Versions\\/C\\/AppKit",\r\n    "name" : "AppKit",\r\n    "CFBundleVersion" : "2487.70.105"\r\n  }\r\n],\r\n  "sharedCache" : {\r\n  "base" : 6883393536,\r\n  "size" : 4214620160,\r\n  "uuid" : "bbdb18cb-2145-3ecc-8edf-0f5c8546cdbb"\r\n},\r\n  "vmSummary" : "ReadOnly portion of Libraries: Total=1.0G resident=0K(0%) swapped_out_or_unallocated=1.0G(100%)\\nWritable regions: Total=2.4G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=2.4G(100%)\\n\\n                                VIRTUAL   REGION \\nREGION TYPE                        SIZE    COUNT (non-coalesced) \\n===========                     =======  ======= \\nAccelerate framework               256K        2 \\nActivity Tracing                   256K        1 \\nCG image                           320K       15 \\nColorSync                          624K       28 \\nCoreAnimation                     1104K       55 \\nCoreGraphics                        32K        2 \\nCoreServices                       112K        1 \\nCoreUI image data                 2448K       15 \\nFoundation                          48K        2 \\nKernel Alloc Once                   32K        1 \\nMALLOC                             2.4G       82 \\nMALLOC guard page                  192K       12 \\nSTACK GUARD                       56.3M       19 \\nStack                             17.5M       19 \\nVM_ALLOCATE                        224K       12 \\n__AUTH                            1771K      323 \\n__AUTH_CONST                      23.2M      516 \\n__CTF                               824        1 \\n__DATA                            11.1M      511 \\n__DATA_CONST                      28.0M      530 \\n__DATA_DIRTY                      1501K      171 \\n__FONT_DATA                          4K        1 \\n__INFO_FILTER                         8        1 \\n__LINKEDIT                       537.0M       11 \\n__OBJC_RO                         71.9M        1 \\n__OBJC_RW                         2200K        1 \\n__TEXT                           503.0M      544 \\ndyld private memory                272K        2 \\nmapped file                      214.7M       44 \\nshared memory                      896K       16 \\n===========                     =======  ======= \\nTOTAL                              3.8G     2939 \\n",\r\n  "legacyInfo" : {\r\n  "threadTriggered" : {\r\n    "queue" : "com.apple.main-thread"\r\n  }\r\n},\r\n  "logWritingSignature" : "4f799bc3beb952c47f04347b906b29ecb2479303",\r\n  "trialInfo" : {\r\n  "rollouts" : [\r\n    {\r\n      "rolloutId" : "64b21a7351cbb02ce3442e4e",\r\n      "factorPackIds" : {\r\n        "REMINDERS_GROCERY" : "6647f0f7b6a75d3dc32993e7"\r\n      },\r\n      "deploymentId" : 240000042\r\n    },\r\n    {\r\n      "rolloutId" : "642da32dea3b2418c750f848",\r\n      "factorPackIds" : {\r\n\r\n      },\r\n      "deploymentId" : 240000004\r\n    }\r\n  ],\r\n  "experiments" : [\r\n    {\r\n      "treatmentId" : "f18344bb-554f-48ae-8449-e108a8813a55",\r\n      "experimentId" : "6685b5584477001000e8c6c9",\r\n      "deploymentId" : 400000004\r\n    }\r\n  ]\r\n}\r\n}\r\n\r\nModel: Mac15,11, BootROM 11881.81.4, proc 14:10:4 processors, 36 GB, SMC \r\nGraphics: Apple M3 Max, Apple M3 Max, Built-In\r\nDisplay: Color LCD, 3456 x 2234 Retina, Main, MirrorOff, Online\r\nMemory Module: LPDDR5, Micron\r\nAirPort: spairport_wireless_card_type_wifi (0x14E4, 0x4388), wl0: Apr  4 2024 20:57:11 version 23.30.58.0.41.51.138 FWID 01-baea9d27\r\nAirPort: \r\nBluetooth: Version (null), 0 services, 0 devices, 0 incoming serial ports\r\nNetwork Service: Wi-Fi, AirPort, en0\r\nUSB Device: USB31Bus\r\nUSB Device: USB31Bus\r\nUSB Device: USB3.0 Hub\r\nUSB Device: USB 10/100/1000 LAN\r\nUSB Device: USB2.0 Hub\r\nUSB Device: USB31Bus\r\nUSB Device: USB3.0 Hub\r\nUSB Device: One Touch Hub\r\nUSB Device: One Touch Hub\r\nUSB Device: Expansion HDD\r\nUSB Device: USB 10/100/1000 LAN\r\nUSB Device: Backup+ Hub\r\nUSB Device: Backup+  Desk\r\nUSB Device: Backup+ Hub BK\r\nUSB Device: USB2.0 Hub\r\nUSB Device: One Touch Hub\r\nUSB Device: Backup+ Hub\r\nThunderbolt Bus: MacBook Pro, Apple Inc.\r\nThunderbolt Bus: MacBook Pro, Apple Inc.\r\nThunderbolt Bus: MacBook Pro, Apple Inc.\r\n', 'created_on': '2025-04-23T22:38:31.701Z', 'updated_on': '2025-04-23T22:38:31.701Z', 'closed_on': None, 'root_id': 13793, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 0, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 61281, 'login': 'svetlyo', 'mail': 'svetlyo@gmail.com', 'firstname': 'Svetoslav', 'lastname': 'Agafonkin', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/65334c6d419e7fa01fe7e356e3fe8ed7?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13793'}, 'type': 'raw_redmine_hook'}
2025-04-23T00:25:07.508005	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13792, 'subject': 'Gamepad actions no longer being recognized.', 'description': 'Hello, I was testing Dolphin in the Flatpak version.\r\n\r\nWhen I open a game, it opens in another window, this is normal, but when I interact with the initial window, where the settings are, and then return to the game window, the emulator no longer accepts the actions I make with the gamepad.\r\n\r\nHowever, if the "Render to Main Window" option is enabled, this problem does not occur.\r\n\r\nI don\'t know if this information helps in any way, but I\'m using Ubuntu Budgie 25.04, the Dolphin version is 2503.', 'created_on': '2025-04-23T00:21:02.763Z', 'updated_on': '2025-04-23T00:25:07.436Z', 'closed_on': '2025-04-23T00:25:07.436Z', 'root_id': 13792, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 2, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 13, 'name': 'Duplicate'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64417, 'login': 'Kyuyrii', 'mail': 'brandomagna@gmail.com', 'firstname': 'Désiré', 'lastname': 'Kyuyrii', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/04c493c984f16b31ae242c2c20375ebd?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748584, 'notes': '', 'created_on': '2025-04-23T00:25:07.447Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182811, 'value': '13', 'old_value': '1', 'prop_key': 'status_id', 'property': 'attr'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13792'}, 'type': 'raw_redmine_hook'}
2025-04-23T00:21:02.839355	{'source': 'webserver', 'rm_type': 'opened', 'raw': {'action': 'opened', 'issue': {'id': 13792, 'subject': 'Gamepad actions no longer being recognized.', 'description': 'Hello, I was testing Dolphin in the Flatpak version.\r\n\r\nWhen I open a game, it opens in another window, this is normal, but when I interact with the initial window, where the settings are, and then return to the game window, the emulator no longer accepts the actions I make with the gamepad.\r\n\r\nHowever, if the "Render to Main Window" option is enabled, this problem does not occur.\r\n\r\nI don\'t know if this information helps in any way, but I\'m using Ubuntu Budgie 25.04, the Dolphin version is 2503.', 'created_on': '2025-04-23T00:21:02.763Z', 'updated_on': '2025-04-23T00:21:02.763Z', 'closed_on': None, 'root_id': 13792, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 0, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64417, 'login': 'Kyuyrii', 'mail': 'brandomagna@gmail.com', 'firstname': 'Désiré', 'lastname': 'Kyuyrii', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/04c493c984f16b31ae242c2c20375ebd?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13792'}, 'type': 'raw_redmine_hook'}
2025-04-22T20:12:15.685225	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13787, 'subject': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'description': 'Alsa has a higher audio latency compared to Pulse. See this: https://stackoverflow.com/questions/29245583/alsa-vs-pulseaudio-latency-concerns.\r\n\r\nI attached a demonstration video to make the comparison. In the video, audio tracks of the two clips are aligned. The left one uses ALSA backend and the right one uses PulseAudio. You can see, that the left one has its video ahead, meaning the alsa audio is lagged.\r\n\r\nSuch audio lag is enough to make a very bad and very notable difficulty for rhythm games. With ALSA the music is totally wrong and you will get all misses when play the game _Rhythm Heaven_.. - That really confused me for a long time and I spent a long time then finally found this is caused by the ALSA backend.', 'created_on': '2025-04-16T15:04:19.396Z', 'updated_on': '2025-04-22T20:12:15.640Z', 'closed_on': '2025-04-22T20:12:15.640Z', 'root_id': 13787, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 5, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['Linux']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '1'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503a-262'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 3, 'name': 'Fixed'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64122, 'login': 'bczhc', 'mail': 'bczhc0@126.com', 'firstname': 'Can', 'lastname': 'Zhai', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/aef1ff379bdee0f928730577135b0421?rating=PG&size=24'}, 'assignee': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748581, 'notes': '', 'created_on': '2025-04-22T20:12:15.644Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182806, 'value': '3', 'old_value': '10', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182807, 'value': '6', 'old_value': None, 'prop_key': 'assigned_to_id', 'property': 'attr'}, {'id': 182808, 'value': '2503a-262', 'old_value': '', 'prop_key': '10', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13787'}, 'type': 'raw_redmine_hook'}
2025-04-22T17:50:33.149906	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-22T17:50:33.112Z', 'closed_on': '2025-04-22T17:50:33.112Z', 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 7, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2503-251'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503a-260'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 3, 'name': 'Fixed'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748580, 'notes': 'https://dolphin-emu.org/download/dev/12010ebf78006505ba2e91bbe7c660e3792d87a6/', 'created_on': '2025-04-22T17:50:33.133Z', 'private_notes': False, 'author': {'id': 1699, 'login': 'JosJuice', 'mail': 'JosJuice@gmail.com', 'firstname': 'JosJuice', 'lastname': '-', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/8d072cc71a928c600162cc1b4111f87f?rating=PG&size=24'}, 'details': [{'id': 182804, 'value': '3', 'old_value': '12', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182805, 'value': '2503a-260', 'old_value': '', 'prop_key': '10', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-22T17:38:21.127404	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-22T17:38:21.069Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 6, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2503-251'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 12, 'name': 'Work started'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748579, 'notes': 'Works in 2503a-262. Should be marked as fixed', 'created_on': '2025-04-22T17:38:21.072Z', 'private_notes': False, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-22T00:37:44.739194	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13787, 'subject': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'description': 'Alsa has a higher audio latency compared to Pulse. See this: https://stackoverflow.com/questions/29245583/alsa-vs-pulseaudio-latency-concerns.\r\n\r\nI attached a demonstration video to make the comparison. In the video, audio tracks of the two clips are aligned. The left one uses ALSA backend and the right one uses PulseAudio. You can see, that the left one has its video ahead, meaning the alsa audio is lagged.\r\n\r\nSuch audio lag is enough to make a very bad and very notable difficulty for rhythm games. With ALSA the music is totally wrong and you will get all misses when play the game _Rhythm Heaven_.. - That really confused me for a long time and I spent a long time then finally found this is caused by the ALSA backend.', 'created_on': '2025-04-16T15:04:19.396Z', 'updated_on': '2025-04-22T00:37:44.702Z', 'closed_on': None, 'root_id': 13787, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 4, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['Linux']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '1'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 10, 'name': 'Fix pending'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64122, 'login': 'bczhc', 'mail': 'bczhc0@126.com', 'firstname': 'Can', 'lastname': 'Zhai', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/aef1ff379bdee0f928730577135b0421?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748578, 'notes': '', 'created_on': '2025-04-22T00:37:44.708Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182800, 'value': '10', 'old_value': '1', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182801, 'value': None, 'old_value': 'N/A', 'prop_key': '1', 'property': 'cf'}, {'id': 182802, 'value': 'Linux', 'old_value': None, 'prop_key': '1', 'property': 'cf'}, {'id': 182803, 'value': '1', 'old_value': '0', 'prop_key': '7', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13787'}, 'type': 'raw_redmine_hook'}
2025-04-22T00:37:09.298779	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-22T00:37:08.844Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 5, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2503-251'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 12, 'name': 'Work started'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748577, 'notes': 'Broken by: https://github.com/dolphin-emu/dolphin/pull/12949', 'created_on': '2025-04-22T00:37:08.868Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182798, 'value': '12', 'old_value': '1', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182799, 'value': '2503-251', 'old_value': '', 'prop_key': '9', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-21T22:13:39.784521	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-21T22:13:39.737Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 4, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748576, 'notes': 'Update: first broken version is actually 2503-251', 'created_on': '2025-04-21T22:13:39.739Z', 'private_notes': False, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-21T22:09:06.185775	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T22:09:06.145Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 6, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748575, 'notes': 'Of course, here it is:  https://kephost.net/p/MTkwNTkwNg.png', 'created_on': '2025-04-21T22:09:06.148Z', 'private_notes': False, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T22:01:49.957143	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T22:01:49.938Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 5, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748574, 'notes': "Can you please show a screenshot of the Help->About window in the version of dolphin that's broken.", 'created_on': '2025-04-21T22:01:49.940Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:58:36.179932	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-21T21:58:36.120Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 3, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748573, 'notes': 'Also a typo: the latest release is 2503a, not 2503-253, and it does *not* crash in 2503a', 'created_on': '2025-04-21T21:58:36.125Z', 'private_notes': False, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:57:08.758309	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-21T21:57:08.692Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 2, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748572, 'notes': 'Also occurs when stopping emulation as well', 'created_on': '2025-04-21T21:57:08.700Z', 'private_notes': False, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:55:47.421248	{'source': 'webserver', 'rm_type': 'opened', 'raw': {'action': 'opened', 'issue': {'id': 13791, 'subject': 'Dolphin crashes upon pausing emulation', 'description': "**Game Name?**\r\n\r\nN/A\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nN/A\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\nN/A\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen pausing emulation (via either the pause key or the pause button on the Dolphin Menu), Dolphin crashes\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Start any game\r\n2. Pause Dolphin\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503a-254\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nNo, 2503-253\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503a-254\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10 Home 22H2\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:55:47.327Z', 'updated_on': '2025-04-21T21:55:47.327Z', 'closed_on': None, 'root_id': 13791, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 0, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 9431, 'login': 'InfoManiac742', 'mail': 'ryanjgabel@gmail.com', 'firstname': 'Info', 'lastname': 'Maniac', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/16a9e6c0d25fd28fbb11e44ff886150f?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13791'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:41:58.988846	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T21:41:58.928Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 4, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748571, 'notes': 'At the moment, the 2503a version of the emulator is the latest version for me. \r\n\r\nBefore that, it ran perfectly fine in the 2503 version.\r\n\r\n', 'created_on': '2025-04-21T21:41:58.935Z', 'private_notes': False, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:07:15.780237	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T21:07:15.733Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 3, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748570, 'notes': 'If you download a older version of Dolphin does it again work properly?\r\nWhich version number of Dolphin works properly?', 'created_on': '2025-04-21T21:07:15.737Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:04:51.324704	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T21:04:51.268Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 2, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748569, 'notes': '"Please excuse me if my English isn\'t perfect; it\'s not my native language.', 'created_on': '2025-04-21T21:04:51.273Z', 'private_notes': False, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:02:02.078888	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13785, 'subject': 'Dolphin fails to play fifologs with new MemArena implementation', 'description': "**Game Name?**\r\n\r\n(Fifolog)\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n(Fifolog)\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n(Fifolog)\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nWhen attempting to run a fifolog, Dolphin errors with `Memory::Init(): Failed to create view for physical region at 0x00000000 (size 0x02000000).`\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n1. Launch Dolphin\r\n2. Attempt to play a fifolog\r\n3. Get the error `Memory::Init(): Failed to create view for physical region at 0x00000000 (size 0x02000000).`\r\n4. Dolphin crashes\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nYes, 2503-204\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nYes, 2503\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2412-168\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nN/A\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nCPU: M1\r\nGPU: M1 GPU\r\nOS: macOS 14.7.5\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\nAttached fifolog", 'created_on': '2025-04-15T02:32:52.530Z', 'updated_on': '2025-04-21T21:02:01.840Z', 'closed_on': '2025-04-21T21:02:01.840Z', 'root_id': 13785, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 3, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['OS X']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '1'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503-206'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 3, 'name': 'Fixed'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 3119, 'login': 'TellowKrinkle', 'mail': 'etang110@gmail.com', 'firstname': 'Tellow', 'lastname': 'Krinkle', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/ee553e8a4c6eeab6c4fd3b38c99ce38a?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748568, 'notes': '', 'created_on': '2025-04-21T21:02:01.862Z', 'private_notes': False, 'author': {'id': 34070, 'login': 'OatmealDome', 'mail': 'julian@oatmealdome.me', 'firstname': 'Julian', 'lastname': 'P', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f911993a7217b495c2d4168af1578ab0?rating=PG&size=24'}, 'details': [{'id': 182796, 'value': '3', 'old_value': '7', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182797, 'value': '2503-206', 'old_value': '', 'prop_key': '10', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13785'}, 'type': 'raw_redmine_hook'}
2025-04-21T21:02:01.753955	{'source': 'webserver', 'rm_type': 'opened', 'raw': {'action': 'opened', 'issue': {'id': 13790, 'subject': 'Graphical issue in Resident Evil: The Darkside Chronicles (Dolphin 2503a)', 'description': "**Game Name?**\r\n\r\n[Resident Evil The Darkside Chronicles USA]\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\n[SBDE08 (0001000053424445)]\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n[e5437dffa882abb3e85dc44348a02f37]\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\n[Description here]\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\n[On April 21, 2025, at around 10:34 PM, I launched the Dolphin emulator to play Resident Evil: The Darkside Chronicles (Wii). Upon starting, I was prompted to update the emulator, which I did. The version displayed in the top-left corner is Dolphin 2503a.\r\n\r\nAfter the update, issues arose that were not present in the previous version. When I open the Game Config section in the game's properties, go to Graphics, and then to the Basic tab, with Direct3D 11 selected as the Backend, I encounter a problem. Upon launching the game, a prolonged black screen appears, followed by the game intro, and then the main menu. However, when I try to load a save file, the screen remains black, and only a small static square is visible. I've attached a screenshot of this issue: Direct3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\n\r\nSwitching the backend to Vulkan produces similar issues. While a still frame of my save file appears, many elements still fail to load correctly. I've attached a screenshot for this as well: Vulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\nIt is important to note that this issue did not occur before the update. The game ran without any problems in the previous version of the emulator. I am currently reverting to an earlier version until this issue is resolved. Please investigate and address this problem.]\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n[First broken version number here (if applicable)]\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nDirect3D 11 screenshot: https://kephost.net/p/MTkwNTg3Mg.png\r\nVulkan screenshot: https://kephost.net/p/MTkwNTg3Mw.png\r\n\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\n[It’s not a modern PC, but the game runs perfectly on it without any stuttering or lag.\r\n\r\nCPU: AMD A12-9720P RADEON R7, 12 COMPUTE CORES 4C+8G (4 CPUs), ~2.7GHz\r\n\r\nGPU: Radeon R7\r\n\r\nRAM: 8GB\r\n\r\nOperating System: Windows 10 Pro 64-bit\r\n\r\nDirectX Version: DirectX 12\r\n\r\n]\r\n\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-21T21:02:01.573Z', 'updated_on': '2025-04-21T21:02:01.573Z', 'closed_on': None, 'root_id': 13790, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 0, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64407, 'login': 'firehunprime', 'mail': 'firehunprime@gmail.com', 'firstname': 'Revilo', 'lastname': 'Nagy-Pál', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/5b599ebbaf29599eb4dbba6905116aa5?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'url': 'https://bugs.dolphin-emu.org/issues/13790'}, 'type': 'raw_redmine_hook'}
2025-04-21T04:35:48.207266	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13786, 'subject': 'GBA integration (internal and external) not working in Pokemon XD: Gale of Darkness', 'description': "**Game Name?**\r\n\r\nPokemon XD: Gale of Darkness\r\n\r\n\r\n**Game ID?** (right click the game in the game list, Properties, Info tab)\r\n\r\nGXXE01\r\n\r\n\r\n**MD5 Hash?** (right click the game in the game list, Properties, Verify tab, Verify Integrity button)\r\n\r\n3bc1671806cf763a8712a5d398f62ad3\r\n\r\n\r\n**What's the problem? Describe what went wrong.**\r\n\r\nGBA integration in versus not working in the newest version.\r\n\r\n\r\n**What steps will reproduce the problem?**\r\n\r\nBoot Pokemon XD navigate to versus choose an option with a gba player. Try to start gba, no connection.\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\n[Yes/No and version number here]\r\n\r\n**Is the issue present in the latest release? For future reference, please also write down the version number of the latest release.**\r\n\r\nYes 2503\r\n\r\n**If the issue isn't present in the latest release, which is the first broken version?** (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)\r\n\r\n2503\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\n[Attach any fifologs if possible, write a description of fifologs and screenshots here to assist people unfamiliar with the game.]\r\n\r\n\r\n**What are your PC specifications?** (CPU, GPU, Operating System, more)\r\n\r\nWindows 10\r\nR7 5800x\r\n3080\r\n16 GB DDR4\r\n\r\n**Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,\r\nconfiguration files, savefiles, savestates)**\r\n\r\n[Anything else here]", 'created_on': '2025-04-16T05:45:07.000Z', 'updated_on': '2025-04-21T04:35:48.157Z', 'closed_on': '2025-04-21T04:35:48.157Z', 'root_id': 13786, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 7, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': '2412-323'}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': '2503-232'}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 3, 'name': 'Fixed'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64126, 'login': 'Darkflame2001', 'mail': 'christianmosey12@gmail.com', 'firstname': 'Christian', 'lastname': 'Mosey', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/a102eac6734121e2f5241c2e9e5f7616?rating=PG&size=24'}, 'assignee': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748567, 'notes': '', 'created_on': '2025-04-21T04:35:48.168Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182794, 'value': '3', 'old_value': '10', 'prop_key': 'status_id', 'property': 'attr'}, {'id': 182795, 'value': '2503-232', 'old_value': '', 'prop_key': '10', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13786'}, 'type': 'raw_redmine_hook'}
2025-04-19T14:54:31.857184	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 12254, 'subject': 'Widescreen Heuristic Mega-Issue', 'description': '**Game Name?**\r\n\r\nMetal Arms: Glitch in the System\r\nResident Evil\r\nWario World\r\nYugioh Falsebound Kingdom\r\nNeed for Speed Most Wanted\r\nMetroid Prime 2\r\n\r\nLikely Others to be added.\r\n\r\n**What\'s the problem? Describe what went wrong.**\r\n\r\nWhile playing these games, either they will get stuck in the wrong aspect ratio when using "auto" or they will jump between aspect ratios erratically.\r\n\r\n**What steps will reproduce the problem?**\r\n\r\nI will link the individual issues, but most of them will happen right away while a few others are specific to various actions.  For instance, Metroid Prime 2\'s issues only occur when certain effects are on screen, like dust from a enemy coming out of the ground.\r\n\r\n**Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.**\r\n\r\nThe issue is present in 5.0-12581\r\n\r\n**Is the issue present in the latest stable version?**\r\n\r\nSome are, some aren\'t as the heuristic has changed many times since 5.0.\r\n\r\n\r\n**If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible.  Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too.  For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer**\r\n\r\nWe\'ll probably be moving/attaching fifologs/screenshots as games are added to this issue.', 'created_on': '2020-09-12T07:05:49.790Z', 'updated_on': '2025-04-19T14:54:31.792Z', 'closed_on': '2024-03-19T01:36:44.782Z', 'root_id': 12254, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 21, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': 'Current'}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 7, 'name': 'Accepted'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 2094, 'login': 'JMC4789', 'mail': 'JMC4789@gmail.com', 'firstname': 'JMC4789', 'lastname': '-', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/0eeff16e7904e2aaf8d85b8e5e90db4a?rating=PG&size=24'}, 'assignee': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'watchers': [{'id': 3605, 'login': 'AdmiralCurtiss', 'mail': 'Pikachu025@gmail.com', 'firstname': 'AdmiralCurtiss', 'lastname': '-', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/ebf321005c0e7bdc68462731f9e6c130?rating=PG&size=24'}, {'id': 1198, 'login': 'mbc07', 'mail': 'jhonn.copperfield@gmail.com', 'firstname': 'Mateus', 'lastname': 'B. Cassiano', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f780a49264a932f4284c329e44a5c111?rating=PG&size=24'}, {'id': 3673, 'login': 'Craftyawesome', 'mail': 'Craftyawesome.AK@gmail.com', 'firstname': 'Craftyawesome', 'lastname': '-', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/f6e58b4dc2e42e38c532e88c7f6b1b20?rating=PG&size=24'}, {'id': 6970, 'login': 'hyperspider', 'mail': 'hyperspiderpsv@gmail.com', 'firstname': 'Parthiv', 'lastname': 'Vora', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/1f022e6bdda0e5ece4b3a3987a834e72?rating=PG&size=24'}, {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748566, 'notes': 'WWE Day of Reckoning 2 has stuck 16:9 format from the very start.', 'created_on': '2025-04-19T14:54:31.805Z', 'private_notes': False, 'author': {'id': 11316, 'login': 'VladimirVSC', 'mail': 'VladimirVSC@yandex.ru', 'firstname': 'Владимир', 'lastname': 'Жиров', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/d3adb5d79f39b804e8161f0098e20e8f?rating=PG&size=24'}, 'details': []}, 'url': 'https://bugs.dolphin-emu.org/issues/12254'}, 'type': 'raw_redmine_hook'}
2025-04-19T08:17:15.517571	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13787, 'subject': 'Suggestion: Linux: Consider using Pulse audio (or cubeb is also okay) backend if available', 'description': 'Alsa has a higher audio latency compared to Pulse. See this: https://stackoverflow.com/questions/29245583/alsa-vs-pulseaudio-latency-concerns.\r\n\r\nI attached a demonstration video to make the comparison. In the video, audio tracks of the two clips are aligned. The left one uses ALSA backend and the right one uses PulseAudio. You can see, that the left one has its video ahead, meaning the alsa audio is lagged.\r\n\r\nSuch audio lag is enough to make a very bad and very notable difficulty for rhythm games. With ALSA the music is totally wrong and you will get all misses when play the game _Rhythm Heaven_.. - That really confused me for a long time and I spent a long time then finally found this is caused by the ALSA backend.', 'created_on': '2025-04-16T15:04:19.396Z', 'updated_on': '2025-04-19T08:17:15.457Z', 'closed_on': None, 'root_id': 13787, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 3, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 1, 'name': 'New'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64122, 'login': 'bczhc', 'mail': 'bczhc0@126.com', 'firstname': 'Can', 'lastname': 'Zhai', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/aef1ff379bdee0f928730577135b0421?rating=PG&size=24'}, 'assignee': None, 'watchers': []}, 'journal': {'id': 748565, 'notes': '', 'created_on': '2025-04-19T08:17:15.467Z', 'private_notes': False, 'author': {'id': 1699, 'login': 'JosJuice', 'mail': 'JosJuice@gmail.com', 'firstname': 'JosJuice', 'lastname': '-', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/8d072cc71a928c600162cc1b4111f87f?rating=PG&size=24'}, 'details': [{'id': 182785, 'value': '1', 'old_value': '4', 'prop_key': 'tracker_id', 'property': 'attr'}, {'id': 182786, 'value': '4', 'old_value': '3', 'prop_key': 'project_id', 'property': 'attr'}, {'id': 182787, 'value': 'N/A', 'old_value': None, 'prop_key': '1', 'property': 'cf'}, {'id': 182788, 'value': 'Bug', 'old_value': None, 'prop_key': '2', 'property': 'cf'}, {'id': 182789, 'value': '0', 'old_value': None, 'prop_key': '4', 'property': 'cf'}, {'id': 182790, 'value': '0', 'old_value': None, 'prop_key': '5', 'property': 'cf'}, {'id': 182791, 'value': '0', 'old_value': None, 'prop_key': '6', 'property': 'cf'}, {'id': 182792, 'value': '0', 'old_value': None, 'prop_key': '7', 'property': 'cf'}, {'id': 182793, 'value': '0', 'old_value': None, 'prop_key': '8', 'property': 'cf'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13787'}, 'type': 'raw_redmine_hook'}
2025-04-18T03:37:38.680613	{'source': 'webserver', 'rm_type': 'updated', 'raw': {'action': 'updated', 'issue': {'id': 13789, 'subject': 'problems with recents versions of dolphin (that includes dev versions and stables)', 'description': 'the version 5.0-21593 works fine does opening with no problems but recents updates and onwards result in not opening at all i checked task manager and everytime i open any recent version is shows up but few seconds later shows a suspended and then closes as shown in the clip i recorded for my pc specs here the list\r\ndell insipron 5570\r\n8 giga byte of ram\r\nintel icore 5\r\nos windows 10\r\n\r\nand how it started: my pc turned off when i was using recent versions of dolphin', 'created_on': '2025-04-18T02:57:58.623Z', 'updated_on': '2025-04-18T03:37:38.639Z', 'closed_on': '2025-04-18T03:37:38.639Z', 'root_id': 13789, 'parent_id': None, 'done_ratio': 0, 'start_date': None, 'due_date': None, 'estimated_hours': None, 'is_private': False, 'lock_version': 2, 'custom_field_values': [{'custom_field_id': 1, 'custom_field_name': 'Operating system', 'value': ['N/A']}, {'custom_field_id': 2, 'custom_field_name': 'Issue type', 'value': 'Bug'}, {'custom_field_id': 3, 'custom_field_name': 'Milestone', 'value': ''}, {'custom_field_id': 4, 'custom_field_name': 'Regression', 'value': '0'}, {'custom_field_id': 5, 'custom_field_name': 'Relates to usability', 'value': '0'}, {'custom_field_id': 6, 'custom_field_name': 'Relates to performance', 'value': '0'}, {'custom_field_id': 7, 'custom_field_name': 'Easy', 'value': '0'}, {'custom_field_id': 8, 'custom_field_name': 'Relates to maintainability', 'value': '0'}, {'custom_field_id': 9, 'custom_field_name': 'Regression start', 'value': ''}, {'custom_field_id': 10, 'custom_field_name': 'Fixed in', 'value': ''}], 'project': {'id': 4, 'identifier': 'emulator', 'name': 'Emulator', 'description': 'Bugs related to the emulator itself.', 'created_on': '2015-09-03T10:38:41.088Z', 'homepage': 'https://dolphin-emu.org/'}, 'status': {'id': 8, 'name': 'Invalid'}, 'tracker': {'id': 1, 'name': 'Emulator Issues'}, 'priority': {'id': 2, 'name': 'Normal'}, 'author': {'id': 64146, 'login': 'Dadumbfoxdude', 'mail': 'foxerolucario@gmail.com', 'firstname': 'joshua', 'lastname': 'hernandez', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/a8f89e552d2f4168351eeec6807cd456?rating=PG&size=24'}, 'assignee': None, 'watchers': [{'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}]}, 'journal': {'id': 748564, 'notes': "Install and repair the latest version of the Visual C++ redistributable: https://learn.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170\r\n\r\nOther than that, you haven't provided enough information to be helped. Ask for help on the forums or discord.", 'created_on': '2025-04-18T03:37:38.642Z', 'private_notes': False, 'author': {'id': 6, 'login': 'Billiard26', 'mail': 'jordan.woyak@gmail.com', 'firstname': 'Jordan', 'lastname': 'Woyak', 'identity_url': None, 'icon_url': 'https://www.gravatar.com/avatar/c3215dc630ce975b0ccaf4dd783a294d?rating=PG&size=24'}, 'details': [{'id': 182784, 'value': '8', 'old_value': '1', 'prop_key': 'status_id', 'property': 'attr'}]}, 'url': 'https://bugs.dolphin-emu.org/issues/13789'}, 'type': 'raw_redmine_hook'}