So I was playing Stadium 1 for the gift pokémon and thought I missed the amnesia psyduck with normal box beacuse I filled the hall of fame in round 2, so instead of re-playing the game to get all 151 again into the hall of fame in round 1, I got a round 1 save I had and filled the hall of fame with copies of an alakazam hall of fame entry to get the amnesia psyduck with normal box. Turns out there's no amnesia psyduck with normal box (which makes sense), but this is what I got from the savefile and since there doesn't seem to be any information around I'll leave it here in case someone wants to mess with it, code an editor or something. I know this isn't much information, but I think any info is better than no info.
Important note: Everything I say about the save takes as reference a project64 fla save file that has been byte swapped using saveswap by saturnu. Please keep this in mind.
Get saveswap here: http://krikzz.com/forum/index.php?topic=2298.0
The savegame file actually holds a Main save and a Backup save, which starts at 0x10000. Unlike gen 3, Main save seems to be always at 0x00 and Backup save at 0x10000.
The save has many different sections, they are really easy to spot since each section ends with a footer ("POKE"). I have only searched two of them, but with a little testing it should be easy to locate all of them.
0x8DC0-0x9D1F Hall of Fame Data
- 2 byte Header (seems always 0x0010)
- 26 byte * 151 pokemon data structure (seems to hold Level, OT ID, Nickname and OT Name, in this order. Level is stored like this level 100 = 0x6407)
- 2 byte padding (0x0000)
- 4 bytes footer ("POKE" or 0x504F4B45)
- 2 byte checksum
0x9EA0-0x9EC7 Gift Pokémon Data
- 2 byte Header (seems always 0x0010)
- 0x1C species index by pokedex number
- 0x20-0x21 2 byte padding (0x0000, Actually this is just an assumption due to analogy with other sections)
- 0x22-0x25 4 bytes footer ("POKE" or 0x504F4B45)
- 0x26-0x27 2 byte checksum
There's more data in the section, round 1 gift pokemon and round 2 gitf pokemon seem different (round 2 have more data apparently).
All sections seem to hold a similar structure, ending in padding, footer and checksum. There's probably a section for each kind of data (boxes, pc, cup data, registered pokemon...), and when a section is corrupted the game sets it back to default, but it won't actually tell the player that some data got corrupted.
I'm probably not looking further into this save as there are not many uses to editing it.
As a test, I got my amnesia psyduck save and changed species to #151:
All these gift pokémon have DVs generated when transfered to the GB cartridge (which is the only way of retrieving them), and have fixed TID: 02000 and OT (OT depends on Stadium game language).
I don't know why the Mew got tackle and growl, since the amnesia psyduck should know scratch and amnesia, I don't know how that became Tackle and Growl. Gift bulbasaur and squirtle come with those moves, so maybe it just defaults to those two? Who knows, I'm not gonna test the 150 remaining pokemon to see if they come out with tackle and growl.
note: the post has been updated to reference a propper swapping tool.