• Our software update is now concluded. You will need to reset your password to log in. In order to do this, you will have to click "Log in" in the top right corner and then "Forgot your password?".
  • Forum moderator applications are now open! Click here for details.
  • Welcome to PokéCommunity! Register now and join one of the best fan communities on the 'net to talk Pokémon and more! We are not affiliated with The Pokémon Company or Nintendo.

zel's Home-made Tutorials

Status
Not open for further replies.

zel 2.0

Gold Remaker
1,955
Posts
17
Years
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.

OK... Now let's get started...!

The Index

Changing Graphics

:pokeball: Changing the Big Sprites at the Oak Intro (This Post!)
:pokeball: Changing the Battle Backsprites (This Post!)
:pokeball: Changing the Palettes of Anything Post #19

Scripting

As of now, I don't see a need for a guide... Christos and Irish Witch already are covering that quite well.

Hex-Editing

:pokeball: Trading Pokes (This Post!)
:pokeball: Changing the TMs Post #19

Other?

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.

tutocambiarspriteintro1if8.png

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)

tutocambiarspriteintro2yq1.png

Fig2. Learning the color equivalencies
tutocambiarspriteintro3vh4.png

Fig3. 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.

tutocambiarspriteintro4wb8.png

Fig4. Your image inserted in UNLZ-GBA, just hit "Write to Rom"
tutocambiarspriteintro5mk9.png

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... :P

tutocambiarspriteintro6wz2.png

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.

tutocambiarbacks1bc9.png

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.

tutocambiarbacks2dh5.png

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)

tutocambiarbacks3du2.png

Fig3. Better, but you need to use those 4 buttons to make it even better
tutocambiarbacks4fq3.png

Fig4. 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!

tutocambiarbacks5ml7.png

Fig5. Comparing an learning the color equivalencies
tutocambiarbacks6br3.png

Fig6. 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)

tutocambiarbacks7ya1.png

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

tutocambiarbacks8en3.png

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")

tutotradehex1lo7.png

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)

tutotradehex2gl4.png

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
 
Last edited:

Alex

what will it be next?
6,408
Posts
17
Years
  • Seen Dec 30, 2022
Wow zel! This is bound to help A LOT of people. You must have spent a lot of time writing this up!

I'm glad you took the time off of ShinyGold. You rock, man!
 
179
Posts
17
Years
  • Seen Sep 2, 2014
Awesome, dude. ^_^

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?
 

zel 2.0

Gold Remaker
1,955
Posts
17
Years
Awesome, dude. ^_^

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.
 
179
Posts
17
Years
  • Seen Sep 2, 2014
Well, thanks for the help! A new hope, I guess.

I'm certainly not the first Kingdom Hearts hacker, but I hope to be PCC's first...unless it's not allowed. X_X
 

DiamondDust

Life Is An Initial Step...
340
Posts
17
Years
Thanks Alot Zel.

This really helps me, i'm just finding difficulty understanding, i'm just gonna ask my elders.

Thanks Again!
 

Darkdata

15 year old me was an idiot.
137
Posts
18
Years
  • Age 39
  • Seen Nov 25, 2013
(I've seen a few Mario 64 changes. Don't really know how they do that, though... X_x)

The Mario 64 Rom was uncompress by a hacker called VL-Tone, a full featured level editor is on the way. But that is off topic.

I am glad to see someone with skills good enough to hack Gold and Silver into a Advanced Generation. Good work.
 

rithwik

Modern story maker
47
Posts
17
Years
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
 

Hedgehogger

Learning ASM, but struggling
204
Posts
17
Years
These are good tutorials! (Too bad I'm not hacking LG anymore T_T) But, could you make a Palette Editing tutorial? It's been irritating that no one on here has said how to do it yet...
 
6
Posts
16
Years
Hi there, Im new but im hopping you could help, could you please do a Tutorial on Caterpillar script, or just link to one please I cant find it anywhere.

Im wanting to have one or more characters follow you around throughout the game, im working with Fire Red
 
763
Posts
17
Years
Hey Zel, nice job. I actually tried this, but some parts I couldn't understand, and ended up messing up terribly, but it's okay, I don't hack so it was a shot in the dark.

I think people want an encore!

Good job. =)
 

Swimmer♂

Glub! Glub! Glub!
172
Posts
17
Years
Zel you are a hero and a legend. This tut is fantastic, answering common questions, that have never really been answered before!

I have one question related to the first tutorial (the big sprites) How do you change their pallets, is it the same as usual pallet editing, or is it something else because of the 256 colour format?

Thanks, keep up your awesome tutorials!
 

zel 2.0

Gold Remaker
1,955
Posts
17
Years
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 :P)

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.

tutocambiarpaletas1tv1.png

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.

tutocambiarpaletas2qe1.png

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.

tutocambiarpaletas3ao2.png

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)

tutocambiarpaletas4dq4.png

Fig4. Searching for the list of colours

tutocambiarpaletas5kr6.png

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!)

tutocambiarpaletas6dj7.png

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...

tutocambiarpaletas7ui8.png

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.

tutocambiarpaletas8wr5.png

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

tutocambiarpaletas9bf8.png

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)

tutocambiarpaletas10up5.png

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...

Spoiler:


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...

tutocreartms1fc7.png

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)

tutocreartms2si7.png

Fig2. I replaced the 0801 for 0100
tutocreartms3cg8.png

Fig3. 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

tutocreartms4dh6.png

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...

tutocreartms5nn5.png

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.
tutocreartms6ib2.png

Fig6. I'll teach my Dusclops the TM Pound... Yeah... Sure...
tutocreartms7mz4.png

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:

tutocreartms8eo3.png

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...

And that's all, I hope it wasn't too hard to understand!
 
209
Posts
17
Years
Ok, maybe i'm not n00b at hacking, but i'm not advanced too :-P

So i made Tilescreen for my hack (it's not posted in any thread here-only on polish forums), it wasn't bad

But, when i saw the

TILESCREEN of Pokemon Johto Histories (this new with Dialga)
I just said OMG !!

How is it possible to make thatt cind of tilescreen in Pokemon:Ruby ??

Is it palletes or something? Or some new image-please write some tutorial for me how to ake that tilescreen, or give me an image that will have that colours...
 
Status
Not open for further replies.
Back
Top