ProjectArcade
27 строк · 1.1 Кб
1# GC6E01 - Pokémon Colosseum
2
3[OnFrame]
4# This game has extra memory card checks compared to most games,
5# presumably to prevent Pokémon duping. These can interfere with
6# saving your game when using savestates.
7#
8# 0x801cfc2c:
9# Originally a branch that checks if the save counter in memory
10# matches the one on the memory card. We patch this to instead
11# overwrite the counter in memory with the one from the memory
12# card. We need to do this because each memory card file actually
13# contains three save slots the game rotates when saving, and
14# when loading it loads the save with the biggest save counter.
15# So we need to make sure the newly written save (which uses
16# the value from memory + 1) is higher than any save currently
17# on the card.
18#
19# 0x801cfc7c:
20# Another branch. Not entirely sure what this one checks, but
21# not patching this one sometimes still makes it recognize the
22# memory card as 'not the same Memory Card as the one used to
23# load the saved data', so nop it out.
24#
25$Allow Memory Card saving with Savestates
260x801cfc2c:dword:0x9005002c
270x801cfc7c:dword:0x60000000
28