summaryrefslogtreecommitdiff
path: root/Data/Sys
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2021-08-03 16:09:53 -0400
committerJMC47 <JMC4789@gmail.com>2021-08-03 16:09:53 -0400
commitecf092d7f8e9f423c8099da0df3f6fc56bd4650e (patch)
tree45ad52581ab0132f1af066df8a7f82fb5cb63968 /Data/Sys
parent4b022a4bb15b4ac9f2c48f7116e44753a9787645 (diff)
GameINI: Add Gladius Patch to Other Regions
Only the NTSC version of Gladius got a patch with smurf3tte's reverse engineering work. Since most of the work was done, I ported over the fix to the PAL, French, and German releases. Leoetlino helped figure out a consistent way to find the correct address.
Diffstat (limited to 'Data/Sys')
-rw-r--r--Data/Sys/GameSettings/GLSD64.ini20
-rw-r--r--Data/Sys/GameSettings/GLSF64.ini20
-rw-r--r--Data/Sys/GameSettings/GLSP64.ini20
3 files changed, 60 insertions, 0 deletions
diff --git a/Data/Sys/GameSettings/GLSD64.ini b/Data/Sys/GameSettings/GLSD64.ini
new file mode 100644
index 0000000000..83fcec325f
--- /dev/null
+++ b/Data/Sys/GameSettings/GLSD64.ini
@@ -0,0 +1,20 @@
+# GLSD64 - Gladius
+
+[OnFrame]
+# This game can deadlock the CPU and GPU by setting FIFO breakpoints too
+# infrequently, provided the CPU gets too far ahead, as can happen under Dolphin
+# due to timing inaccuracies. The game never clears breakpoints, and it will
+# skip setting them if the previous one has not been hit by the GPU. If the CPU
+# gets far enough ahead it will reach the FIFO high water mark and trigger an
+# overflow interrupt, causing the render thread to be suspended. The GPU will
+# make forward progress until it hits the last set breakpoint. However, if the
+# distance between that breakpoint and the FIFO write pointer is greater than
+# the low water mark, then the GPU will never generate an underflow interrupt
+# and the render thread will never be resumed. This patch forces the game to
+# update the breakpoint unconditionally and has been tested on real hardware
+# with no apparent ill effect.
+$Fix freeze in opening cutscene
+0x8010A2EC:dword:0x60000000
+
+[OnFrame_Enabled]
+$Fix freeze in opening cutscene
diff --git a/Data/Sys/GameSettings/GLSF64.ini b/Data/Sys/GameSettings/GLSF64.ini
new file mode 100644
index 0000000000..a29a7cc587
--- /dev/null
+++ b/Data/Sys/GameSettings/GLSF64.ini
@@ -0,0 +1,20 @@
+# GLSF64 - Gladius
+
+[OnFrame]
+# This game can deadlock the CPU and GPU by setting FIFO breakpoints too
+# infrequently, provided the CPU gets too far ahead, as can happen under Dolphin
+# due to timing inaccuracies. The game never clears breakpoints, and it will
+# skip setting them if the previous one has not been hit by the GPU. If the CPU
+# gets far enough ahead it will reach the FIFO high water mark and trigger an
+# overflow interrupt, causing the render thread to be suspended. The GPU will
+# make forward progress until it hits the last set breakpoint. However, if the
+# distance between that breakpoint and the FIFO write pointer is greater than
+# the low water mark, then the GPU will never generate an underflow interrupt
+# and the render thread will never be resumed. This patch forces the game to
+# update the breakpoint unconditionally and has been tested on real hardware
+# with no apparent ill effect.
+$Fix freeze in opening cutscene
+0x8010A388:dword:0x60000000
+
+[OnFrame_Enabled]
+$Fix freeze in opening cutscene
diff --git a/Data/Sys/GameSettings/GLSP64.ini b/Data/Sys/GameSettings/GLSP64.ini
new file mode 100644
index 0000000000..251eccc4e5
--- /dev/null
+++ b/Data/Sys/GameSettings/GLSP64.ini
@@ -0,0 +1,20 @@
+# GLSP64 - Gladius
+
+[OnFrame]
+# This game can deadlock the CPU and GPU by setting FIFO breakpoints too
+# infrequently, provided the CPU gets too far ahead, as can happen under Dolphin
+# due to timing inaccuracies. The game never clears breakpoints, and it will
+# skip setting them if the previous one has not been hit by the GPU. If the CPU
+# gets far enough ahead it will reach the FIFO high water mark and trigger an
+# overflow interrupt, causing the render thread to be suspended. The GPU will
+# make forward progress until it hits the last set breakpoint. However, if the
+# distance between that breakpoint and the FIFO write pointer is greater than
+# the low water mark, then the GPU will never generate an underflow interrupt
+# and the render thread will never be resumed. This patch forces the game to
+# update the breakpoint unconditionally and has been tested on real hardware
+# with no apparent ill effect.
+$Fix freeze in opening cutscene
+0x8010A0F4:dword:0x60000000
+
+[OnFrame_Enabled]
+$Fix freeze in opening cutscene