1. banjo2

    OP banjo2 gamer
    Member

    Joined:
    May 31, 2016
    Messages:
    1,424
    Country:
    United States
    I'd like to (or at least try to) make cheat codes for Metroid Prime Hunters and maybe some other games, how do I get started on that?
     
  2. FAST6191

    FAST6191 Techromancer
    Reporter

    Joined:
    Nov 21, 2005
    Messages:
    30,904
    Country:
    United Kingdom
    Make some cheat codes.

    Though more seriously it is more or less the same between all devices
    https://web.archive.org/web/20080309104350/http://etk.scener.org/?op=tutorial
    It is for the GBA but should be similar enough to anything you see anywhere.

    Learn to make those sorts of codes and then you can come back and learn to hardpatch them ( https://web.archive.org/web/20120813230516/http://crackerscrap.com/docs/dshooking.html ) or fiddle with the binary (which you can in turn deploy as a cheat if you really want).

    Might also want to learn about slide codes and pointers
    https://doc.kodewerx.org/hacking_nds.html

    If you want a bit more of a challenge and basic infinite life, ammo, consumables and whatnot is getting harder figure out an inventory code for something (including how to find say a starting town item and then use that to get the fun rare end game stuff) and a stats cheat in either an RPG or a tactics game.
    There are plenty of other things you can look at, and do it to enough games and you will start to notice patterns and tricks you can exploit to narrow things down but I will leave that for a while. ROM hacking (guide in my signature) might also be worth looking into.
     
    alexander1970, Robz8 and banjo2 like this.
  3. banjo2

    OP banjo2 gamer
    Member

    Joined:
    May 31, 2016
    Messages:
    1,424
    Country:
    United States
    I've done simple stuff (like max score, infinite reinforcements, etc) in other games, with Cheat Engine and ArtMoney but I've never done it with emulated games, so I guess I already understand as far as day 1.

    I don't have an emulator setup, though. Which emulator do you suggest? How do I set it up?
     
  4. FAST6191

    FAST6191 Techromancer
    Reporter

    Joined:
    Nov 21, 2005
    Messages:
    30,904
    Country:
    United Kingdom
    Most emulators that are not the PS1 or N64 are usually "extract emulator to directory, run emulator", maybe you also have to configure controls. Some might occasionally support a BIOS or a firmware but will usually have workarounds for that one. Any cheat menu is usually well within the usual paradigm ( https://xkcd.com/627/ ) for computer use/fixing.
    There are tools that reach out and touch memory of another program a la artmoney. In emulator world you will probably then first encounter emuhaste ( https://www.emucr.com/2012/03/emuhaste-v40.html ). For many systems it can represent the best option for cheats (if you find a megadrive/genesis emulator with a good cheat search and debugger please do share) but for the GBA and DS at least its usefulness varies as they have long had good options.
    In theory some of the emulator frontend projects could do something useful but I usually find them wanting on a lot of things (both in drama created, approach to source code, and resulting features/abilities/ease of use) so avoid them.
    For general emulators then https://www.emulator-zone.com/ is frequently outdated but usually serves as a good jumping off point.
    Some also like to look at what the tool assisted speedrun community are doing at any given point for when your entire hobby revolves around memory manipulation, observation and checking things there to do further actions with you tend to have some good tools for it. Don't know what exists for the DS though.

    For the DS for cheats and hacking purposes these days I would probably go with

    Desmume mainly for cheats.
    http://desmume.org/
    There are a few forks like the 3d higher resolution render option ( https://gbatemp.net/threads/hi-resolution-ds-emulation.364549/ ), some even doing stuff for hackers (see https://gbatemp.net/threads/unofficial-desmume-build-unused-memory-finder-tool.349332/ ) but vanilla is good stuff even so.

    no$gba. Does great cheats, its debug options, which went free a while back, are best in class as well (desmume can interface with GDB but eh).
    http://problemkaputt.de/gba.htm#debug (the base version does have some good cheat stuff though).
    It is also responsible for the main hardware document for the GBA and DS
    http://problemkaputt.de/gbatek.htm
    Some like to flank it with no$zoomer but if you are after cheats then yeah, and personally it never really did much for me.

    melonds may join it one day and has some aspirations towards debugging.
    http://melonds.kuribo64.net/

    I already mentioned enhacklopedia but for the sake of linking it again https://doc.kodewerx.org/hacking_nds.html

    https://gbatemp.net/threads/crackers-ds-trainer-maker-tutorial.44410/ also makes a nice addition.

    There are some older emulators with some measure of debugging options but probably skip them today.

    Some also spend some time learning C and C++. Earlier I mentioned stats hacking. Spend time learning C arrays ( https://www.tutorialspoint.com/cprogramming/c_arrays.htm ) and you will then probably come to understand why you would be either looking for a character by character stats value "list", or have each character's attack stat next to each other, followed by def all next to each other somewhere else... as well as why list was in quotes back there. Not to mention pointers, which would be covered probably long before you got to arrays, would also have some more grounding. You could limit it to data structures and data types to know why things are going to be certain things on given systems (8 bit systems tend to use 8 bit values, 16 then 16...) and that would also lead into basic assembly.
    https://www.romhacking.net/documents/361/ is for the GBA and for the command line (if you follow along with it try to do it in no$gba) but a useful trick to have in making cheats as tracing and launching off button commands. as well as why http://www.fceux.com/web/help/fceux.html?TraceLogger.html (fcuex is for the NES and represents the gold standard of such things that are not the PC, and I don't think there is such a tool/equivalent formally for the DS but you can fake it) is useful when finding a simple flag to say mimic the effects of a "no monsters" potion/equip where you can't just search-repeat-search-repeat as easily*, or better yet mimic a flag when the equip takes up a valuable equip slot and simply giving someone the equip limits them in another way.
    It is for the PC but I went a bit further into some other things here the other day https://gbatemp.net/threads/how-do-i-make-pointers-in-cheat-engine.565789/
    Basically thinking like a programmer and always asking "if I was making this how would I do this?" as well as "what clues can I see from the game itself as to what might be going on underneath it all?" is rather useful when you are manipulating a program/efforts of a programmer -- know your enemy and all that.

    *For https://gbatemp.net/threads/castlevania-portrait-of-ruin-us-undub-cheat.367014/ I did indeed do that with a bunch of savestates and if options to back out at there then those too. If you have to wait 10 minutes for something to wear off then that is a rather longer affair, possibly rather more complicated as well.

    Programming is a rather big leap to start out with so you might also like to try to replicate a complicated cheat -- if your basic infinite money or something cheat is not a one or two line affair and is not a "press to add 1000" (which may itself be a workaround to a problem**) type deal then you probably have some fun anti cheat protection to handle. Either understand what it is that it is doing, or starting from the position that you know it is going to be a fun one (but not reading the cheat to get the answers as it were) then see if you can make one too.

    **have infinite time and anything based on time won't happen, press to refill time is a different matter entirely. Have infinite health and anything based on health like a must lose boss battle may break, alternatively you might enjoy fighting/farming a boss and it is an easy way to return their health without making it infinite and undefeatable. Set your gold at 1000 and something that costs 1001 is now out of reach. No monsters is great but always no monsters might be boring and leave you underlevelled...
     
    banjo2 and alexander1970 like this.
Draft saved Draft deleted
Loading...

Hide similar threads Similar threads with keywords - started, making, cheat