Welcome to the PokéCommunity!

Hi there! Thanks for visiting PokéCommunity. We’re a group of Pokémon fans dedicated to providing the best place on the Internet for discussing ideas and sharing fan-made content. Welcome! We’re glad you’re here.

In order to join our community we need you to create an account with us. Doing so will allow you to make posts, submit and view fan art and fan fiction, download fan-made games, and much more. It’s quick and easy; just click here and follow the instructions.

Hi everyone! I'm starting this thread that will contain all my self-made guides I write while I'm hacking (usually for guiding myself at first, but perhaps some can be of any use to you)
Oh, and I also didn't want to start a thread for a every little thing, so I'm concentrating all the info in this thread. Don't worry, you know me, so I'll keep updating my first post. I'll use an index, so if I post a new guide I'll add a link to the post in the index.

By the way, if you would like to make suggestions for some other tutorial I could write, then go ahead, as long as: I have some time, I feel inspired and there's no other tutorial for that already.
Ah... Don't confuse this thread with the Simple Questions thread, only suggestions, questions related to the stuff I wrote, or fixes are accepted

Also, mods have my permission to lock this thread if it starts to get spammy. Neither Scizz or I like to see spammy threads. After all, if it gets locked, as soon as I have a new guide to write I'll reopen it.

Hmmm... If it doesn't go with any other, it just goes to "Others". But, so far, I don't see anything relevant.

____________________________________________

Changing Graphics - Changing the Big Sprites at the Oak Intro

OK, First thing, make a backup of your rom...

