rgen3 is a suite of libraries and utilities to manipulate Generation 3 (Gen3) Pokémon games.
Gen3 games include Pokémon FireRed/LeafGreen and Emerald/Ruby/Sapphire.
Below are the currently existing tools.
A library to manipulate save files. It also includes an example tool that fills your PC boxes with random Pokémon!
Pretty cool, right?
A library to encode/decode the proprietary string format used for Gen3.
I couldn't find an already existing save file manipulation tool that works well on Linux.
http://bulbapedia.bulbagarden.net/wiki/Save_data_structure_in_Generation_III was almost the exclusive source of information used to implement rgen3.