# 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

[OnFrame_Enabled]
$Allow Memory Card saving with Savestates

[Patches_RetroAchievements_Verified]
$Allow Memory Card saving with Savestates
