Game Genie Game Patcher tool

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Is there anything like this for Pro Action Replay codes? Or Raw codes?
Depends.

Anything with a game genie/ROM patch codes for the system can be trivially added, it literally being where to patch the ROM and what to patch it to.

action replay/gameshark/codebreaker/goldfinger/anything else in the same category you might see on https://web.archive.org/web/20191123185806/https://doc.kodewerx.org/ aka RAM based codes are a different matter.
For the GBA and DS then yeah.
GBAATM and DSATM from the same author as this tool both represent what most go in for when patching GBA and DS games, though you can also hardpatch cheats.
https://gbatemp.net/threads/gba-auto-trainer-maker-gbaatm.99334/
Though there is also a new fork
https://gbatemp.net/download/gbaatm-rebirth.36493/
https://gbatemp.net/download/dsatm.31528/

There is some stuff happening for the N64 as well but it is less advanced last time I saw it (which was about a year ago). Not sure where it is at right now either.

Anything newer that had the binary (or equivalent) in RAM and a cheat targetted at that is in essence something along the lines of the game genie and you can go back and patch the binary based on its location in RAM (might also have to figure out any compression along the way if it is compressed). Not really seen anything there either, though if you are running custom code you probably have better means anyway.

Anything 16 bit or older is likely always going to need manual patching (or some big database of all games and entry points or some super AI*).

*I suppose I can see a path for something like the steam autoplayer AI thing (or just human play) and a trace logger to find the vblank routine in game.

General idea. As mentioned game genie is basically patch the ROM at this location so easy to patch in.
RAM stuff changes because it is RAM and that is what devices use to store data in use.
Cheat devices in hardware add a little bit of code that once a frame will write data (or check something and write data in more advanced setups).
You then need a means of inserting a bit of code into the game. Easily enough done with the vast majority of GBA and DS stuff (see https://web.archive.org/web/20120813230516/http://crackerscrap.com/docs/dshooking.html and if you are unfamiliar with cheats in general then https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial for a general overview of what such things entail) which also were reasonably simple compared to older stuff and had enough excess resources that you can comfortably insert things without too much concern.

On older devices then code can be anywhere, might well have had all manner of fun quirks, minimal space to stick even a few extra instructions in, possibly timing issues... all of which can be overcome happily enough (see how many such devices have games with trainers for one; trainers are basically this) but you want to be a hacker that knows some assembly coding to pull it off rather than a simpler automated program, and nobody is likely to program hooks for every single version of a ROM for any given system (even the N64, failure that it was, is just about squeaking past 1000 total, anything else many times that, arcade might be different as individual boards often have far less).
 

FAST6191

Techromancer
Editorial Team
Joined
Nov 21, 2005
Messages
36,798
Trophies
3
XP
28,373
Country
United Kingdom
Yeah not going to happen for any kind of automated tool any time soon.

Between all the special chips, hirom-lorom, banks and general lack of power/free resources you are never going to get an automated tool that can approach any SNES ROM and hardpatch in a cheat.

You can learn to do it yourself.
There are two approaches
1) The vblank thing I mentioned. v(ertical)blank is a thing that basically every console has. Once a frame everything else will cease and a section of code will run, usually to update graphics but also tends to be things like check whether you have hit an enemy/wall/whatever. You subvert this to whilst this is happen then also always write you chosen memory area (which is what cheat carts do) and you have your cheat. Downside tends to be when the data is not in that location at the time of checking, or the damage you take is so much it wipes out a life bar, as well as the usual problems with frozen timers. My usual example of failures here was gameshark codes for infinite health on goldeneye 64 would sometimes see you die if you got hit by a rocket, normal in game infinite health would not care, however I might need a more modern example.
2) Cheats work on memory so find the code that works on the memory. Basically when you lose a life something will subtract one from memory, change the sub to a NOP (no operation, basically an instruction that does nothing but twiddle its proverbial thumbs for a cycle or two) or an add or something else that means you are not losing lives and all of a sudden infinite lives. This is also typically how game genie codes are made.
Trouble tends to come when more than one thing loses a life -- mario has a death routine but if it did not then enemies, time, crushing, pits, poison mushrooms, hazards, possibly other types of hazards... you would have to do them all where the basic vblank approach would not care.
Can also avoid some issues with holding values that might not allow being held at other times.

Both take some basic but not necessarily trivial assembly coding skills. https://www.romhacking.net/documents/361/ is for the GBA but is my usual guide to basic tracing, http://www.romhacking.net/?page=doc...&perpage=200&level=&title=&desc=&docsearch=Go http://www.romhacking.net/documents/441/ has some other ideas that might be useful). Tracing to find graphics dumped into RAM (as is covered in the guide) is no different than finding the instruction that twiddles a value you found with cheat code searching methods (or downloaded from the internet I guess -- cheat codes by design are locations where the RAM should be edited and what to edit it to).

That or get a better flash cart/get a better emulator.
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Clicking on @Psionic Roshambo links opens 4 newly discovered stds