[Guide]Stat Growth rates

If you are stuck in the Dunan Unification Wars; or wish for more details on the gameplay systems, this is the place.
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

CelesDestiny wrote: Why do you combine HP growth rates 08 and 10?
Because they have slightly the same HP by level 99, though HP 10 > HP 08 in the lower levels.
And lets bring a bit of consistency to the ranks.
S, A+, A, B+, B, C+, C, D+, D, E+ (HP growth rate only), E, F
Updated Stat Ranks:

Rank F = HP 11 (final HP 450)
Rank E = Stat 10 (final stat 65)= HP 00 (final HP 500)
Rank E+ = Stat 00 (final stat 70) = HP 01 (final HP 550)
Rank D = Stat 01 (final stat 95) = HP 02 (final HP 600)
Rank D+ = Stat 02 (final stat 105) = HP 03 (final HP 650)
Rank C = Stat 03 (final stat 120) = HP 04 (final HP 700)
Rank C+ = Stat 04 (final stat 145) = HP 05 (final HP 750)
Rank B = Stat 05 (final stat 165) = HP 06 (final HP 800)
Rank B+ = Stat 06 (final stat 190) = HP 07 (final HP 850)
Rank A = Stat 07 (final stat 210) = HP 08 (final HP 950)
Rank A+ = Stat 09 (final stat 210) = HP 09 (final HP 950)
Rank S = Stat 08 (final stat 230) = HP 10 (final HP 999)

Hold up. We already have IczR1's rankings, right? Yeah, I know, it did not take into account the effectiveness of each character in his own field, like a fighter as a fighter, and a mage as a mage. So in IczR1's rankings, rune slots dominate because you can make anyone with enough slots a physical killing machine, and with the attack-enhancing runes, Physical Damage > Magic Damage.

BUT, it would suck that the character you usually use don't fit the bill while characters you don't use often get a higher effectiveness rank, isn't it?

With that in mind, I would like to add the effectiveness ranking of each character as one of the following classes: Fighter, Tank, Mage, and Support. Because of S2's added customizability, there will be no such thing as a weak character. Anyone can be optimized with the right runes and equipment. Yes, I tested it myself, even on characters I don't usually use. So far, Beast Rune is easy, no matter who I bring in.

Definition of the terms above:

