I did some testing and documented several classes that have this issue here:
It seems to only happen if the promoted flag is set.
I didn’t test every class, just the most likely suspects (There’s a lot of them). I noticed that the mercenary and myrmidon female slots give 100 exp if the promoted flag is set, but the other unused female ones don’t (FE6 carry over?). I also tried making archers and male myrmidons promoted to double check it wasn’t a tier 1 thing but they gave normal amounts experience (Gonna assume the other t1s are similar).
E1 -
so it appears the problem is in the getFlatEXPBonus() function at 08029E08, though i’m not entirely sure how. Let’s go deeper.
E2 -
i lied, it’s before then
E3 -
It looks like the “relative level” being calculated at 08029DCC for the relevant classes is going haywire
E4 -
I’'ve got it, it looks like the problem is caused because the “unit promotes to” byte (index 5) is zero (can someone please check this for me). When a promoted class gives or gains EXP, it loads the class power of its unpromoted counterpart; doing this involves loading the class pointer of the relevant class. When the “getClassPtr” function at 08018D20 is fed in a zero, it returns 0, which screws up the rest of the calculation.
Lesson learned? Set this value to something nonzero.
Confirmed this with some of the classes I documented. The byte just needs to be non-zero, whether or not the “Promotes to” class is also promoted doesn’t seem to affect it beyond fixing the experience gain.
Glad we know what the issue is and that it’s really easy to fix.
Had the problem that I couldn’t use Nightmare with the new Fire Shell version. I inserted a mug via FEditor and used the Nightmare Portrait-Editor afterwards. Opening FEditor after that, makes the Portrait-Editor inside FEditor unuseable cause of a checksum error. But fixing the Checksum via FEditor undoes the Nightmare changes I’ve done. Nether encountered that before on a rom.
It sounds like you’re saving with both programs simultaneously. They’ll overwrite the changes to each other since they’re using the same base file and don’t update that with changes by other programs.
P.S. What are you needing the portrait editors for anyways? That’s all stuff FEditor takes care of through its interface.
al right so I’ve been making a chapter using fire shell, however there’s a problem. everything seems to load fine, but when a healer on the enemy side comes up to heal someone the game goes back to the title screen, and I don’t know why.
[10:14:19 PM] Cam: fireshell alpha patch is actually broke
[10:23:30 PM] Cam: yeah, applied to a fresh ROM, I get “patch doesn’t match the file”, if I power through anyway it breaks when it tries to access the save file (either immediately after title screen or once it loads the menu)
E:
It’s also not immediately clear where people should be writing new data to, I assume that expanded space should be safe and maybe some of the places like the original event data? This should be better documented IMO.