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]

Will unplucked pikmin be left behind at the end of a day? Will unplucked pikmin be left behind at the end of a day?

Posted On: March 31, 2024
In Pikmin 1, if I have Pikmin sprouts I haven't plucked yet, what happens to the unplucked Pikmin when a day ends? Will they be left behind?Question from user Stevoisiak at gaming.stackexchange.com.An...[More]


Can I alter the biome of an area? Can I alter the biome of an area?

Posted On: January 12, 2023
In part 3 of my adventures, I would like to find out if there is a way to change biomes. In part 2, fredley said that it is possible to move terrain from one world to another, but the biomes wouldn...[More]


What are useful or fun times to use Speak With Dead? What are useful or fun times to use Speak With Dead?

Posted On: November 8, 2023
This is something I feel like I'm missing out on. Does it work on Undead? I always have characters that have the ability but never use it. I'm on my second playthrough. Every time I've tri...[More]


The female voice actor is infinitely better than the male. The female voice actor is infinitely better than the male.

Posted On: August 28, 2023
I've been playing Hogwarts Legacy for around 30 hours, and while I love the game, the male voice actor grates on me. His over-pronounciation and "oh golly!" manner of speaking genuinely ...[More]


How to enable redstone wiring with a flick of a lever? How to enable redstone wiring with a flick of a lever?

Posted On: March 30, 2024
I'm looking for a solution to enable redstone wiring (completing a circuit) by flicking a lever. If you don't know what I'm asking for, imagine that sticky pistons could push redstone dust, and flicki...[More]


How do I disable Civ 5s opening movie? How do I disable Civ 5s opening movie?

Posted On: August 23, 2015
It seems like the opening movie always starts up and won't let me cancel it until it has played for about 10 seconds. Is that because it takes the game that long to load regardless? Is there a way t...[More]


In Tears of the Kingdom, can you activate only certain devices attached to a vehicle? In Tears of the Kingdom, can you activate only certain devices attached to a vehicle?

Posted On: June 9, 2023
In TOTK, I was doing the quest where you have to get the fella and his cart out of the hole. I attached the balloons and flame emitters to the cart, then added a fan. When I activated them, they al...[More]


How do you hire a Hacker in Game Dev Story? How do you hire a Hacker in Game Dev Story?

Posted On: April 13, 2024
I'm on my second playthrough of Game Dev Story, choosing the Hire option at least twice per game year and varying between "Word of Mouth", "Magazine Ad", and "Online Ad" — never seen a Hacker availa...[More]


How can I jump across the bridge? How can I jump across the bridge?

Posted On: December 30, 2023
I'm playing Half-Life 2 Episode 2 and I need to get this car to the other side of the bridge. Perhaps I'm missing something dead obvious, but how on earth do I do this? It seemed some in-ga...[More]


Do pawns take their inventory with them when they leave your party? Do pawns take their inventory with them when they leave your party?

Posted On: April 23, 2024
As I have been exploring the countryside I often bump into pawns who would like to join my party. Sometimes they are higher level than the folks already accompanying me, so I tend to add them and dism...[More]