The scores are recorded entirely by level index, meaning each file is specific to the level set ROM that was used. You can't mix and match score files between builds.
Syntax would be something like: gparty_merge SCORE-FILE INPUT0 INPUT1..., where SCORE-FILE is the file to update and INPUT0...INPUTn the files to pull new scores from. Xref hashes, check best times, merge as appropriate, save SCORE-FILE. Doesn't matter if the level sets don't all match, or they're in a different order - the hashes will sort it out.
Should probably output a manifest file with each build, mapping hash to level set/level name and so on, so the merger tool can use it to print some useful info.
The scores are recorded entirely by level index, meaning each file is specific to the level set ROM that was used. You can't mix and match score files between builds.
To work around this, the score files contain 6 bytes from the SHA256 of the meaningful parts of the level data (https://github.com/tom-seddon/ghouls-revenge/blob/dbda2ed3ebae979ad4abbdcef454ff5debb37a5f/bin/make_party_stuff.py#L86). The idea is that this could be used to merge score files from different events.
Syntax would be something like:
gparty_merge SCORE-FILE INPUT0 INPUT1...
, whereSCORE-FILE
is the file to update andINPUT0
...INPUTn
the files to pull new scores from. Xref hashes, check best times, merge as appropriate, saveSCORE-FILE
. Doesn't matter if the level sets don't all match, or they're in a different order - the hashes will sort it out.