RubyGS is a Ruby Gem that allows Rubyists to view and edit .sav files for the Gold, Silver, and Crystal versions of Pokemon on the Gameboy Color.
These are typically files generated by a Gameboy/Gameboy Color emulator (or a physical backup device, for those of you who are more inclined) that contains the raw data acting as the SRAM on a game cartridge.
$ gem install ruby_gs
require 'ruby_gs' saved_game = SaveFileReader.read "/path/to/save/file.sav" # => SaveFile containing data representing the raw SRAM of your cartridge saved_game.trainer_name = "Reich" # Note: Most fields that accept a string are limited to 10-character strings or less saved_game.rival_name = "Bugs" saved_game.team.pokemon.species = 25 # Change our first team pokemon's species to someone very familiar saved_game.set_team_species 0, 25 # This is an alternative to the previous line except it also updates the team menu species saved_game.team.pokemon.happiness = 255 # That's one happy Pokemon! saved_game.team.amount = 5 # Annnnnnd now it's gone (Not really, it's just hidden from view) hours = 78 minutes = 33 seconds = 12 frames = 20 saved_game.time_played = [hours, minutes, seconds, frames] # The amount of frames is not visible to the player and is rather inconsequential in general. saved_game.item_pocket.kind = 1 # Change the 3rd item in our Item Pocket to a Master Ball. saved_game.item_pocket.amount = 255 # Gotta make sure we have enough for our journey. saved_game.write # This will write your changes directly to the same save file you opened initially. saved_game.write "path/to/other/save/file.sav" # This will write your changes to a different location.
- Support for Crystal.
- ~~Major refactoring.~~
- Player Location editing.
- Event Flag editing (and possibly documenting the purpose of each flag).
Special thanks to Bulbapedia for hosting the project to document G/S/C's SRAM innards.