Ideally I would love our system to be able to calculate from Level 1-70 for every character. That way we could have characters join whenever the modder would like rather than "when their level fits them".
It should be no problem - no reason we shouldn't be able to unless there's some weird sneak pointer somewhere that says 'Cecil starts at 10 - live with it' - and if there is such a pointer I say to you go get him!

Phew, now this... this is complicated to wrap my head around
Boy you said it...in a way I'm kinda kicking myself for not holding off on posting, clearly my ducks were wandering aimlessly...on the other hand I think I've got it.
I'm going to get right to it now and then I'm sure after not too long after posting and the itch will start to formalize it - I just can't seem to help myself.
Anyway the punchline is:
(New TNL) = (Old TNL) + D + (N - 1) x (T - S + 3N/2)
D = 1st Difference, so for Rosa it is 220,
T = 2nd Difference, so in this case 39,
S = Step Size, what is approximated between the bottom moment, 3 in this case
N = Current Level - Starting Level, so for Rosa: Current Level - 10
- I'm not quite happy with it, but it's really not that bad either...
- A little explaination:
This is what that triangle should have been:
Lv 10
to 815
Lv 11 220 <---F'ed up here - I had 200 in the picture...ouch...
to 1035 39
Lv 12 259
to 1294 <---Wrote 1292 originally - clearly I flunked out of proofreader school
Lv 13
Anyway because there's only one difference between what we need and where things are assumed constant you can pull that formula out recursively. Here's a bit more of that table (copied from excel, no hand typing :P)
LV TNL D T
---------------------------------------------------------------------------------------
10 815 (815,0) S = 3
11 1035 (1035,0) 220 (220,0)
12 1294 (1294,0) 259 (259,0) 39 (39,0)
13 1595 (1594,-1) 301 (300,-1) 42 (41,-1)
14 1941 (1938,-3) 346 (344,-2) 45 (44,-1)
15 2335 (2330,-5) 394 (392,-2) 48 (48,0)
16 2780 (2773,-7) 445 (443,-2) 51 (51,0)
17 3279 (3270,-9) 499 (497,-2) 54 (54,0)
18 3835 (3825,-10) 556 (555,-1) 57 (58,1)
19 4451 (4440,-11) 616 (615,-1) 60 (60,0)
20 5130 (5118,-12) 679 (678,-1) 63 (63,0)
The numbers on the outside are what I calculated and in the parentheses are the actual values and error
Well I'm convinced

Not bad for just saying "eh, let's go with 3"

you do end up with an N^2 term in it...I'm working on a way to split that up...that's why it took me so long to come back - I stubbornly had to have my copy of the book can't use the internet...oh no...
http://atsol.fis.ucv.cl/dariop/sites/atsol.fis.ucv.cl.dariop/files/Table_of_Integrals_Series_and_Products_Tablicy_Integralov_Summ_Rjadov_I_Proizvedennij_Engl._2.pdfI do actually suggest keeping a copy of it - it's only 7MBs and it's free - who knows what the future will bring...two months ago I wouldn't have expected to be here with you fine people and combating the Ghost of Square-past.
As for the N^2 term, I can offer the following suggestions:
A) Live with it - I don't know what kind of delay that would cause
B) Try implementing the Square recursion: Sq(N+1) = Sq(N)+ (2 x N) + 1
Basically saying (1+3) = 4 = 2^2, (1+3+5) = 9 = 3^2, (1+3+5+7) =16 = 4^2, etc.
Seems like a good route, there may already be some code out there
C) Store some of the higher Squares as reference data...that could work well with that last one, say if you
want 14^2 start with 10^2 having "defined" it as 100
D) It's also possible I my be able to break this down further into a few easier terms, not sure, but so far
no good
E) Last, similar to C but leave some of the reference level up data in the ROM...which may not be bad overall. I could see maybe every 20 levels or so having it just call the tabulated values and then from there calculating the next set, depending on the spacing we could get around large squares that way
Those are my ideas...feel free to discuss, elaborate, or ignore as you see fit

As for me, I'm going to keep going through the data and and make sure at least this will work universally...it should, just define a set of parameters (D,T,& S) for each character and they're off...or not off and in early, missing level data should not be a problem.
I'll also look at the HP & MP gains some more, but at first glance it seems like it's best to just leave a set of hard coded values and then point...there's still a lot of wasted room in the ROM...like for Cecil's magic gain...from 4 to 4 every level until 70....Square, Square, Square...
I still remember the first time I found out 'the World was Square' - ah memories
