Merge pull request #14688 from SuperSamus/retroachivements-speedhacks-approve

GameSettings: Approve speed hacks for RetroAchievements
This commit is contained in:
JMC47
2026-07-08 14:47:57 -04:00
committed by GitHub
45 changed files with 134 additions and 32 deletions
File diff suppressed because one or more lines are too long
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+5 -2
View File
@@ -8,11 +8,14 @@ SyncOnSkipIdle = False
[OnFrame]
# `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x80013818:dword:0x60000000
[ActionReplay]
# Add action replay cheats here.
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -10,3 +10,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -10,3 +10,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -5,6 +5,9 @@ $Limit internal frame rate during startup (speed hack)
0x80277034:dword:0x60000000
0x80277040:dword:0x60000000
[OnFrame_Enabled]
$Limit internal frame rate during startup (speed hack)
[Gecko]
$16:9 Widescreen
04004600 C002A604
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x80149C38:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x8014CF88:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x80101A80:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x80101B08:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x8010F210:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -2,11 +2,11 @@
[OnFrame]
# After `GXDrawDone`, `nop` a branch that skips a call to `VIWaitForRetrace`.
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
0x80101390:dword:0x60000000
[OnFrame_Enabled]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal FPS to VPS (improves performance)
$Limit internal frame rate (speed hack)
+3 -3
View File
@@ -6,11 +6,11 @@
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
$Idle loop speed hack
0x802B2908:dword:0x4826F5C9
[OnFrame_Enabled]
$Speed hack
$Idle loop speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
$Idle loop speed hack
+3 -3
View File
@@ -6,11 +6,11 @@
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
$Idle loop speed hack
0x802B3118:dword:0x4826F5B9
[OnFrame_Enabled]
$Speed hack
$Idle loop speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
$Idle loop speed hack
+3 -3
View File
@@ -6,11 +6,11 @@
# The loop waits for a vblank interrupt, spamming `OSYieldThread` in the meantime.
# The patch replaces the call to `VIWaitForRetrace`, which still executes the other threads,
# but sleeps instead of spinlocking when there is no thread to execute.
$Speed hack
$Idle loop speed hack
0x802B2908:dword:0x4826F5C9
[OnFrame_Enabled]
$Speed hack
$Idle loop speed hack
[Patches_RetroAchievements_Verified]
$Speed hack
$Idle loop speed hack
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -7,3 +7,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -7,3 +7,6 @@ $BAT Speedhack
[OnFrame_Enabled]
$BAT Speedhack
[Patches_RetroAchievements_Verified]
$BAT Speedhack
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+3
View File
@@ -6,3 +6,6 @@ $Limit internal frame rate (speed hack)
[OnFrame_Enabled]
$Limit internal frame rate (speed hack)
[Patches_RetroAchievements_Verified]
$Limit internal frame rate (speed hack)
+2 -2
View File
@@ -9,5 +9,5 @@ static constexpr std::string_view ACHIEVEMENT_APPROVED_LIST_FILENAME = "Approved
// After building tests, find the new hash with:
// ./Binaries/Tests/tests --gtest_filter=PatchAllowlist.VerifyHashes
static const inline Common::SHA1::Digest ACHIEVEMENT_APPROVED_LIST_HASH = {
0x0B, 0x47, 0x3F, 0x5A, 0x84, 0xC0, 0xC1, 0x6D, 0x08, 0x88,
0x05, 0x5C, 0xC6, 0x17, 0x60, 0xED, 0x02, 0x3C, 0x75, 0xF0};
0xE6, 0xCD, 0xD7, 0x85, 0x7A, 0xBA, 0x72, 0xEC, 0x34, 0x11,
0x2B, 0x16, 0xB1, 0x31, 0xD0, 0x0A, 0x0A, 0xD7, 0xFC, 0xCC};