How do GameShark codes work?

[BACK]
How do GameShark codes work?
Posted On: July 22, 2013

This has always boggled me. Obviously GameShark and Game Genie never got inside access to place their own cheats into every game. I don't think any developers gave them the source code to pour over for codes. And I don't think the original development process for these games included placing any of these codes themselves. So, what is a GameShark or Game Genie code, really?


Both of them usually take the form of a relatively short hexadecimal string (or multiple if that is the case) so my intuition tells me they use the same principle. But are they just memory addresses to flip a bit? Or lock it? Or XOR a series of bits with something? What is the code, and what does it do?


Question from user LoveAndCoding at gaming.stackexchange.com.


Answer:

How it works.


When GameShark (and other game enhancer products/homebrew) gets loaded by the console, the enhancer is what launches the actual game. In doing so, it leaves behind a Code Handler in the system RAM and "hooks" the game's programming.


Specific locations in a game's programming that get executed roughly every frame (like reading the controller data) are where "hooks" will be placed. (because SDKs are used, this makes finding hooks that work in all games for a system much easier).


What the hook actually does is redirect the flow of programming to the Code Handler the enhancer left behind. Once the Code Handler is finished executing, it returns the flow of programming back to the point of hijacking.


If you are familiar with GameShark's "Master Code", that is what sets the hook.


(other enhancers - like Gecko OS for Wii - don't need master codes because the enhancer itself has a handful of SDK-based hooks that it can "find" in the game while it loads.).


Structure of codes.


Now a code itself is separated into THREE parts:.


The CodeType (this is USUALLY the first byte of the code-- the first 2 Hex Characters). CodeTypes are specific to the enhancer.


The address in ram that the CodeType will use.


The value the codetype will use at the specified address.


The most common CodeTypes are:.


RAM Writes (typical options are 8bit, 16bit, or 32bit).


With RAM Write, the CodeHandler will take the value and place it at the address. (changing whatever was there, like setting your health to 100!).


Conditionals (typical options are >, <, =, !=).


With Conditionals, the CodeHander reads the value at the code's address and compares it to the value in the code. IF the comparison returns true, then the CodeHander will execute the next line in the code. (how many lines it executes is up to the enhancer and often is an option in the codetype itself!).


There is plenty more info we could dive into, but that should give you a good basis for understanding. =).


Source: Game hacker since 1999, founder of http://GeckoCodes.org.


Answer from user James0x57 at gaming.stackexchange.com.



[BACK]
How do GameShark codes work?
Posted On: July 22, 2013

This has always boggled me. Obviously GameShark and Game Genie never got inside access to place their own cheats into every game. I don't think any developers gave them the source code to pour over for codes. And I don't think the original development process for these games included placing any of these codes themselves. So, what is a GameShark or Game Genie code, really?


Both of them usually take the form of a relatively short hexadecimal string (or multiple if that is the case) so my intuition tells me they use the same principle. But are they just memory addresses to flip a bit? Or lock it? Or XOR a series of bits with something? What is the code, and what does it do?


Question from user LoveAndCoding at gaming.stackexchange.com.


Answer:

How it works.


When GameShark (and other game enhancer products/homebrew) gets loaded by the console, the enhancer is what launches the actual game. In doing so, it leaves behind a Code Handler in the system RAM and "hooks" the game's programming.


Specific locations in a game's programming that get executed roughly every frame (like reading the controller data) are where "hooks" will be placed. (because SDKs are used, this makes finding hooks that work in all games for a system much easier).


What the hook actually does is redirect the flow of programming to the Code Handler the enhancer left behind. Once the Code Handler is finished executing, it returns the flow of programming back to the point of hijacking.


If you are familiar with GameShark's "Master Code", that is what sets the hook.


