Creating cheats that change evolution requirements

Discussion in 'NDS - ROM Hacking and Translations' started by Charon, Sep 23, 2012.

  1. Charon
    OP

    Member Charon GBAtemp Regular

    Joined:
    Sep 13, 2009
    Messages:
    245
    Country:
    Slovenia
    How would one create cheats that change evolution methods for some pokemon in either DS game?

    Ive seen evolution editors, but those change the ROM itself, which stops the cheat database cheats from working... so I figured the only way would be to add cheats that affect evolutions, right?
    Unless you can just fix the rest of the cheats working on a mod by a few steps or something..

    Or is there something already that does something reuslting in this? Couldnt find anything.

    I got no clue about creating or adding cheats tho, or changing evolution methods without a GUI editor lol.
     
  2. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,711
    Country:
    United Kingdom
    I think the evolution tables are held in separate files (or at least it was way back when - http://www.pipian.com/ierukana/hacking/ds_evos.html and my money is going to be on the pokemon games not changing in a meaningful way) which could make things harder than it might theoretically be possible (the DS lacks something like Riivolution).

    First thing though the cheats
    The cheat databases for most carts have their cheats matched to a hash of the header, two main options.
    If you inject the database thing back in properly (ndsts and possibly crystaltile2 and tinke or something like those) the header should be untouched.
    Failing that you can just regenerate the cheat database for the modded ROM (r4cce and such should be able to manage it in said few steps).

    As for cheats doing it by themselves with it not being part of the ARM9 binary (or even an overlay at a push) it gets very tricky to the point where it would be more hassle than it is worth.
     
    1 person likes this.
  3. Charon
    OP

    Member Charon GBAtemp Regular

    Joined:
    Sep 13, 2009
    Messages:
    245
    Country:
    Slovenia
    So, if I simply edit whatever evos I wish with an editor, it doesnt leave the header untouched since the cheat database doesnt recognize it anymore.

    Ill try doing that and regenerating the cheats for the mod.. checked out that r4cce thing, and I assume I just need to figure out the mods game ID then right? How do I do that?

    EDIT:
    Alright, got it.
    I took out the evo.narc file and edited it with a hex editor, using the data in your link.

    EDIT2:
    nvm, the game restarts when I try continuin the adventure lol, not sure where I messed up.
    Weird. All I did was reinsert the slightly changed evo.narc
     
  4. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,711
    Country:
    United Kingdom
    Pokemon hacking tools are often odd little things- sometimes they will almost rebuild the entire ROM and other times they will do it properly and I am never quite sure what goes.

    Most cheat databases will use a kind of hash of the header to see what game they are looking at and if it does not match up with the one from the original ROM it assumes it is a different game and acts accordingly (in some ways it is easier than requiring certain names). Rebuilding the ROM will change the header but any cheats will still work in the exact same way (the binary will still be the in same place in memory and ultimately so will anything else in memory) which is what troubles the engine.

    The link I gave was for one of the first DS versions of the game and although I said I did not expect much change I meant that it would probably still be a file within the ROM rather than a 1:1 copy of the database format. Also if you had to decompress it or unpack it to edit it (say with the pokemon narctool) then that might have changed it and it might not accept it back.

    NDSTS reinsertion is not able to change internal file sizes (also it will not tend to increase the size if you end up with a smaller file) but it only changes that window where the file you want to edit is which makes it invaluable for situations like this and if I was making a quick evolution mod to distribute it is how I would make it happen.
    If you will ultimately have to rebuild the entire thing then it is probably easier to change the cheat database.

    The somewhat more long winded way is to use a conventional evolution editor and then find the changed file with it and inject it back into the original ROM with ndsts*.

    *if the size has changed and it is bigger then maybe try tinke instead- it has a pretty good file size/location change option for most formats it deals with- the reason NDSTS does not is because every file after the one you increased in size will have to changed and that is a pain to work through.

    Edit- forgot about r4cce stuff
    http://gbatemp.net/topic/159068-r4-platinum-cheats/ has it all in but the short version is open it in that, find the cheats and click the ... part in the game ID section.
     
  5. Charon
    OP

    Member Charon GBAtemp Regular

    Joined:
    Sep 13, 2009
    Messages:
    245
    Country:
    Slovenia
    false false alarm, it works like a charm now.
    It was restarting yesterday because of some silly cheat..

    Thanks :B
     

Share This Page