1
Final Fantasy V Research & Development / Character Glow and Palettes
« on: February 15, 2013, 08:21:02 PM »
Another minor thing, but could be useful. I was screwing around with palette information mainly to create a new status. I eventually coded up a rough FF6-style glow effect.
All character palette information (afaik) is handled by a function located at C1/B1AC. This function is relatively straightforward. First, it checks to see if the character is Wounded; if so it uses the default character palette. Otherwise, it loads the class palette. Then it runs two sets of checks; one for Status 0/1 (palette changes) and a second for Status 2 (glowing effects). As coded, once a palette change effect is handled, the function skips to the glow effect. In order: Stone, Zombie, Poison, Aging, Berserk. Similarly, once a glow effect is set, the function skips to the end. In order: Wall, Armor, Shell, Stop, Haste, Slow. There's no reason multiple palette changes couldn't be applied with simple code changes, and some relatively simple coding could even allow multiple glow colors.
Palette information is stored at 7E/7F89,Y for each character, and is 0x20 bytes long (16 2-byte values). Note that "glow" effects are really just changing the palette outline (at 7F8B) in a simple on/off manner. I have a basic list of what each 16-bit value controls, but not with me: I'll update this post when I can grab the notebook.
[EDIT]My list isn't as detailed as I thought it was, but for the sake of reference:
All character palette information (afaik) is handled by a function located at C1/B1AC. This function is relatively straightforward. First, it checks to see if the character is Wounded; if so it uses the default character palette. Otherwise, it loads the class palette. Then it runs two sets of checks; one for Status 0/1 (palette changes) and a second for Status 2 (glowing effects). As coded, once a palette change effect is handled, the function skips to the glow effect. In order: Stone, Zombie, Poison, Aging, Berserk. Similarly, once a glow effect is set, the function skips to the end. In order: Wall, Armor, Shell, Stop, Haste, Slow. There's no reason multiple palette changes couldn't be applied with simple code changes, and some relatively simple coding could even allow multiple glow colors.
Palette information is stored at 7E/7F89,Y for each character, and is 0x20 bytes long (16 2-byte values). Note that "glow" effects are really just changing the palette outline (at 7F8B) in a simple on/off manner. I have a basic list of what each 16-bit value controls, but not with me: I'll update this post when I can grab the notebook.
[EDIT]My list isn't as detailed as I thought it was, but for the sake of reference:
Code: [Select]
7F8B: Outline (ie Glow)
7F8F: Eyes
7F91: Skin A (see Berserk/Zombie)
7F93: Hair A (see Old)
7F99: Skin B
7F9B: Hair B (shadow)
7F9D: Hair C (highlight)
