Pokemansion

All about the hacks


    Inserting NEW Pokemon (instead of overwriting them)

    Share
    avatar
    Sophidius
    Moderator
    Moderator

    Posts : 51
    Trainer Level : 80
    Fame : 4
    Join date : 2009-05-21
    Age : 25
    Location : Farawaystan

    Inserting NEW Pokemon (instead of overwriting them)

    Post  Sophidius on Sun May 24, 2009 7:14 am

    This is a tutorial on how to insert new Pokemon rather than overwriting Pokemon.

    Inserting New Pokemon

    Introduction and Preparation

    In this method, we’re going to be inserting new Pokemon, but not over old Pokemon slots, oh no, but actually inserting them as well as the original Pokemon. We can do this because there are 25 empty slots in Pokemon Ruby, Sapphire, FireRed and LeafGreen. These are all in between Celebi and Treecko. You can do whatever you want with these slots! Insert 4th Gen Pokemon, your fake monsters or even insert MissingNo if you really wanted to push the boat out!

    For this process, you will require the following items:
    • An indexed sprite
    • RS Ball
    • A hex editor (Cygnus Free Edition is used here)
    • Your ROM (of course…)
    • Icon ED
    • Pokemon Amplifier 3.2 and Pokemon Editor Pro

    That may seem like a daunting list, but, we’ll go through it!

    But, the first thing you want to do is decide what you want to insert. Go on – pick now!

    For the sake of the tutorial, I’ll be inserting Dialga and the tutorial will mainly be aimed at insert Pokemon Diamond and Pearl Pokemon, but it’s very easy to adapt to your individual situation, as you will see.

    So, the first thing your going to need is the front and back sprite of the Pokemon you want to insert. The back will have its shiny colors. However, it is not that simple as the sprite has to be indexed.

    “But what is indexing, really?”

    Well, indexing is reducing the palette of an image to a lesser amount of colors ready for insertion, 16 to be precise, as this is the amount of colors that the GBA deals with these sprites in.

    “But, then, what is a palette?”

    Like an artist’s palette is what he paints a picture with, a palette is what is used in the game to tell it what colors to show something in. There are palettes for EVERYTHING!

    It’s simple really, and only a basic understanding is needed for the process.

    You can also get an indexed sprite from a thread on the Pokemon Board, if you want one done for you.

    You could use an additional tool – “IrFanView” to do this.

    (Use, image, decrease color depth and set ti to 16)

    Anyway, once you have your front and back sprite, you can proceed.


    Adding the Pokemon Images

    For the first step, open up unLZ-GBA.

    Now, go to a random sprite, it doesn’t matter what.

    Open up your front sprite and go to “Write to ROM”

    Now, you need to find 2 blank offsets in a hex editor (lots on FF FF (RSE) or 00 00 (FRLG))

    ONLY tick: Export Image and Export Palette

    Now, add your offsets e.g

    Image Offset: 00xxxxxx
    Palette Offset: 00xxxxxx



    Make a note of what you choose for which, you’ll need it later.

    Repeat this process for the front and back sprite (remember, the back sprite IS SHINY)

    Repointing the Sprites to be assigned to a Pokemon Slot

    The following step can now be done in Pokemon Editor Pro by Darthatron, if you would rather use it, it is a very easy program to use. You can get it in our downloads section.

    Sound a little complicated? It’s not really… We’re just telling the game where to look for the sprite when you fight one of the free slots. It’s that simple.

    But – it IS a hex job. But that doesn’t make it hard …and that’s the method I have always done it, but I found another way recently, after reading a method by Kike-Scott. This is easier and you can avoid hex. However, if your PokeROMS.ini does not include the data for your ROM in RS-Ball, you will have to repoint manually (Or use PEP). See below for how to do that.

    This method involves RS Ball – that’s right! One of your old forgotten EliteMap programs!

    So, go ahead and open up your ROM in it. Now find the “??” sprite (set it to Pokemon on the drop down list). The first is at 252.

    Now, look under pointer management – it gives you the location that it looks for its Pokemon Image in. So, unless you want a big ugly question mark pokemon that appears when you use a rubbish gameshark encounter code, you can adapt this to “link”, or repoint as it is, your Pokemon image you inserted to it.

    So, all you have to do is put the values for the front sprite you used earlier into these slot. You might notice how they correspond to the unLZ-GBA interface a little bit. So whatever you put in to unLZ-gba, put here!

    e.g.

    Graphics (Image Offset): 00xxxxxx
    Palette(Palette Offset): 00xxxxxx



    …and click “Apply Pointer Changes” – hoorah!

    Now all you have to do is to repeat the process for the backsprite.

    So use the “Image” drop-down box and go to “Pokemon Backpics” – do the same thing again

    Note: Make sure it’s the same empty slot you use!

    That’s the essential part done really. If you want you can set it as a wild Pokemon and test it now. It won’t be configured yet, but it might be interesting.

    That leads me onto the next thing. – What’s left to do:

    - It has no name
    - It has no Stats/Attacks or anything like that really, or evolutions
    - It has a “?” icon. It needs a proper one.

    All of these can be done. The hard part is over! And it wasn’t really hard – was it?

    Stats and stuff

    Thought I’d put this set here as it’s a nice easy one.

    ----------
    Note: If you haven't used Amplifier before, and not set it to English, you need to open "inis" and then look for all the files that end with "(eng)" e.g. "evos (eng)" then you need to rename the non-english files e.g. "evos" to "evos1" or something. Then you need to rename the (eng) files to just their name - with no (eng). Now Amplifier should be English
    ----------

    Open up Amplifier, open your ROM.

    Go to the Pokemon slot you have been using (the first is 252)

    There should be a list of things you can edit



    Once you have finished, hit “Save”

    Now, there's a couple of things it's easier to edit with a different tool, and a few that this version of Amplifier doesn't do and that's Pokemon Editor Pro.



    -Also, if you wish to use the new German Amplifier, it works just as well.

    It should now be a fully functioning Pokemon, with the exception of the fact that it lacks an icon.


    Icons

    Yep, for the final step, we’re going to add the icon. Now, remember how we did the sprite before? Well, this is just like that, but with icons.

    So, all you’ve got to do is to edit the:”?” icon in IconED right? – Wrong!

    There’s one catch, like the sprites they all share the same image. So by changing one you change them all, that’s no good if you’re inserting multiple Pokemon. So we have to repoint.

    Repointing is really simple, it’s just telling the game to look somewhere else for the icon rather than using the shared image. The method of doing this is also easy.

    First, open up IconED. Now go to the slot you are using. Don’t start drawing yet!

    Look closely, it should say “Offset: xxxxxxxx”. This is telling you where the program is retrieving this graphic from in the rom.

    In my ROM, this offset is 15167324
    But it differs between games.

    However, the program is slightly evil and nasty and has given us the offset in decimal form. We need it in hexadecimal, as; after all, we are editing this in a hex editor (did I fail to mention that?) – but, I’m going to teach you how to use it for this purpose.

    So we need to somehow convert the “evil” decimal offset into a nicer hexadecimal offset. No problem. You can either do this with the Windows Scientific Calculator with an online tool, found here: http://www.statman.info/conversions/hexadecimal.html
    So, I’ve inputted 15167324 and it has generated the hexadecimal value of: E76F5C
    Great, so if you put this into a hex editor, it’d take you to where the “?” graphic is.

    But wait, that’s not what we wanted, is it? No. But we can use this to find the place where it tells the game to look for the Pokemon icon in the game, we can then tell it to look somewhere else for this Pokemon slot. Isn’t that cool? Hence the term: “re-pointing”.

    If you don’t understand what I’m saying, it doesn’t matter; you just need to follow what I tell you to do.

    Now how do we find this “thing” from the hexadecimal thingy?

    Well, to start with, that “thing” is actually called a “pointer” (the thing that points to where the graphic is for that Pokemon slot).

    Now, to find this what you need to do is a bit of mental work. Take you hexadecimal offset (mines E76F5C)

    Now I’ll convert this in my head:

    E76F5C… … … > 5C6FE7

    See what I did?

    Well, if you didn’t all I did was stick each 2 digits together in my head and split it up.
    So instead of seeing:

    E76F5C

    I saw:

    E7 - 6F - 5C

    And then I flipped the whole thing round, without changing the 2 digits that I left together.

    So it becomes
    5C – 6F – E7

    Which you can rewrite as: 5C6FE7
    It may be simpler if I write it like this:

    Hexadecimal Offset: ABCDEF
    Hexadecimal Pointer: EFCDAB

    So, now I know my pointer, 5C6FE7. I now need to find this in a hex editor and replace it with some free space. So, open up any hex editor, and then open up your ROM in it. Now, find some blank space (00 00 in FRLG and FF FF in RSE), lots of it and write down the offset on the left. Then find the pointer of it. E.g F00000 = 0000F0
    Now find a way to search for a string. In Cygnus Hex Editor FREE EDITION, all I do is go to: Edit, Find and set it to down. Now all I do is type in 5C6FE7, make sure it’s set to “Search Down” – If there’s no settings it will anyway. Click search.
    Now, generally, you will find that the first result is the first free block you have. If, for some mad, crazy reason you decided not to use the first empty slot well, you can move onto the second empty slot by using “Find Next” in Cygnus, or your hex editor’s equivalent.
    Now, what you do with this is replace it with the free offset pointer you just found, so I’d replace the 5C6FE7 with 0000F0.
    BACKUP your ROM now!
    Now save.
    Done! Yay!
    Now have a look in IconED. Do you have blank screen your slot? If so, excellent, it worked!



    -----------------
    If not, go back to your hex editor, chances are, that was whatever was before Bulbasaur, don’t worry, it did it to me too! You might just want to start from the second slot anyway, I’d presume it’d be the same for every game.
    So, if that happened to you, load your backup in the hex editor and repeat the process, then, if you’re using Cygnus Hex Editor use the “Find Next” function to go to the next result. Hopefully, that should now be your first empty slot. Then, of course replace it with your new pointer and backup and save.
    Test it in IconED again!
    If it doesn’t work, well, you get the process!
    ----------------

    Now, for the fun part. You get to draw your icon in on IconED, yay! Remember, invisible is green and it has 2 frames for the animation. You also have a few palettes to choose from. You might want to make one in paint first and zoom in and copy it.

    However, if you want an easy way to import DP icons, and you’re feeling confident, well you could transfer them straight from a DP ROM into your game using TilEd2002. – Remember if you use this you need to convert to Decimal.

    But, for the easy way – just draw them in.

    All done, you should now have a working Pokemon!

    However, you will have trouble if you try to catch them in the wild. This is because they are not registered in the PokeDex, but the game thinks that they need to be. To overcome this, disable the PokeDex in wild events or use it in a givepokemon script. It is also fine to use in battles.

    CREDITS TO GREEN CHARIZARD

    EBAfan
    Advanced Trainer
    Advanced Trainer

    Posts : 26
    Trainer Level : 37
    Fame : 0
    Join date : 2009-05-20

    Re: Inserting NEW Pokemon (instead of overwriting them)

    Post  EBAfan on Tue May 26, 2009 9:56 pm

    Ah.. sweet not many people has done this in the past... Probably Koolboyman and you were to only people, I will use this method, cool method too!
    avatar
    Sophidius
    Moderator
    Moderator

    Posts : 51
    Trainer Level : 80
    Fame : 4
    Join date : 2009-05-21
    Age : 25
    Location : Farawaystan

    Re: Inserting NEW Pokemon (instead of overwriting them)

    Post  Sophidius on Wed May 27, 2009 3:06 pm

    Wait, maybe I wasn't exactly clear. This tutorial is not mine. It's Green Charizrd's from PHO. I copied and pasted it from PHO and I even put it down my post: CREDITS TO GREEN CHARIZARD. This goes for the majority of the tutorials on PM.

    EBAfan
    Advanced Trainer
    Advanced Trainer

    Posts : 26
    Trainer Level : 37
    Fame : 0
    Join date : 2009-05-20

    Re: Inserting NEW Pokemon (instead of overwriting them)

    Post  EBAfan on Wed May 27, 2009 11:40 pm

    Sophidius wrote:Wait, maybe I wasn't exactly clear. This tutorial is not mine. It's Green Charizrd's from PHO. I copied and pasted it from PHO and I even put it down my post: CREDITS TO GREEN CHARIZARD. This goes for the majority of the tutorials on PM.

    Oh ok. I will try to use it one day..

    Sponsored content

    Re: Inserting NEW Pokemon (instead of overwriting them)

    Post  Sponsored content


      Current date/time is Thu Jun 29, 2017 4:44 am