Fighter - high ATK, hits often, crits often, can withstand enough damage.
Tank - high HP, high PDEF (and perhaps MDEF in Oulan's case), can wear as many element-resistant equipments as possible.
Mage - I call this an offensive mage. Basically your anti-boss cannon, until in the later levels where you can defeat stronger bosses with pretty much physical attacks alone.
Support - I call this a supportive mage (that is, one that heals and buffs). A very important type of character, not just in Suikoden, but in any game. Without a support character in a normal gameplay, you're pretty much as good as dead.

The criteria in which each character's effectiveness in the following roles are based on his stats, and the stats which are important to each role. For each, the following are taken into consideration:

Fighter - Rune Slots (More rune slots, the better. Though in my research, just an open weapon slot is enough.), ATK (natural STR + weapon ATK), TECH (determines hit rate, critical rate, and counter-attack rate), SPD (determines action speed, i.e. who goes first in battle), and LUCK (if all else fails, determines critical rate)
Tank - PDEF (natural PROT + armor DEF), MDEF (though most tanks are low on this), armor slots (if you want a Luca-like all-element resistance, that is). Good news for tanks is: no rune slots needed, unless you want a Wall-Firefly one.
Mage - Rune slots, base MAG (which determines base magic power and MP), affinities to offensive magic runes (Fire, Lightning, Pale Gate, and Darkness)
Support - Rune slots, base MAG (which determines base magic power for healing and MP), affinities to supportive magic runes (Water, Earth, Wind, and Resurrection)

That's all I can say about the criteria. Any more suggestions, anyone?

Optimal equips and runes for each role:

Fighter - Master Garb, Power Rings/Gloves, Skill Rings, Lucky Rings, Speed Rings, *Double-Strike if you have enough DEF and rune slots for it, *Double-Beat if you want to attack twice per turn (perfect for L-range people since they can't be countered), *Fury if you want Auto-Berserk, *Violence to trigger the x3 DMG, *Gale to hit more mobs per turn, *Killer to deal more criticals, *Fire or *Lightning Weapon Runes for people who can't hit often.
Tank - highest DEF armors available, preferably a magic resistance set (the five elemental amulets, Flame Helmet, Earth Armor, Earth Shield, Windspun Armor, Thunder God Garb, Robe of Mist, or anything else that adds elemental resistance). Good news is: you can substitute/add the first ones with the second ones: Fire Emblems with Power Rings/Gloves, Thunder Amulets with Skill Rings, and Wind Amulets with Speed Rings.
You can do it for everybody, not just tanks.
Mage - an element resistance set, and offensive magic runes, i.e. Fire, Lightning, Pale Gate, and Darkness. The only reason I didn't include *Alert is because you can't take a risk killing your own team with your own spells, believe me.
Support - an element resistance set, and supportive magic runes, i.e. Water, Earth, Wind, and Resurrection. Low-maintenance people, really. Just keep them alive.

UPDATE: Here it is!
It's not all about knowledge, but it helps.
User avatar
Celes
Global Admin
Posts: 1422
Joined: Sun Nov 12, 2006 6:25 pm

Re: [Guide]Stat Growth rates

Post by Celes »

Modified and corrected, here it is:

http://www.suikosource.com/games/gs2/gu ... growth.php

(Topic released)
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

For anyone who might ask who are the best tanks in S2, I consider these as the top 3:

Humphrey (DEF S, HP B+, 1 rune slot, Recommended rune: Firefly)

Stat-wise, he's the best tank. Problem is, he only has one rune slot and has a quite bad MDEF. But it's compensated with his high HP and Windspun Armor from S1 can be transferred, thus making him a bit faster and resistant to Wind attacks. Wall won't be necessary since he has high DEF already. You can have Firefly instead and have someone heal him.

Viktor (DEF A+, HP B, 2 rune slots, Recommended runes as tank: Wall + Firefly, Double-Beat+Double-Strike otherwise)

Next to Humphrey, Viktor has the highest DEF rank among 2-slotters. Unlike Humphrey however, he can't equip heavy armors. Since he also has high STR and TECH ranks (A and C, respectively), you would probably set him up as an attacker with the DB+DS rune combo. Nonetheless, when developed as a tank, Viktor can do the job quite well.

Oulan (DEF A+, MDEF A+, HP B+, 1 free rune slot, Fury rune recommended as an attacker)

Quite unusual for a fighter, Oulan has about the same MDEF as a full-fledged mage like Luc. For this reason, she is most suited as an anti-magic tank. Not only that. With a Fury rune, she can use her Angry Dragon indefinitely. You could always not use Fury instead so that she can use it only when berserked with Battle Oath, which is more suited against bosses than normal mobs. Well, your choice.

EDIT: Oh my gosh! HOW THE HELL DID I MISS KAHN?
It's not all about knowledge, but it helps.
Desro
Posts: 2
Joined: Fri May 13, 2011 6:55 pm

Re: [Guide]Stat Growth rates

Post by Desro »

I was interested if anyone ever located where in the game the actual character growth rates are stored (and how its stored).

It looks like the character growth rates have been figured out pretty accurately though testing, has anyone tried to use this information to locate where the growths are stored in the game's code?

Also, NinjaLuc, I'm not sure if you ever figured this out, but I have a helpful tip when using Excel. If you want to list numbers with header zeros; 01, 02, etc., then type in 01 and then open the Format Cells window under the Number tab and select Text. They will hold the zeros when pasted as text too, and will still operate as numbers in formulas.
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

The problem with that is Excel sends up a flag whenever a number is stored as text.

As OC as I am, I don't want to see flags in the cells.
It's not all about knowledge, but it helps.
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

Desro wrote:I was interested if anyone ever located where in the game the actual character growth rates are stored (and how its stored).

It looks like the character growth rates have been figured out pretty accurately though testing, has anyone tried to use this information to locate where the growths are stored in the game's code?

Also, NinjaLuc, I'm not sure if you ever figured this out, but I have a helpful tip when using Excel. If you want to list numbers with header zeros; 01, 02, etc., then type in 01 and then open the Format Cells window under the Number tab and select Text. They will hold the zeros when pasted as text too, and will still operate as numbers in formulas.
Yeah, it's been a long time. I also wonder about that.

I'm also curious how the battle engine works.
It's not all about knowledge, but it helps.
highwind44029
Posts: 1490
Joined: Wed Sep 29, 2004 4:40 am

Re: [Guide]Stat Growth rates

Post by highwind44029 »

Pyriel tears the game apart regularly so he could probably provide some answers. xD
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: [Guide]Stat Growth rates

Post by Pyriel »

Growth rates appear to be stored in several files, but the primary location used in memory starts at 0x800691F4, with the hero's values at 0x80069206 through 0x80069209 (inclusive). The values are nibbles. What that means is 4 bytes for 8 stats, with each stat using half a byte. The hero has 0x65, 0x45, 0x76, 0x75 which breaks down to:
Magic - 5
Strength - 6
Magic Def - 5
Prot - 4
Speed - 6
Technique - 7
HP - 5
Luck - 7

Compare with Abizboah (0x71, 0x61, 0x20, 0x5F)
Magic - 1
Strength - 7
Magic Def - 1
Prot - 6
Speed - 0
Technique - 2
HP - F (15)
Luck - 5

When increasing HP, the growth value is tripled and 1 is added for level 20-59 and 2 for level 60+, which just means an array of three values for each growth, 1 for level 1-19, a second for 20-59 and a third for 60 and up. A random value from 0-0x1FF (511) is generated, after a fashion, and added to the corresponding value from the table below. The result is divided by 256 (basically) with no fractional parts, and that's the final value added to the HP.

Code: Select all

Growth Rate  Lv 1-19   Lv 20-59  Lv 60+
0 0x343 0x5C0 0x3D8
1 0x479 0x660 0x3D8
2 0x5A1 0x740 0x45B
3 0x70D 0x800 0x49D
4 0x7E5 0x900 0x45B
5 0x8BC 0xA40 0x45B
6 0xA35 0xB00 0x45B
7 0xBAF 0xBC0 0x49D
8 0xD28 0xD00 0x4DF
9 0x13E5 0x280 0x290
A 0x1E43 0x280 0x290
B 0x86B 0x5C0 0x834
C 0xDCA 0x6C0 0x8F9
D 0x126B 0x800 0x355
E 0x70D 0x3C0 0x10EC
F 0x16A1 0x8C0 0x290
I can work out how stats are done later. It's a similar process, just with lower values involved, and what might be some rate-specific branching. It looks like it does different things for different growth rates, and breaks for some of them at levels 15, 20, 60, and 80 and others just at 20 and 60. I'd also like to run through the array and get the minimum and maximum values possible. The two or three characters I checked coincided with the listed values on the website, even if the ranking is a little shaky versus the actual table overall.

There's other information there, like the levels at which Rune slots unlock, and probably what armor a character can wear. I haven't looked through it all yet. Each character has 18 (0x12) bytes allocated in this array.

Code: Select all

RAM:80069206                 .byte 0x65  # e          # Hero growth data
RAM:80069207 .byte 0x45 # E
RAM:80069208 .byte 0x76 # v # Order appears to be (nibbles)
RAM:80069208 # 0 - Magic (5)
RAM:80069208 # 1 - Strength (6)
RAM:80069208 # 2 - Magic Def (5)
RAM:80069208 # 3 - Prot (4)
RAM:80069208 # 4 - Speed (6)
RAM:80069208 # 5 - Technique (7)
RAM:80069208 # 6 - HP (5)
RAM:80069208 # 7 - Luck (7)
RAM:80069209 .byte 0x75 # u
RAM:8006920A .byte 0
RAM:8006920B .byte 0
RAM:8006920C .byte 0
RAM:8006920D .byte 0
RAM:8006920E .byte 0x33 # 3
RAM:8006920F .byte 0x33 # 3
RAM:80069210 .byte 0x32 # 2
RAM:80069211 .byte 0x33 # 3
RAM:80069212 .byte 0
RAM:80069213 .byte 0xA
RAM:80069214 .byte 0x28 # ( # Hero Rune Unlock Levels
RAM:80069215 .byte 1
RAM:80069216 .byte 0x19
RAM:80069217 .byte 0x13
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

Nice find, Pyriel. Keep it up.

Once it's done, we can update the stat growth guide.
It's not all about knowledge, but it helps.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: [Guide]Stat Growth rates

Post by Pyriel »

Code: Select all

Stats
Growth Rate Lv 1-19 Lv 20-59 Lv 60+
----------- ------- -------- ------
0 0xF2 0xAC 0x62
1 0x150 0xE0 0x7C
2 0x1AF 0x120 0x90
3 0x20D 0x16C 0x90
4 0x286 0x1B3 0x90
5 0x2E5 0x1F3 0x9D
6 0x343 0x233 0xB1
7 0x3CA 0x266 0xD8
8 0x45E 0x2A0 0xF9
B 0x21A 0x1E0 0x1CB
C 0x2CA 0x260 0x1EC
D* 0x0 0x0 0x0
F* 0x0 0x0 0x0

Growth Rate Lv 1-14 Lv 15-59 Lv 60+
----------- ------- -------- ------
9 0x592 0x138 0xA4
A 0x692 0x1A4 0xC4

Growth Rate Lv 1-19 Lv 20-59 Lv 60-79 Lv 80+
----------- ------- -------- -------- ------
E 0x5E 0x53 0x100 0x2D

*When growth rate values are picked, D or F would get garbage values if used. It would actually be the character ID, with no regard for the character's level.
These are the value tables for stats. Once a value is retrieved based on the growth rate ID and the character's level, a random number from 0 to 0xFF is generated, added to the growth rate value, and the sum is divided by 256.

Based on these tables and the algorithms in the game, I get the following minimums and maximums.

Code: Select all

HP Growth Rate: 0
Levels 1 - 19: 3 - 5
Levels 20 - 59: 5 - 7
Levels 60 - 99: 3 - 5

HP Growth Rate: 1
Levels 1 - 19: 4 - 6
Levels 20 - 59: 6 - 8
Levels 60 - 99: 3 - 5

HP Growth Rate: 2
Levels 1 - 19: 5 - 7
Levels 20 - 59: 7 - 9
Levels 60 - 99: 4 - 6

HP Growth Rate: 3
Levels 1 - 19: 7 - 9
Levels 20 - 59: 8 - 9
Levels 60 - 99: 4 - 6

HP Growth Rate: 4
Levels 1 - 19: 7 - 9
Levels 20 - 59: 9 - 10
Levels 60 - 99: 4 - 6

HP Growth Rate: 5
Levels 1 - 19: 8 - 10
Levels 20 - 59: 10 - 12
Levels 60 - 99: 4 - 6

HP Growth Rate: 6
Levels 1 - 19: 10 - 12
Levels 20 - 59: 11 - 12
Levels 60 - 99: 4 - 6

HP Growth Rate: 7
Levels 1 - 59: 11 - 13
Levels 60 - 99: 4 - 6

HP Growth Rate: 8
Levels 1 - 19: 13 - 15
Levels 20 - 59: 13 - 14
Levels 60 - 99: 4 - 6

HP Growth Rate: 9
Levels 1 - 19: 19 - 21
Levels 20 - 99: 2 - 4

HP Growth Rate: A
Levels 1 - 19: 30 - 32
Levels 20 - 99: 2 - 4

HP Growth Rate: B
Levels 1 - 19: 8 - 10
Levels 20 - 59: 5 - 7
Levels 60 - 99: 8 - 10

HP Growth Rate: C
Levels 1 - 19: 13 - 15
Levels 20 - 59: 6 - 8
Levels 60 - 99: 8 - 10

HP Growth Rate: D
Levels 1 - 19: 18 - 20
Levels 20 - 59: 8 - 9
Levels 60 - 99: 3 - 5

HP Growth Rate: E
Levels 1 - 19: 7 - 9
Levels 20 - 59: 3 - 5
Levels 60 - 99: 16 - 18

HP Growth Rate: F
Levels 1 - 19: 22 - 24
Levels 20 - 59: 8 - 10
Levels 60 - 99: 2 - 4
I omitted D and F levels for other stats, as they'd be odd.

Code: Select all

Stat Growth Rate: 0
Levels 1 - 99: 0 - 1

Stat Growth Rate: 1
Levels 1 - 19: 1 - 2
Levels 20 - 99: 0 - 1

Stat Growth Rate: 2
Levels 1 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: 3
Levels 1 - 19: 2 - 3
Levels 20 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: 4
Levels 1 - 19: 2 - 3
Levels 20 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: 5
Levels 1 - 19: 2 - 3
Levels 20 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: 6
Levels 1 - 19: 3 - 4
Levels 20 - 59: 2 - 3
Levels 60 - 99: 0 - 1

Stat Growth Rate: 7
Levels 1 - 19: 3 - 4
Levels 20 - 59: 2 - 3
Levels 60 - 99: 0 - 1

Stat Growth Rate: 8
Levels 1 - 19: 4 - 5
Levels 20 - 59: 2 - 3
Levels 60 - 99: 0 - 1

Stat Growth Rate: 9
Levels 1 - 14: 5 - 6
Levels 15 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: A
Levels 1 - 14: 6 - 7
Levels 15 - 59: 1 - 2
Levels 60 - 99: 0 - 1

Stat Growth Rate: B
Levels 1 - 19: 2 - 3
Levels 20 - 99: 1 - 2

Stat Growth Rate: C
Levels 1 - 59: 2 - 3
Levels 60 - 99: 1 - 2

Stat Growth Rate: E
Levels 1 - 59: 0 - 1
Levels 60 - 79: 1 - 1
Levels 80 - 99: 0 - 1
Last edited by Pyriel on Thu Nov 05, 2015 9:44 am, edited 2 times in total.
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: [Guide]Stat Growth rates

Post by Pyriel »

Here's the extracted data.
GrowthRates.xlsx
You do not have the required permissions to view the files attached to this post.
User avatar
wataru14
Guide Writer
Posts: 715
Joined: Thu Aug 05, 2010 10:37 am
Location: Las Vegas

Re: [Guide]Stat Growth rates

Post by wataru14 »

[deleted...]
Last edited by wataru14 on Thu Nov 05, 2015 8:23 am, edited 1 time in total.
User avatar
ninjaluc79
Posts: 867
Joined: Tue Sep 13, 2005 10:45 pm
Location: The Island Nations
Contact:

Re: [Guide]Stat Growth rates

Post by ninjaluc79 »

Code: Select all

Stats	Initial	Lv 1-19	X/256	%	Lv 20-59	X/256	%	Lv 60-99	X/256	%			
0 10 0-1 241 94.14 0-1 171 66.80 0-1 97 37.89
1 11 1-2 79 30.86 0-1 223 87.11 0-1 123 48.05
2 11 1-2 174 67.97 1-2 31 12.11 0-1 143 55.86
3 12 2-3 12 4.69 1-2 107 41.80 0-1 143 55.86
4 12 2-3 133 51.95 1-2 178 69.53 0-1 143 55.86
5 13 2-3 228 89.06 1-2 242 94.53 0-1 156 60.94
6 13 3-4 66 25.78 2-3 50 19.53 0-1 176 68.75
7 14 3-4 201 78.52 2-3 101 39.45 0-1 215 83.98
8 14 4-5 93 36.33 2-3 159 62.11 0-1 248 96.88
11 14 2-3 25 9.77 1-2 223 87.11 1-2 202 78.91
12 11 2-3 201 78.52 2-3 95 37.11 1-2 235 91.80

Stats Initial Lv 1-14 X/256 % Lv 15-59 X/256 % Lv 60-99 X/256 %
9 12 5-6 145 56.64 1-2 55 21.48 0-1 163 63.67
10 14 6-7 145 56.64 1-2 163 63.67 0-1 195 76.17

Stats Initial Lv 1-14 X/256 % Lv 15-59 X/256 % Lv 60-79 X/256 % Lv 80-99 X/256 %
14 12 0-1 93 36.33 0-1 82 32.03 1-1 255 99.61 0-1 44 17.19
Lv99 Stats (rounded to the nearest multiple of 5)

Stat 0 - 70 (MP 6/3/1)
Stat 1 - 90 (MP 6/3/1)
Stat 2 - 110 (MP 7/4/2/1)
Stat 3 - 130 (MP 8/5/2/1)
Stat 4 - 150 (MP 9/6/3/1)
Stat 5 - 170 (MP 9/6/3/2)
Stat 6 - 190 (MP 9/7/4/2)
Stat 7 - 215 (MP 9/8/5/3)
Stat 8 - 240 (MP 9/9/7/4)
It's not all about knowledge, but it helps.
User avatar
wataru14
Guide Writer
Posts: 715
Joined: Thu Aug 05, 2010 10:37 am
Location: Las Vegas

Re: [Guide]Stat Growth rates

Post by wataru14 »

Pyriel wrote:These are the value tables for stats. Once a value is retrieved based on the growth rate ID and the character's level, a random number from 0 to 0xFF is generated, added to the growth rate value, and the sum is divided by 256.
Are all the random numbers weighted evenly? Or is it more likely to be on the higher end for some rates and lower for others (like the previous stat growth theory)?

Also, in your code under Growth Rate E you have the first group at Level 1 - 19 and the second at Level 15 - 59. Should it be 1-14/15-59 or 1-19/20-59?
User avatar
Pyriel
Webmaster
Posts: 1227
Joined: Wed Aug 18, 2004 1:20 pm

Re: [Guide]Stat Growth rates

Post by Pyriel »

If the RNG is perfect, it shouldn't introduce any bias, but it likely will. That's an analysis more for computer scientists, and the ridiculously simple rand() implementation in the PS Dev Kit is well known for being cruddy. Although, it's less that it's biased, and more that it's entirely predictable unless it's called so often you can't keep track of it. For this analysis, we can assume that every value is equally likely from the RNG. However, as it's adding a fixed value there will tend to be a bias. That's the point. When you see the same minimum and maximum values for a range of levels, and the growth rate value changes mid-range, the whole idea is that increasing or decreasing that value a bit will make the higher or lower results more likely.

If a character has TECH growth = 0, they'll gain 0-1 every level from 2-99. The salt value starts relatively high, and diminishes by 25%-30% for each milestone hit. So if the math worked out to a 14/16 chance up to the first level milestone, it might drop to about 10/16, and then further to around 7/16 after the second. That's pretty rough, but you get the idea. It looks like the chance of 1 for growth 0 would be closer to 95% at the start, 67% at level 20-59, and then 38% for 60+.
Post Reply