PDA

View Full Version : [Tutorial] How to pallette edit ANYTHING


BlitŻ
November 14th, 2009, 01:44 PM
.:: Intro
Hello everybody, My name is Fan King, and this is my second tutorial ;D

I wanted to make this after seeing people ask a lot : "Where is the palette offset for___" And simply enough, i got annoyed, xD. Looking up palette offsets is as simple as 123, or ABC. I hope this will at least, stop the mass of questions of where to find the palettes.

.:: Materials
These are the things you will need


A hex editor, you can use any one, as long as it has a search function. To get one, search "hex editor" in google and download on that pops up.
A rom of any kind, in theory you can palette edit any rom with this, but in this tutorial, I'll be using the english version of an Pokemon Fire Red rom. To get one of these, either go to you favrotie rom downloading site or search it on google.
Visual Boy Advance, which I'm guessing that everyone here has, considering that it's an emulator, yada yada..
Knowledge on how to work simple things in these programs, but I will try to explain them as best as I can, any questions, please reply to the thread.

.:: Getting Started
First off load your rom in Visual Boy Advance. Manuever yourself to the screen you want palette edited. In my case, I will be palette editing the Oak intro Background:
http://i591.photobucket.com/albums/ss357/jebees/1636-Pokemon-FireRedVersionU-4.png
I'll be changing this, to this:
http://i591.photobucket.com/albums/ss357/jebees/1636-Pokemon-FireRedVersionU1-2.png
(This if for my hack, Pokemon Aether..No stealing Palettes or the Sprite, or the idea of it either!)
(Also, I'm not going to be teaching how to insert sprites over the oak)

.:: Using VBA To Find the Offset

Now in VBA, on the header bar thing, lick Tools, then Palette Viewer..
http://i591.photobucket.com/albums/ss357/jebees/Untitled-6.png

Now let's go look around the Palette Vewier.
http://i591.photobucket.com/albums/ss357/jebees/Untitled-8-1.png

Now, I'll explain the different parts of this.



Background: In here, is shows you every color that is currently being shown and/or rregistered in VBA. You can clik on the colors to view, It's RGB color value, and along with the inverted GBA color code, I'll explain on how to make it correct later in the tutorial.
Sprite: This is the colors currently shown on a different layer then the background. I'm not excatly sure how else to describe it, altough you can also click on the colors shown here and look at the RGB and the GBA color code.
This is just a little box showing what color is currently shown in a close up view..
This is the place where once you click on the color, it shows the RGB, inverted GBA Color Code, and the address from where it's stored in the rom. The address is not where it is in the hex editor, so you can't just go to that address. I'm not excatly sure about this either, but I know it has to do with the different parts of the game engine
You can click on this and export that palette. Often, you can use this when having images that you export out of Unlz that are in grayscale, and import the palette that you saved to make it how it is in game.

.:: Using the Palette Viewer To Find Your Color Code

Now if we want to find where the colors for this image in the rom, we simply click on the color...
http://i591.photobucket.com/albums/ss357/jebees/Untitled-10.png

Move your eyeballs down to the where it says value..
http://i591.photobucket.com/albums/ss357/jebees/Untitled-11.png

Now look where it says Value: 0x4228

In VBA, it switches the code as it is in the rom. So seeing it as 4228, you would have to put in 2842 when you're searching it. See what you have to do to get this is switch the first to number with the last two. So 4228= 42 48 + swtich = 28 42= 2842

So yeah, you have your color code, awesome!

.:: Finding Your Colors Inside the Rom

So, now you have your one color code. To find it in the rom, you'll need to make a string of the codes to search. So, pick 5 or so colors, and switch the numbers around.

This is what I got for the first 5 colors besides the black in the Palette: 2842 4A46 8D4E D056 135F
Note: When searching it in the rom, don't use any spaces!

So, open up your hex editor, maunuaver yourself to the search function, either by going Ctrl + F or by finding it.

Punch in the code you got earlier, and you should find it in the rom with no mistake. If there is one, then you messed up an earlier steps or messed up with getting the code.http://i591.photobucket.com/albums/ss357/jebees/Untitled-13.png

As you can see, i got the offset 460560.

You can always check if you found the right offset in the rom by comparing what comes after in the hex editor to what is the next color in the Palette Viewer

Viola! You have your offset!

.:: Ending Note
So, you got your offset! Congrats! Now there are two edit it. Either type in the offset in APE, or just Hex edit it.

So, thank you for reading this tutorial. I hope that this ends people questions in finding palette offsets.

Remember, don't steal anything that I showed here for my hack!

~ Fan King

~Teh Panda~
November 14th, 2009, 02:16 PM
Very nice and simple tutorial Fan King!
I will be needing this for some editing in my hack ;)

