Pokémon Gen 3 Save Editor
- .sav
- .srm
Edit Pokémon Emerald, FireRed, LeafGreen, Ruby and Sapphire saves online: money, coins, trainer and party IVs, EVs and moves. Many ROM hacks open too.
Pokémon Ruby, Sapphire, Emerald, FireRed and LeafGreen keep a playthrough in one 128 KiB save, and most of the ones uploaded here come from ROM hacks built on those games. Upload the .sav or .srm your emulator wrote: the trainer, money, coins and party open as fields, each offered only once it checks out against the save itself. Fan games made in RPG Maker XP are a different format, covered on the Pokémon Essentials page.
How to edit a Pokémon Gen 3 save
- Close the emulator, then find the game's save: a .sav or .srm, usually named after the ROM (see below).
- Upload it here and change money, the trainer or a party Pokémon.
- Download the edited save.
- Put it in place of the original under the same name, then load from the game's own menu: loading a save state would bring the old progress back.
What you can change
- Money, up to 999,999, and Game Corner coins, up to 9,999
- Trainer name, gender, trainer and secret IDs, and play time
- Each party Pokémon's level, experience, IVs, EVs, moves, PP and held item
- Its nickname, friendship and Poké Ball
Where the saves are stored
By default mGBA and VisualBoyAdvance write a .sav with the ROM's name next to the ROM. RetroArch writes an .srm into the folder set under Settings, Directory, Save Files. My Boy! on Android keeps saves in a folder of its own on the phone's storage, and Delta on iPhone exports one when you long-press the game and choose Manage Save File, then Export Save File. A plain save is 131,072 bytes; for cartridges with a real-time clock mGBA adds a 16-byte clock record after it, making 131,088, and that record comes back untouched.
What the format actually is
A Gen 3 save is the cartridge's 128 KiB of flash: two copies of the game save, each made of fourteen 4 KiB sections with their own checksum, followed by the Hall of Fame and, depending on the game, a Trainer Hill, Trainer Tower or recorded battle. The games write each new save over the older copy, so the editor reads the current one, re-checksums only the sections an edit touches, and carries everything else back byte for byte. Emerald, FireRed and LeafGreen mask money and coins with a key kept in the save, and every party Pokémon is encrypted and carries its own checksum, which is also how the editor tells a real party from bytes a hack has moved.
Questions
Which games and ROM hacks does it open?
Saves from Pokémon Ruby, Sapphire, Emerald, FireRed and LeafGreen, from a cartridge dump or an emulator, and ROM hacks built on those games. Many hacks move parts of the save or check them differently. When a part does not check out, the editor leaves it out rather than guess, so a hack save can open with only the trainer or only the party. When nothing in a save checks out, the upload is refused with a message that the format is recognised but not editable yet.
Why are species, moves and items shown as numbers?
Because the save stores them as numbers. For species that number is the game's internal index, not the Pokédex number: up to Celebi the two match, but the Hoenn Pokémon start at 277 (Treecko is #252 in the Pokédex), and ROM hacks give many indices to Pokémon of their own. A name list from the original games would label hack saves wrongly, so the editor shows the number.
Can I edit a save state?
No. A save state is the emulator's own snapshot, a different file. Upload the in-game save, the .sav or .srm the game writes when you save from its menu.