After that, we open the UNLZ-GBA (included in the EliteMap package), and we open the rom. Now we need to find the sprites we want to modify (for this guide, the "big" sprites of the heroes, rival and Oak). However, we also need to select the option "256 Color Mode". Basically, in FR, the graphics are located at 339: Heroine, 340: Hero, 341: Oak, 342: Rival (But, keep in mind that they may not be exactly there, they may be close, so don't forget about the "Next" and "Previous" buttons to find them. They should be close to those values)

Once we find it, we should also select the option "Use Black/White" and work with the Black and White tones, but you could stick with one of the palettes UNLZ-GBA has. But if you want to skip some indexing problems, I suggest you using the B&W option.

Fig1. We found our sprite, don't forget to select the "256 Color Mode", and if you want, the "Use Black/White" option

Once we have a palette, or the B&W option, we hit "Save as...", and now we need our friendly Images Editor. I use Paint Shop Pro, but you can use whatever. For now, close the UNLZ-GBA, we will go back in a while.

Now we open the recently saved image, and we also open the rom in the emulator. That way we will determine the color equivalencies. It may be a little hard working on the B&W, so pay close attention to the values that your images editor say. Once we have learned the color equivalencies, we have to modify our image to be inserted in a way that it uses the B&W colors, but once it is inserted, the image will have the colors used in the emu.

With a little patience and practice, you will be able to modify your images colors. Once we finish, just copy the image, and paste it over the image we saved from UNLZ-GBA. Make sure the colors remain unchanged. Now we will save this image (bmp is preferred)

Fig2. Learning the color equivalenciesFig3. Changing my sprite to respect the B&W palette, but knowing that once inserted, the image will have the colors I want

It's time to go back to UNLZ-GBA, we need to research for our sprite to be overwritten (once again, with the 256 Color Mode, and if we used it, the B&W option), this time we hit "Import", and we change the format to "all files", so we will be able to find our bmp. Our image should replace the old one. All we have to do is to select "Write to Rom", and it's preferred to avoid touching any other option in the next window, hit OK, and hope your image is not "too big" to be inserted.

Fig4. Your image inserted in UNLZ-GBA, just hit "Write to Rom"Fig5. Just hit OK without changing anything, but... it may fail...

In case it fails...

We will need to open an hex-editor, and we will have to search for free space (a place with A LOT of "FF"), the hex-editor should say somewhere an address (offset), which is an Hex-Value, where free space begins. So let's go back to the UNLZ, and we unselect the "Auto Abort" option, and we write that Hex-Value in the Image Offset, then we hit OK, and the image will get inserted without any kind of problems (OF COURSE, IF YOU ARE NOT CONSCIOUS OF WHAT YOU ARE DOING WHEN DEALING WITH OFFSETS, YOU MAY BREAK YOUR ROM, SO BE EXTREMELY CAREFUL!)
And that's the last step, hopefully you will not need this extra last step.

All we have to do is seeing the results. Of course, results can be improved with Palette Changes, and a lot of practice. There's a lot of people that do this sprite changing stuff better than me...

Fig6. The results!

____________________________________________

Changing Graphics - Changing the Battle Backsprites

OK, even though some of you may use TLP to do this, I feel more comfortable with Tile Molester (however, I also have all that Java stuff involved, if you want to follow this guide, you'll have to figure out how to install the Java stuff. Anyway, I'll try to update the guide if it's needed)

First thing, as always, is to make a backup of your rom.

Now, let's open Tile Molester (the file tm.jar), and then we go to File->Open. We search for our rom to be modified, and after that the content of the rom shows up, along with all the options of Tile Molester.

Fig1. Tile Molester with a rom loaded

Now, we need to know what we want to modify. Once we know it, all we have to do is finding the location (the offset) of the sprites we want to modify. Since the guide (that works for FR, but with the correct offsets also would work for the other versions) only is dedicated to change the battle backpicks of the heroes, we only need that info. Anyway, the offset we are looking for is: E69F00 (Fire Red). With this info, all you have to do is go to Navigate->Goto, and we write that offset, making sure that "Hex" is selected.

Fig2. Go to E69F00, we find our trainer, but wtf happened to him?

Once we are in E69F00, we will notice the graphics a little messed up, first step to fix them is go to View->Blocksize->Custom, and writing an 8 in both Columns and Rows. After that, it's convenient to choose View->Blockgrid, so we can align the graphics (see Fig3). Finally, all we have to do is use the "divide", "plus", "less" and "big" (sorry if I made an English mistake) buttons to align it better (see Fig4)

Fig3. Better, but you need to use those 4 buttons to make it even betterFig4. Now that's perfect, ain't it?

Whenever you want to go up or down, I suggest you using the arrows in your keyboard (you may need to press the arrows a few times so that the images align in the grids again)

The next step is working with the palettes Tile Molester already has loaded, what we need to do is learning the color equivalence between the palettes in the emu, and the palettes in Tile Molester (open the rom in your emu, and start comparing, as in Fig5). Once we learned the equivalencies, we need to take the image (loaded in an Images Editor, such as Paint) we want to insert, and modify its colors so that it uses the colors in the Palette in Tile Molester, but when we play it on the emulator it would have the colors we want it to have (this is the hard part of it, so patience and practice) Just remember one thing... The Canvas size set it to 64x64 pixels!

Fig5. Comparing an learning the color equivalenciesFig6. The graphics are ready to be inserted, and they respect the colors in Tile Molester, so when I insert them, they will look as I want in the emu

The images look a bit creepy, don't they? Anyway, we just save every image as a png or bmp file, and we go back to Tile Molester, then we go to Edit->PasteFrom and we choose one of our modified images, then we just move it over the back we want to overwrite (right click after doing so)

Fig7. The inserted image overwriting the old back

And that concludes this tutorial... Of course, if we combine it with palette changing tutorials, the results can be improved a lot... You'd just need to find the sprite's palette, but... That's not something to be covered by this tutorial, so go look for it yourself... XD

Fig8. The final result!

____________________________________________

Hex Editing - Trading Pokes

First you need to hex-search for the name of the poke we receive in the trade originally (for example, in FR, we receive a "MIMIEN")

Fig1. Searching for MIMIEN with Thingy

Once you find it, we will notice the name followed by "FF" and then a bunch of "00" (which means free space for the name). Now you can change the name of the poke we'll receive with hex, as long as you respect that the name must still be finished with the "FF" (and at least make sure to leave a "00" as well, just in case)
After that free space comes inmediately XXXX, which should be the value of the ID of the poke we will get (as always it's swapped hex, so Bulbasaur which is 0001 becomes 0100) So just find the ID of the new poke, change it to hex (with Windows Calculator on Scientific Mode), and then swap it as I did in my example.
Next is seeing where the next recognizable name starts (in my MIMIEN case, there's a "REYLEY" close to it), that name is the name of the trainer, so to change it, you must do exactly the same as when you changed the poke's name.
After the trainer's name, and free space comes a "0A" (which most likely will be other thing), and after that comes another XXXX, which is the ID of the poke the trainer wants, once again it's swapped-hex, so do it the same way as before to change it.

And, you can even modify the hold item of the poke we'll receive (don't start putting Master Balls! ), to modify it just: look at the trainer's name again, then start going backwards, and we'll see either a "00" or "FF", and right after it (still going backwards), you'll find another XXXX, which is the ID of the Hold Item (and as you can imagine, it's swapped-hex, so you know how to modify it)

Fig2. All the info is close to MIMIEN. 1= MIMIEN, 2= Free Space as FF and then a bunch of 00, 3= Poke we will get in swapped hex, 4= MIMIEN's owner name, 5= Free Space again, 6= Poke we must have in swapped hex, 7= The hold item, to the left of the owner's name

I'm just curious, and if for whatever strange reason this is illrelated, you can delete my post.

I'm thinking of working on a Kingdom Hearts: Chain of Memories hack when I get my PC. Now, would all this work with any other game (specifically, Kingdom Hearts), or would I have to do scratch hacking/find other hacking programs? Thank you, in advance. ^-^

Well, obviously not the backediting thing or trading bit, but maybe the graphics editor?

I'm just curious, and if for whatever strange reason this is illrelated, you can delete my post.

I'm thinking of working on a Kingdom Hearts: Chain of Memories hack when I get my PC. Now, would all this work with any other game (specifically, Kingdom Hearts), or would I have to do scratch hacking/find other hacking programs? Thank you, in advance. ^-^

Well, obviously not the backediting thing or trading bit, but maybe the graphics editor?

Well, I really haven't tested UNLZ-GBA with a non-Pokemon game, to see what results it could have. Probably it could find something, and all you'd need to do is using its "Next" and "Previous" buttons trying to see if you find something using the "256 Color Mode" on or off (maybe it could find stuff with both ways)

But I'm definitely sure TLP and Tile Molester works with any kind of game's graphics. And I mean ANY! (I've seen a few Mario 64 changes. Don't really know how they do that, though... X_x)
Anyway, it could work with games, as long as you take the time to align the pics, I just told to use 8 for Rows and Columns, for example, but in other games or other stuff, you may have to use other values.

hai zel,nice tutorial.i have a question.i tried UNLZ-GBA the first time and changed bulbasaurs sprits in fire red,but the next time when tried to change the sprite,no pokemon pictures appear.not any.thanks in advance

OK, second wave of my Tutorials, since there were questions about Palette Changing, I tried to write one, even though there are guides at other sites, but I added screenies to try to guide people better (or so I hope )

Changing Graphics - Changing Palettes of Anything

Don't forget to make a backup!

Basically, the first thing you need to remember is that all graphics in any game are divided into two parts: Maps and Sprites. Each of this parts has its own section in the emulator "Tools" option, so, Maps should be viewed with the Map Viewer, and sprites with the Oam Viewer. Also, we will require the use of the Palette Viewer as well.

So, the idea is, if we want to change palettes in a "Map", then we'd need the Map Viewer and the Palette Viewer, and if we want to change palettes in a sprite, then we'd need the Oam Viewer and the Palette Viewer.

But... What is a "Map"? It's just all the backgrounds and all the tiles in the game, while the sprites are all the graphical effects on maps, the overworlds and the pokemon and their attacks are sprites as well.

-Working with the Map Viewer and the Palette Viewer

OK, let's suppose I want to change the green colour that has the FR intro. Since it is a background, then it is a "Map", which means I have to open the Map Viewer and the Palette Viewer.

The backgrounds have many levels, with different components in each level, so search through the BG levels to find what we are looking for.

Fig1. I found the back I wanted to modify at BG3

All you need to do now is click on the area that has the colour to be modified, this will make the area appear in the panel down-left, now click in one of the pixels (the one that has the colour to be modified), and this will fill the panel down-right with the colour we want to change and will give us the important thing: its RGB value.

Fig2. After clicking around we get all this info, but the RGB value is what we are looking for.

Once we have the RGB values, then we switch to the Palette Viewer, and we look in the "Backgrounds" section, because we are modifying a "Map". Sooner or later we will find between all the colours the one with the RGB we have.

Fig3. We found it, and the important value to get is that hex value 0x52C8

Don't forget to swap this 52C8 value, which means we obtain a C852. And you need to list the other colours close to the 52C8 to make searchs easier (in this example, if you go to the right you'll get the following values 0011 0075 00FA 017F)

But don't forget we need to swap'em all, giving us the list: C85211007500FA007F01

Now comes the part when we need an hex-editor (better if it is an hex-editor which allows you to write hex values fast, because we will be writing a good amount of hex values this time), so I'll pick Hex Workshop over Thingy this time.
So, once in our hex-editor, we just need to search that list (by the way, before searching, you should go to the bottom of the rom and do an "Up" search)

Fig4. Searching for the list of colours

Fig5. The result gets coloured, I also mark where the palette begins and where it ends, but all we really need is the place where says C852

So there is our palette, but for now all we want to do is change the single colour C852, and we need to put another colour there, but the problem is that, as you already saw, that colours have hex-values assigned, so when you want to change colours you need to either keep trying values randomly, or look into the Palette Viewer again. I'll go to my Palette Viewer and change the green back with a black colour, the black that has the value 0000, so I'll go back to the hex-editor and change the C852 with 0000 (don't forget that we always need to swap the values given by the Palette Viewer!)

Fig6. I change the colour with the hex-editor

We save the changes, and we reload the rom in the emulator to see the results...

Fig7. Sucess!

-Working with the Oam Viewer and the Palette Viewer

It's practically the same method, but we need to find the sprite using the Oam Viewer. But, you need to open the Oam Viewer inmediately after the sprite is occuring (this is because usually sprites may have animation and it may switch the palettes they use, but in the following example, I wouldn't need to desperately open the Oam Viewer)

Let's make an example, I'll change the colour of the yellow flames in the FR intro, so once I catch the flame, I open the Oam Viewer and I'll search through it till I find the flame (there are many yellow flames, but I just need one), I find it as the Sprite 2.

Fig8. Looking for the sprite with the Oam Viewer

Once we find the sprite, all we have to do is start clicking again. Click the sprite in the area that has the colour to be modified, this will make the area appear in the panel up-right, then we click in one of the pixels that has the colour, which will fill the bottom panel, with the information on the RGB values, as when we were working with Maps

Fig9. I will change this colour

After getting the RGB values, the process is quite the same. We open the Palette Viewer (but this time we will search in the "Sprite" section palettes), we search for our RGB colour, and once we find it, we get the colours close to it, in my case my list would be: FF5FDF475F23BF02981A, and I want to modify that FF5F.

We go to the hex-editor, back to the bottom of the rom, and we do another "Up" search looking for the new list. We get a result, and I'll modify the FF5F in that result for another value (I'll use the value B900, a red tone)