BlitŻ
November 14th, 2009, 02:18 PM
Very nice and simple tutorial Fan King!
I will be needing this for some editing in my hack ;)

xD, thanks. I try for the tutorials I make to be simple and easy, so everybody can do it.

SharpPoint
November 14th, 2009, 02:24 PM
Nice tutorial. Neat and easy to follow. Good job!

colcolstyles
November 14th, 2009, 05:01 PM
What advantage does this method have over exporting a palette, loading it into APE, and using APE's "Load by Searching" function to locate the palette? If you say that we should use APE to change the palette, why should we waste our time searching for the palette's location with a hex editor when APE can do the same thing but faster and when we're going to have to use APE in the end anyway?

Also, your title is deceiving because this won't work for LZ77 compressed palettes.

Haku.
November 15th, 2009, 02:19 AM
well no need to look for the bg pallete . just search in page 13 of the section.
On topic now. I still cant find the offset for the start menu. Maybe there isn't .

BlitŻ
November 15th, 2009, 06:25 AM
well no need to look for the bg pallete . just search in page 13 of the section.
On topic now. I still cant find the offset for the start menu. Maybe there isn't .

What do you mean by start menu? Do you mena the press start menu, and in that case please be more percise.

liuyanghejerry
November 18th, 2009, 07:57 AM
Well,in fact, LZ77 palettes should be find as these steps:
1.Find the address in the RAM
2.Export that palette you need
3.Use a LZ77 tool to compress the exported palette
4.Open the compressed palette you make in a hex editor
5.Select few bytes AFTER the LZ77 header,and search them in ROM
6.You find it.If not,try another few bytes,or a shorten ones.
7.Still no good idea to edit it.

hi sir tomato my password is syvniti
November 18th, 2009, 08:52 AM
"in theory you can palette edit any rom with this" - No.
*Thumbs Down*

BlitŻ
November 18th, 2009, 07:22 PM
"in theory you can palette edit any rom with this" - No.
*Thumbs Down*


Okay, correction on my mistake, you can edit the colors of a GBA rom, considering that they all, as far as I've seen, go into the GBA color value.

hi sir tomato my password is syvniti
November 19th, 2009, 07:00 AM
Okay, correction on my mistake, you can edit the colors of a GBA rom, considering that they all, as far as I've seen, go into the GBA color value.
I'm not that *****y:d
My point is that the palletes are not always storred in the rom as they are when they're loaded into the ram.

Haku.
November 19th, 2009, 09:02 AM
Thats why i can't find the pallete offset for the menu when you press start.
Wsted 2 hours..

HackMew
November 19th, 2009, 09:13 AM
Thats why i can't find the pallete offset for the menu when you press start.
Wsted 2 hours..

Yeah, and also because you didn't use APE's partial search feature. You don't need to search 16 colors at once, but you can search less and check each time if it's the right palette. Sometimes, you need to do that, or you won't find what you're looking for. Don't forget the Palette Viewer merely shows what's currently in the RAM, and that doesn't mean the palettes are stored exactly like that inside the ROM. As you noticed.

Dragon master legend's
October 7th, 2012, 12:04 AM
hey can you tell me how to do this in pokemon ruby

supersoursky
July 26th, 2013, 03:54 PM
simply awesome leaned something ^_^