[FE8] More Than Two Promotions

CCD48 seems to be the place where the routine starts.
CCDC0’s loop is something to loop through all the player characters until it finds the one you’re promoting. (Possibly to find what their current class is.)
You can see the game check twice for classes to promote to at CCE56. If you pull that out, the second option becomes a glitchy mess.
CCE72 looks at the case of the trainee classes and adds the third promotion to the list of promotions (which is located at 0202547C). It also hardcodes the three extra promotions the trainees get to their class.
The check for whether you’ve completed the game before, and thus whether that third promotion is actually activated, seems to be somewhere else though :\ .
Haven’t figured out enough about the branching to make any significant changes, but loading an old save file, got this:

Related: CD7FC and a few more ensuing blocks of ASM load the text that happens before the trainee promotions.

4 Likes

Triple promotions!? Get that to work consistently and generically and you’ll have me interested. (Possibly forego the trainee check and always load a preset 3rd promotion.)

The problem is that I can’t figure out where the “check to see if game has been beaten” part is being done… but just removing/restructuring the trainees should be that hard…

EDIT: The third promotion existing and being locked to the trainees seems to be hardcoded somewhere else, with this section of code only serving to say what the promotions will be. When I got rid of the trainee-specific conditionals and tried to promote Ross, I got this…

This interests me. I might use my l33t skills to try to figure something out.

I feel like if we can crack trainee promotions, we might also be able to make auto-promotion a reality (because, well, look who already auto-promotes)…

1 Like

Interesting note: you literally cannot promote any trainees until Chapter 4 of Sacred Stones. I wonder if “make trainees promote” is something coded into “go to battle prep screen”…

Solved - ccca4 does the check to see if the trainees get their third promotion option open (this seems to be a check for Eirika/Ephraim mode beaten).
cdd70 determines if the promotion display will show the third promotion option.

If there is no third class, the game will glitch when you cursor to that option…

1 Like

Now let’s figure out how to set that 3rd option.

o.O Something really weird happens when I try to make Franz’s third promotion a general…
The promotion screen and everything works all right but it ends up promoting him to a cavalier instead o.O.

And if I try to make the third promotion a pupil (2) there are graphical glitches.

Secret unused trainee class slot? :B

Notes:
Promotion routine located at 2BD50.
2BE6A is the line hardcoding pupils losing anima magic when they become shamans.

Break on the write to his class?

That doesn’t work because it saves the class somewhere else dynamically before the promotion routine starts.
The routine that does that is located at CDB34, though… oh, ew, CDB80 has another hard-coded check for trainee classes. But changing that should make it work.

Either way, it’s a place to start.

All right! :slight_smile:

3 Likes

Good job! now document every step of the process and its logic.

1 Like

Hmm, let’s see…

  1. Change CCCD6 to 0x1, which tells us we don’t care if you’ve beaten the game on both modes.
  2. Sift through the routine at CDD38, which hardcodes displaying the third promotion to the three trainee classes.
  3. String of comparisons at CCE72, hardcoded again, tell us what class to display for the third choice on the promotion menu.
  4. String of comparisons at CDB80, another hardcoded place, tell us what class to actually promote the unit into.

…maybe I should write a patch that unhardcodes all these parts.

1 Like

patch: https://www.dropbox.com/sh/zpuekyek8y12y9r/AADA1_A5oFPbafbP4cZiKJ4va?dl=0

Table for what classes get what extra promotions is located at 0xEFBB00.

Edit: Fixed broken link.

7 Likes

Two things:

  1. Can we make modules to tell whether a certain branch HAS a 3rd promotion path?

  2. Is the code in-game modular/flexible enough to allow for a generic number of promo paths, e.g. 4?

If I have three promotion paths, that allows me to give the player choosable weapon paladins. I’m very happy by this development.

English community is best community.