Fig10. And after the hex-replacing, the sprite gets a new colour

-Final Comments

Sometimes, the palettes we get as results using the hex-editor are not correct, and we may not get the results we want (and even we could be modifying stuff we don't want to), so don't forget to fix the changes if you don't get results, then make a new hex-search.

Even when the examples just show how to modify a single colour, we always get the full palette when we are searching, it's just that we need to know where the palette begins and ends (use the values in the Palette Viewer to guide yourself), when you get that idea, you can replace all the colours in that palette!

Changing palettes of tiles is the same as when we modified Maps colours with the Map Viewer, while changing palettes of overworlds is the same as when we modified the flames. However, you should never forget that if a palette is shared by different stuff, all your changes will affect the stuff that is sharing the palette, so you should be careful when doing palette changes. Don't forget this!

Well, that's all I learned about Palette Changing. I hope it's of any use to you!

____________________________________________

Hex Editing - Changing TMs

This tutorial is quite simple, but you need to know how to deal with an hex-editor.

As always, make a backup of your rom...

Now, open your hex-editor. We want to find the list of moves taught by the TMs, and that's why we need a list with the hex for every single move in the game, but don't worry I already have that list, so here it goes...

Next, we need to find the moves taught by TMs in your version. I'll start from TM06 in FR.

TM06-Toxic, in the list is 5C00
TM07-Hail, in the list is 0201
TM08-Bulk Up, in the list is 5301
TM09-Bullet Seed, in the list is 4B01

That's enough info to get started, so now we want to find the string 5C00020153014B01, so go to the search option in your hex-editor and do an "hex search" for that string...

Fig1. I'm looking for the string using Thingy

Allright, we found the string. If we look to the left of where we are pointing at, we have the rest of the TMs corresponding to TM05, 04, etc. So I'll go where it says 0801 and replace it with 0100 (because in this example, we will create the "Pound" TM)

Fig2. I replaced the 0801 for 0100Fig3. And now the result is... Focus Punch... Huh?

Oh man... We failed, but don't worry, it just means that the table we found wasn't the one we wanted to modify, so once again fix the 0100 for the 0801 (to leave things as they were), and let's try a new hex-search for the string 5C00020153014B01

Fig4. Second search, we get another offset.

So, the table was somewhere else, so let's try again changing the 0801 (at offset 45A80C) for 0100, and let's see the results this time...

Fig5. Wow, Pound has just become a TM! But... The description is not good... Oh, well, we'll fix that later with a text editor.Fig6. I'll teach my Dusclops the TM Pound... Yeah... Sure...Fig7. And there it is... Dusclops + Pound!

That was easy, wasn't it? Now, you just need to replace the 50TMs for the moves you want (you have the list, so it all depends on what you want to teach). By the way, you can even modify the HMs, so probably that may give you ideas for your games (the HMs can be found right after the 50 TMs)

But, since teaching Pound to Dusclops doesn't sound too logic, the next part requires using a program to "re-educate" the pokes so they know which TMs they can learn and which they cannot. So my recommended program would be (unless you know to deal with hex) Pokemon Amplifier, so search for that program around the web.

Basically, it looks like this:

Fig8. This is Pokemon Amplifier, you can see the important stuff, like the Poke No. and the TM list, so all you'd need to do is select the TMs to be able to learn by the poke, and de-select the moves you don't want. I recommend you getting a newer version of Amplifier which has the pics of the pokes, which will make things faster and easier.

Once you selected the moves, just Save the info into the rom, and change to the next poke and so on. This means this is the heaviest part, because it's basically a hard and repeatitive part.

Well, the final part is changing the TM description, but that basically is just editing the description with a text editor, such as Advance Text. I don't know if there is need for a guide about that, we'll see...

The PokéCommunity

Meta

Pokémon characters and images belong to The Pokémon Company International and Nintendo. This website is in no way affiliated with or endorsed by Nintendo, Creatures, GAMEFREAK, or The Pokémon Company International. We just love Pokémon.