GameSettings: Add patches for Pokémon Colosseum and Pokémon XD to circumvent the check that the save being overwritten matches the last known save.

This commit is contained in:
Admiral H. Curtiss 2020-08-05 01:23:26 +02:00
parent c36ae84b96
commit 49e6478817
6 changed files with 102 additions and 0 deletions

View File

@ -0,0 +1,27 @@
# GC6E01 - Pokémon Colosseum
[OnFrame]
# This game has extra memory card checks compared to most games,
# presumably to prevent Pokémon duping. These can interfere with
# saving your game when using savestates.
#
# 0x801cfc2c:
# Originally a branch that checks if the save counter in memory
# matches the one on the memory card. We patch this to instead
# overwrite the counter in memory with the one from the memory
# card. We need to do this because each memory card file actually
# contains three save slots the game rotates when saving, and
# when loading it loads the save with the biggest save counter.
# So we need to make sure the newly written save (which uses
# the value from memory + 1) is higher than any save currently
# on the card.
#
# 0x801cfc7c:
# Another branch. Not entirely sure what this one checks, but
# not patching this one sometimes still makes it recognize the
# memory card as 'not the same Memory Card as the one used to
# load the saved data', so nop it out.
#
$Allow Memory Card saving with Savestates
0x801cfc2c:dword:0x9005002c
0x801cfc7c:dword:0x60000000

View File

@ -0,0 +1,27 @@
# GC6J01 - ポケモンコロシアム
[OnFrame]
# This game has extra memory card checks compared to most games,
# presumably to prevent Pokémon duping. These can interfere with
# saving your game when using savestates.
#
# 0x801cb5b8:
# Originally a branch that checks if the save counter in memory
# matches the one on the memory card. We patch this to instead
# overwrite the counter in memory with the one from the memory
# card. We need to do this because each memory card file actually
# contains three save slots the game rotates when saving, and
# when loading it loads the save with the biggest save counter.
# So we need to make sure the newly written save (which uses
# the value from memory + 1) is higher than any save currently
# on the card.
#
# 0x801cb608:
# Another branch. Not entirely sure what this one checks, but
# not patching this one sometimes still makes it recognize the
# memory card as 'not the same Memory Card as the one used to
# load the saved data', so nop it out.
#
$Allow Memory Card saving with Savestates
0x801cb5b8:dword:0x9005002c
0x801cb608:dword:0x60000000

View File

@ -0,0 +1,27 @@
# GC6P01 - Pokémon Colosseum
[OnFrame]
# This game has extra memory card checks compared to most games,
# presumably to prevent Pokémon duping. These can interfere with
# saving your game when using savestates.
#
# 0x801d429c:
# Originally a branch that checks if the save counter in memory
# matches the one on the memory card. We patch this to instead
# overwrite the counter in memory with the one from the memory
# card. We need to do this because each memory card file actually
# contains three save slots the game rotates when saving, and
# when loading it loads the save with the biggest save counter.
# So we need to make sure the newly written save (which uses
# the value from memory + 1) is higher than any save currently
# on the card.
#
# 0x801d42ec:
# Another branch. Not entirely sure what this one checks, but
# not patching this one sometimes still makes it recognize the
# memory card as 'not the same Memory Card as the one used to
# load the saved data', so nop it out.
#
$Allow Memory Card saving with Savestates
0x801d429c:dword:0x9005002c
0x801d42ec:dword:0x60000000

View File

@ -0,0 +1,7 @@
# GXXE01 - Pokémon XD: Gale of Darkness
[OnFrame]
# Very similar to Pokémon Colosseum's save check, see those files for details.
$Allow Memory Card saving with Savestates
0x801cc304:dword:0x90e5002c
0x801cc4b0:dword:0x60000000

View File

@ -0,0 +1,7 @@
# GXXJ01 - ポケモンXD 闇の旋風ダーク・ルギア
[OnFrame]
# Very similar to Pokémon Colosseum's save check, see those files for details.
$Allow Memory Card saving with Savestates
0x801c7984:dword:0x90e5002c
0x801c7b30:dword:0x60000000

View File

@ -0,0 +1,7 @@
# GXXP01 - Pokémon XD: Gale of Darkness
[OnFrame]
# Very similar to Pokémon Colosseum's save check, see those files for details.
$Allow Memory Card saving with Savestates
0x801cd764:dword:0x90e5002c
0x801cd910:dword:0x60000000