View Single Post
Old April 28th, 2013 (2:13 PM). Edited May 2nd, 2013 by Akiba.
Akiba's Avatar
Akiba Akiba is offline
  • Crystal Tier
Join Date: Mar 2011
Location: in a gap
Age: 18
Gender: Female
Nature: Brave
Posts: 4,268
I have been doing some research on the Unknown Values for Overworld Strings in Fire Red.

This thread may also serve as a somewhat sketchy Advanced Tutorial for OW Palette modification.

For reference on adding new OWs: [Other] Adding New Overworlds into FireRed for Dummies
For reference on adding new OW Palettes: [Other] New palettes in Fire Red for OW's!

In the game, the first byte after the two FF bytes coincides with the ID of the Palette used by the overworld. However, editing this byte by itself does not seem to affect the game. I have tested and confirmed this. Instead, the first byte of the four OAM data bytes appear to dictate which palette is used by the OW.

The byte conversion originally appears to be [Palette ID]+[0xF].
(Refer to the latter section of the post)

Following this pattern, Palette 0x20 should be called with byte 0x2F.

However, when that is put into practice:

We get this:

That Axew seems a bit black, does it not?

After experimentation, I found that Palette 0x20 is called with byte 0x2A:

And we get this:

Much better.

But now, we must play a game of Psychiatrist, and deduce how this unknown byte actually points to the Palette of our desire.

Consider the following strings from the original Fire Red:

Palette 0x0 is called with byte 0x10.

Palette 0x3 is called with byte 0x12.

Palette 0x4 is called with byte 0x13.

However, as I insert my own palettes and new tables, the pattern becomes increasingly elusive.

Palette 0x21 is called with byte 0x22.

Palette 0x23 is called with byte 0x30.

Furthermore, as I add more sprites and palettes, I must constantly change the bytes, as they seem to point to different palettes each time.

If anyone has a revelation about this, please contribute to this research.
Reply With Quote