From Bulbapedia, the community-driven Pokémon encyclopedia.
The GameShark is a cheating device used to alter the internal data of many video games. It is well-known for its use in the Pokémon series, as it is one of the ways to easily obtain legendary Pokémon or Pokémon only available through an event, and many rare items, such as Master Balls, Rare Candies, or vitamins.
Use of a GameShark can sometimes cause corruption of a save file. This is especially likely if the game is not inserted correctly into the slot or if it is bumped while playing. In the Generation I games, complete deletion of the save may occur if the game is taken out while the GameShark is running. Also, if too many codes are entered in a GameShark, it may stop working.
A GameShark code for these consoles is written in the format ttvvaaaa. tt specifies the code type and VRAM bank, which is usually 01. vv specifies the hexadecimal value the code will write into the game's memory. aaaa specifies the memory address that will be modified, with the low byte first (e.g. address C056 is written as 56C0). The GameShark hooks into the vertical blank interrupt to write the given value to memory every frame. Up to 15 codes can be active at once.
GameShark codes for Game Boy Advance are encrypted; once decrypted, the codes are in the format ttaaaaaa vvvvvvvv. The GBA GameShark supports multiple code types such as 8-bit, 16-bit and 32-bit memory write, memory copy, conditional write, and ROM patching. It also supports long codes, which span over several lines and write up to 256 bytes into memory.
|| This section is incomplete.|
Please feel free to edit this section to add missing information and complete it.
Reason: Add information about the encryption used.
GameShark codes for Nintendo 64 use the format ttaaaaaa vvvv. The N64 GameShark supports fewer code types than the GBA GameShark, and codes can only write up to 2 bytes each. With games that do not use the N64 Expansion Pak, the GameShark can use it to store thousands of active codes or an in-game code search tool. Games that use the Expansion Pak have limited support, but generally still allow a few dozen active codes.
The N64's CIC protection chip prevents the GameShark from working natively with many games. To play a protected game, the user must first insert a non-protected game (e.g. Super Mario 64), turn the console on, and select the appropriate key code in the GameShark menu. The user can then turn the console off, insert the protected game, and use the GameShark normally. This process must be repeated every time a protected game is used, and the GameShark will be rendered unusable if the user selects a key code that does not correspond to any game they own.
If a code is incorrectly entered, the game may give the player a Bad Egg, rewrite the Bag contents, freeze the game, corrupt or delete a Pokémon, corrupt the Hall of Fame data, or simply corrupt the save file. These occurences may also occur at other times. In other situations, nothing unintended may occur.
The GameShark was widely criticized for its poor construction and software quality. The Game Boy Color and Nintendo 64 models had a bare cartridge connector instead of a slot, so cartridges could be easily jarred out of place during play. The software used buggy and incorrect methods of writing to its internal memory, which caused it to occasionally corrupt the code list or the software itself and could render the device unusable. The case was made of thin plastic and fell apart easily.
Additionally, the devices left the flash memory chips fully accessible to games, which allowed them to easily detect and even erase the GameShark. No games are known to tamper with it, however most N64 games included routines that would prevent the game from running or erase save files if a GameShark was detected. While these routines can be detected and removed automatically, the GameShark did not make any attempt to do so.