The array at 1FFC10 (aka $DFFC10 in HiRom notation)
Every 2 bytes combo is a color in the SNES color notation. 1FFC00 thru 1FFC1F were mapped into the color palette in Usenti shown on the far right (top row of 16 colors) in the above screenshot, just to see if this was possibly the right bit of data I was looking for. It seemed likely, although I couldn’t recognize any specific colors from the character sprites (although the bright orange and pinks are likely close to the colors Lenna’s sprite uses…). Maybe I found the right array?
To conduct a test experiment, the bright yellow that’s the 6th color in this array (”FF03”) was changed to “03FF” to see what would happen. Swapping the bytes like this usually makes a dramatically different color (yes, the RGB values are shared across only 2 values, it’s odd).
<aside> 💡 I renamed the WIP rom file to a name that matched an existing .srm file of save games, opened it and loaded an early save, and saw this amazing change:
</aside>
So I feel confident that I’ve found the game’s actual palette of colors that gets loaded and used across different map sprites! I didn’t know that a universal palette like this existed— I assumed that each sprite would have its own palette assigned… which seems very inefficient now that I think about the era and the system this was programmed in.
It’s super important to mess around like this in order to learn how the parts of the game’s code interact!
The current goal is to find where Galuf’s hair colors are stored, so I can adjust them on the map to match his hair in battle (which are 3 grey/brown colors, versus the red/gold that show up on the map sprite). A hacker named J121 who did the impressive GBA Script port for this game created a patch to make the in-battle Galuf’s hair match the map Galuf’s, so I’m angling to create the inverse of that patch… for creators who want to see Galuf’s grey hair throughout the game.
Hence, I’m exploring the rom’s map palette. Made some startling progress on this front, tbh. I can’t imagine a more dramatic EUREKA moment that seeing Boco in blue vs yellow, I absolutely scored a bullseye on this experiment.
https://www.ff6hacking.com/ff5wiki/images/9/95/Ff5j_asm.txt
👆 Here’s where I found a HUGE amount of the rom disassembled and labeled with comments. This was done by the super talented everything8215 who also built the multipurpose, multi-feature ff6tools webapp. This resource helped me successfully locate the array of colors that controls the map sprites, as described a bit above.
The Lunar Address program helps convert the different data addresses back and forth. I set the app for HiRom because this is the “filesystem” schema that FFV SNES uses. Then $DFFBFF became 1FFBFF, which was the very last byte (a blank 00) before the color array begins in the image shown above. I used Goto in the windhex editor (Ctrl+G) to jump right to the address 1FFBFF.
This is Galuf’s unused Mime (aka Mimic) Job palette. I used Mesen to find this data, from debugging a running smc file.
19 21 84 10 FF 7F 88 0C 3F 43 38 02 20 7E E0 7C
F8 31 74 01 9A 02 FB 14 11 00 BF 3F A4 0A 53 01
I used three different Mesen Debug apps to find these bytes: the Tile Viewer, Palette Viewer, and Memory Viewer.