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

New palettes in Fire Red for OW's!

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
Creating new Overworld palettes in Fire Red!
This is my first tutorial, and I want to make it as simple as possible and easy to follow. Thanks to JPAN for his hacked engine and metapod23 for his overworld tutorial which helped me understand everything better.

Tools needed for this tutorial:
Pokemon Fire Red Rom (Unmodified and modified)
Pokemon Fire Red Hacked Engine
Hex Editor – I will be using Translhextion.
Free Space Finder
Overworld Editor: Rebirth Edition
Nameless Sprite Editor (I will be using classic)
Lunar IPS
(For HackMew's Tools, I suggest downloading PGE)

I also suggest having a backup of your rom.

Step 1-Applying the hacked engine.
Spoiler:


Step 2 – Understanding the data.
Spoiler:


Step 3 – Finding the free space needed
Spoiler:


Step 4 – Editing Palette
Spoiler:


Step 5 – Hex editing
Spoiler:


Step 6 – Editing the sprites.
Spoiler:


Step 7 – Fixing a glitch!
Spoiler:



If you have any questions, have suggestions about thread cleanliness, or this tutorial is unclear, be sure to say something! I hope I was able to help!
 
Last edited:
35
Posts
16
Years
  • Seen Jun 17, 2013
yeah, it works without any problems. Good tutorial. It´s extrem easy to understand it.
Currently I have inserted 70 new palettes and the rom is working without any problems.
 

marcc5m

what
1,116
Posts
13
Years
Hmm...I'm thinking this could maybe be abused by giving extra palettes to small tiles B]
Anyway, good tutorial, I'll try it when I get the time. :)
 

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
Hmm...I'm thinking this could maybe be abused by giving extra palettes to small tiles B]

Ooh, that actually sounds quite interesting.

Anyway, good tutorial, I'll try it when I get the time. :)

This tutorial is actually quite useful. Thanks for sharing the information!

Thanks!

Also, I guess I should say everyone should keep in mind the sixteen palette slots restriction in mind.
 
35
Posts
16
Years
  • Seen Jun 17, 2013
Also, I guess I should say everyone should keep in mind the sixteen palette slots restriction in mind.

Well this is a problem because you can´t have the OWs in the same Map. You can see that sometimes it load the right palette and sometimes the wrong. So I have to search how I can fix it. If there is a person who no how I can fix it please send me a PM.
I don´t know if the slots which loads the palettes can be expand or is there a hardware limit. I think there is a limit and this limit is 16. So you can´t load more palettes at the same time.
 
18
Posts
13
Years
Hi! Great Tutorial! Its a very useful Thing!

Now, the Hardware supports (16*16) *2 In Total, But, For Minisprites use one Part (16*16) and it have some Palets of Tiles Too.

For Better Understand of Wath i means, Open Any .gba Rom with VBA and Go to "Tools > Pallete Viewer" The Right Part Its Used By Ow's ^^

Sorry for My English x'D

Have a Nice Day :P
 
35
Posts
16
Years
  • Seen Jun 17, 2013
Nice tutorial.
I will try this out without applieing JPANS engines too.

Well I tried this and it doesn´t work. I have made some mistakes. But you have to do the same things as you can see in JPANS engine. I mean you have to do the same things with the pointers, etc. All things JPAN have done in his engine with the OWs data and palettes, you must do, too.


@Cheve_X: Yes, I know it. But how can I use the palettes on the left side, which aren´t from any tileset? Or how can I use the last three slots on the right side. I have had a look on this with the VBA. I saw that there are only used 13 from 16 palettes. So it must be easier to use this last 3 palettes than using the last palettes from the tilesets. But how can I hack this? How can I use this "free slots"?

Sorry for bad English!

Maybe there you can find a solution for insert the palettes without any problems.
http://nocash.emubase.de/gbatek.htm
It´s a problem to load more than 16 palettes for the sprites. And how I understand it after read it is it impossible because of the hardware....
 
Last edited:

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
this best tutorial on Fire Red,and on emerald such it is possible to make?

Well Im sure it is, but I dont know how pesonally. If JPAN didnt do anything other than repoint the table in Fire Red, than it could be that simple. But I dont know what else he did.
 
15
Posts
13
Years
  • Seen Sep 16, 2013
He did just repoint it, I tried repointing the table without the hacked engine and this method works.

The orginal palette table is located at 0x3A5158 in FireRed and the pointers to the table that you need to change are at 0x5F4D8, 0x5F570 and 0x5F5C8 for those whom it may interest.

I would like to know the sprite offsets for the Fly sprites.

Well it seems they're not part of the OW sprite table... I'd like to know how I can repoint their palettes though. :\

Seems I didn't need to. Do they just use the current hero OW palette loaded into the RAM?
 
Last edited:

solrecon111

Didn't do nothing...... yet
3
Posts
12
Years
Quickster, this is an amazing tutorial but one thing I can't seem to do is actual apply it in to Advance Map. It would just appear as the original palette. I would use the emerald male hero as an example. Everything works, it shows up in Overworld Editor rebirth as the new palette but when I put it in advanced map it would show up as palette 0x06 and not 0x32. In NSE it doesn't work either that it can't load the new palette.
 

itman

Back to ROM hacking. :D
98
Posts
16
Years
  • Age 30
  • Seen Feb 5, 2014
Quickster, this is an amazing tutorial but one thing I can't seem to do is actual apply it in to Advance Map. It would just appear as the original palette. I would use the emerald male hero as an example. Everything works, it shows up in Overworld Editor rebirth as the new palette but when I put it in advanced map it would show up as palette 0x06 and not 0x32. In NSE it doesn't work either that it can't load the new palette.

You have to change the INI in NSE or OWE for it to show the new palettes (to the new palette table that JPAN made in his patch). Also, it won't show in A-map, but it will show in game. You have to change the OW's palette number in a hex editor though, to change it in the first place.
 

solrecon111

Didn't do nothing...... yet
3
Posts
12
Years
Also, it won't show in A-map, but it will show in game. You have to change the OW's palette number in a hex editor though, to change it in the first place.
I know you probably don't want to say how but where could I find out how to do that, like point me to a certain forum here or somewhere else.

Thank you.
 

Sudeki

Can you feel it?
322
Posts
14
Years
I know you probably don't want to say how but where could I find out how to do that, like point me to a certain forum here or somewhere else.

Thank you.
Open up NSE Classic, go to the sprite you want to change the palette number of. Make sure "Advanced" mode is on.
Then you want to find the "Sprite Offset:" Go to that offset in your hex editor.

Ripped from Metapod 23's thread
Here is what the hero's first overworld data looks like
Code:
  FFFF[B]00[/B]1102110002100020001001000010373A089C373A0870343A08A0003A08FC1C2308
and is broken down like this (courtesy of GBChacker's post):

Code:
FFFF     = Starter Byte
[B]00     = Palette Number[/B]
11 02 11 = Sprite validation.
0200 = This is equal to the second 4 numbers in the Frame Data Pointer; this is the size of each frame
0010 = Width
0020     = Height
0110 and 0000 = oam data. Do not modify!
1@ 10373A08    = Points to @3.
2@ 9C373A08    = Void pointer\ unsure.
3@ 70343A08    = A pointer to @5 lol.
4@ A0003A08    = Sprite Pointer
5@ FC1C2308    = Pointer to pointers which point to code that loads the  sprite through the ewram into the sprite block of the vram and its data  into the oam.
I bolded the parts you are interested in. Do not forget to put the number in hex and not decimal.
 

Quickster

Dream or Drop?
351
Posts
16
Years
  • Seen Apr 4, 2016
Open up NSE Classic, go to the sprite you want to change the palette number of. Make sure "Advanced" mode is on.
Then you want to find the "Sprite Offset:" Go to that offset in your hex editor.

Ripped from Metapod 23's thread
Here is what the hero's first overworld data looks like
Code:
  FFFF[B]00[/B]1102110002100020001001000010373A089C373A0870343A08A0003A08FC1C2308
and is broken down like this (courtesy of GBChacker's post):

Code:
FFFF     = Starter Byte
[B]00     = Palette Number[/B]
11 02 11 = Sprite validation.
0200 = This is equal to the second 4 numbers in the Frame Data Pointer; this is the size of each frame
0010 = Width
0020     = Height
0110 and 0000 = oam data. Do not modify!
1@ 10373A08    = Points to @3.
2@ 9C373A08    = Void pointer\ unsure.
3@ 70343A08    = A pointer to @5 lol.
4@ A0003A08    = Sprite Pointer
5@ FC1C2308    = Pointer to pointers which point to code that loads the  sprite through the ewram into the sprite block of the vram and its data  into the oam.
I bolded the parts you are interested in. Do not forget to put the number in hex and not decimal.

Thank you for explaining that. I didnt go into as much depth, but I explained the basics of how to do it under Step 6.
 

solrecon111

Didn't do nothing...... yet
3
Posts
12
Years
For some reason it works with the hero of fire red but it wont work with the hero from emerald. in the picture i didnt edit the fire red hero's palette but as you can see the emerald hero is messed up
asdfjkl%3B.png
 
5,256
Posts
16
Years
Is there a fix to the bug where if you go to another screen (most menus in the bag, battles, etc.) and then return to the map the palette reverts to one of the original palettes?
 
Back
Top