[FE6] On Support Limits and Roy's Promotion

Hey there, new member here. I previously tried snooping around on Serene’s Forest but the hacking scene there doesn’t seem to be quite as active as it is here, comparatively speaking. Most of the topics there are several years old with no new contributions or comments…

Anyway, so I’ve tried searching this site now, and reading through topics that asked similar questions, but I haven’t found anything concrete so I’m hoping I can get an answer by just asking! So

Question 1) Is anyone aware of a way to remove the limit of 5 Support conversations from FE6? I know there was a patch for this for FE7 floating around, which allowed you to have supports with up to six partners at once, but could only have one single A support. I was hoping to be able to implement something like that in a FE6 hack I’m working on. Best I can tell, I’d need to edit a hex value somewhere to do it, but while I have a hex editor, I have no idea how I’d go about figuring out which hex value in the thousands of lines of code controls this key value.

Question 2) I imagine this should be simpler, since I know there’s already a couple patches out there that do this; I’d like to change when Roy promotes, making the promotion occur sooner. If it weren’t for the fact that I already started working on my hack before learning of these promotion patches, I’d just have implemented one of those. But alas, my hack is already in progress and thus I’ve already modified the ROM by a good degree, so those promotion patches won’t work on my game anymore. So if someone could let me know how to go about manually editing that myself, that’d be very appreciated!

You can probably use FEBuilder to manually change the promotion event

On Support Limits

It is difficult to release support restriction of FE 6.

Routines like FE 8, FE 7 are also found in FE 6.
However, changing the value there can not change the upper limit of support.
There are values that still have to be changed.

0x22BC4
0x22BD4


08022BC0 F7FF FFA8   bl 0x08022b14   //GetUnitTotalSupportLevels 
08022BC4 2804   cmp r0, #0x4  //THIS
08022BC6 DC15   bgt #0x8022bf4
    08022BC8 1C28   mov r0  ,r5
    08022BCA 1C39   mov r1  ,r7
    08022BCC F7FF FF6C   bl 0x08022aa8
    08022BD0 F7FF FFA0   bl 0x08022b14   //GetUnitTotalSupportLevels 
    08022BD4 2804   cmp r0, #0x4 //THIS
    08022BD6 DC0D   bgt #0x8022bf4

I think that this value is the upper limit of the conversation, but with this alone the menu of support does not appear.
You need to find out more code.

Roy’s Promotion

If you look at the scene where Roy is promoting in FEBuilderGBA, you can understand it.

Make hero Promotion
17000000E5D00608

That is, it is realized by calling ASM 0806D0E5 - 1 function.

1 Like

I appreciate the tip on where to look! So this should help me with the promotion editing.

Bummer though about the supports. So basically, with what we know right now, we don’t know how to lift the limit on supports? I’m probably incredibly unqualified for finding the needed data, so that’s unfortunate. Might just have to deal with it, I guess.

So I’m not exactly sure what I did here, but I have this:

So first I started by going to the values you specified, 0x22BC4 and 0x22BD4. Both Hex values there were 04, like what is found in the other GBA FE games, so I changed those both to 0A. Now I knew this alone wouldn’t solve the problem, as you said, so I looked around for what else I could find.

I came upon 0x22EAC

0x22EAC

08022EAC 2809 CMP r0, #0x5 //Scope of support@ADDRESS
08022EAE DC27 BGT #0x8022F00
08022EB0 202C MOV r0, #0x2C
08022EB2 89A9 LDRH r1, [r5, #0xC]
08022EB4 4008 AND r0 ,r1
08022EB6 2800 CMP r0, #0x0
08022EB8 D122 BNE #0x8022F00
08022EBA 6838 LDR r0, [r7, #0x0]
08022EBC 7901 LDRB r1, [r0, #0x4]
08022EBE 1C28 MOV r0 ,r5
08022EC0 F7FF FEB2 BL 0x08022C28

The Hex value stored at that address was 03. I tried bumping it up to 05, and suddenly Roy is able to have 3 B supports and 1 C support. 7 Conversations worth. However, vexingly enough, Alan and Lance still maxed out (glowing text) at One A support and one B support, like normal. And then upon trying to do this a second time, Roy got stuck at two B supports and two C supports, and then oculdn’t start any more conversations.

I am not exactly certain that I have found the right value to mess with, but considering that tweaking 22EAC allowed me to go beyond 5 support conversations with Roy, I think I might be on to something. Unfortunately, I’m a total novice, so I don’t know what to do from here. Do you have any ideas?

0x22EAC

It is a place that defines the scope of support.
It defines the scope to receive support gain bonus.
I think that it has nothing to do with the support conversation.(?)
But I do not know why the number of support increased.

I do not understand well because FE 6 is different from FE 7 and FE 8.
If you really want to realize it with FE 6, it is to chase with a debugger(no$gba debugger).

I wrote it even here,

Whether or not a menu appears depends on the function of “Possibility Diagnostic Routine Pointer”.
Looking at this asm of support menu, I think the MakeTargetListForSupport function is suspicious, but this function is quite difficult.
08020076 F001 F88F BL 0x08021198 //MakeTargetListForSupport

please try tracking.
Good luck.