Skip to content

Commit

Permalink
GameINI: Add Gladius Patch to Other Regions
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
JMC47 committed Aug 3, 2021
1 parent 4b022a4 commit ecf092d
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
20 changes: 20 additions & 0 deletions 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
20 changes: 20 additions & 0 deletions 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
20 changes: 20 additions & 0 deletions 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

0 comments on commit ecf092d

Please sign in to comment.