(other enhancers - like Gecko OS for Wii - don't need master codes because the enhancer itself has a handful of SDK-based hooks that it can "find" in the game while it loads.).


Structure of codes.


Now a code itself is separated into THREE parts:.


The CodeType (this is USUALLY the first byte of the code-- the first 2 Hex Characters). CodeTypes are specific to the enhancer.


The address in ram that the CodeType will use.


The value the codetype will use at the specified address.


The most common CodeTypes are:.


RAM Writes (typical options are 8bit, 16bit, or 32bit).


With RAM Write, the CodeHandler will take the value and place it at the address. (changing whatever was there, like setting your health to 100!).


Conditionals (typical options are >, <, =, !=).


With Conditionals, the CodeHander reads the value at the code's address and compares it to the value in the code. IF the comparison returns true, then the CodeHander will execute the next line in the code. (how many lines it executes is up to the enhancer and often is an option in the codetype itself!).


There is plenty more info we could dive into, but that should give you a good basis for understanding. =).


Source: Game hacker since 1999, founder of http://GeckoCodes.org.


Answer from user James0x57 at gaming.stackexchange.com.



[BACK]

Donkey Kong 64 - What do the Chimpy Cam options do? Donkey Kong 64 - What do the Chimpy Cam options do?

Posted On: March 17, 2023
In the options for Donkey Kong 64 I can set Chimpy Cam to either Free or Follow. What's the difference between Free and Follow? Question from user Stevoisiak at gaming.stackexchange.com. Ans...[More]


Super Mario Bros. Wonder: Jet Run II is impossible Super Mario Bros. Wonder: Jet Run II is impossible

Posted On: November 8, 2023
I don't get this level. I've died like 50 times jumping only once. I've looked at walkthrough videos and they all seem to be jumping in the air somehow like they have double jump or someth...[More]


How To Spawn after a specific amount of time How To Spawn after a specific amount of time

Posted On: January 27, 2023
I am currently making a Legend of Zelda themed adventure map. I am struggling to make it, so enemies spawn every few minutes but not spawn large amounts over time. I have tried using things like hoppe...[More]


Me (tiefling warlock) and my friend (dragonborn druid) Me (tiefling warlock) and my friend (dragonborn druid)

Posted On: February 28, 2026
Question from user Vinicius_Pimenta at BaldursGate3 at reddit.com.Answer:I really thought this was r - okbuddybaldur but sometimes the main sub surprises me!.Answer from user InsectHuman8453 at Baldur...[More]


N++ System Requirements on Mac N++ System Requirements on Mac

Posted On: March 17, 2024
I'm looking at N++ (https://store.steampowered.com/app/230270/N_NPLUSPLUS/) and it doesn't list the system requirements for a mac.This question is not about whether my specific computer can run N++, b...[More]


How can I activate an area of redstone all at once? How can I activate an area of redstone all at once?

Posted On: February 6, 2023
The idea behind my contraption is to trap players in lava by deactivating an area of fence gates under some carpet. This pushes the players upwards into the lava and there items fall onto the carpet. ...[More]


Where can I contact roblox support (a real person)? Where can I contact roblox support (a real person)?

Posted On: September 19, 2023
Can someone tell me how to contact Roblox support? I don't mean roblox/support, that's just a bot. I want to talk to a real human who works in Roblox support. Question from user comand100vi...[More]


Is it possible to run RollerCoaster Tycoon 2 in windowed mode? Is it possible to run RollerCoaster Tycoon 2 in windowed mode?

Posted On: April 9, 2024
Is it possible to run RollerCoaster Tycoon 2 in windowed mode?I have Windows 7 and the game works, but since my resolution is bigger than the game can handle, I would prefer to play in windowed mode i...[More]


Missing pushups in UFC Trainer Missing pushups in UFC Trainer

Posted On: March 27, 2023
I am about 3 days into my first 30-day challenge on UFC Trainer and have been getting frustrated that the game isn't picking up all of my push-ups. I can grind out 20 or so in the allotted...[More]


What is the purpose of a D Flip-Flop in Minecraft? What is the purpose of a D Flip-Flop in Minecraft?

Posted On: October 23, 2023
Based on the design of the circuit and on the description, what is its purpose? It says that it transfers the state of D to Q. This means it can store one bit. But what is the purpose of a D Fli...[More]