[FE7] Generic unit palettes option

For those who ever played FE6, you may remember an option being available that allowed you to turn individual player palettes off; all the player characters would use an “arena” palette if this was turned off which would leave the hair colour but make the outfit conform to a generic palette. Oddly enough, this same option was programmed into FE7 also but was never actually accessible (idk why but it just was) Making the option available though is incredibly simple, just change two bytes! Open up your hex editor and go to offset 0xADFDA, there you should see 00 78; change those values to 0F 20 and the option will then be made available at the very bottom of the options list.

Slight side-effect: For whatever reason, there is a duplicate animation option right above the palette option. I have no idea how to get rid of it but it behaves like and interacts with the other animation option so it won’t break your game. If you don’t mind having the duplicate then you’re good to go.

It’s not necessary but if you’re interested, here are some brief notes on 0x2020174, the memory address of interest in the options menu that was manipulated for this “hack” and the routine at 0x80ADFDA and the logic and instructions used to get the desired result.

0x02020174->determines the number of available options in the options menu; the default is 13(0xD). The 15th (0xF) option oddly enough is the FE6 generic palette option whilst the 14th (0xE) is a repeat of the animation option. Every option past 0xF is another repeat of the animation option; once you scroll down far enough(maybe about the 18th or 19th option) the game will crash therefore this value shouldn't be any higher than 0xF.
 
0x080ADFDA-> the instruction here is ldrb r0,[r0]; where r0 holds the value of 0xD. The next instruction is strh r0,[r1,#0x34] which stores the 0xD into r1(which is 0x02020174).  If you look back at the start of the notes, we see that 0xD is the default value of 0x2020174 when the options menu is open, Our goal is to store 0xF into this address when the menu is open and it is achieved very easily; by storing a 0xF into r0 at 0x80ADFDA instead of 0xD(mov r0, #0xF). Hopefully the logic is clear as this is a very simple edit in the code.
1 Like

It can be removed by editing the option menu.

Every option past 0xF is another repeat of the animation option; once you scroll down far enough(maybe about the 18th or 19th option) the game will crash therefore this value shouldn't be any higher than 0xF.

That’s caused by array overflow because you don’t add elements to array but change its size.

In fact, there are 17 different options.
image
image
image

source code