===============================================================================
Final Fantasy 8 Battle Mechanics FAQ v0.7
===============================================================================
by ForteGSOmega (ph0rt3 [at] yahoo [dot] de)
This may be not be reproduced under any circumstances except for personal,
private use. It may not be placed on any web site or otherwise distributed
publicly without advance written permission. Use of this guide on any other
web site or as a part of any public display is strictly prohibited, and a
violation of copyright.
This FAQ explains most aspects of the battle system in Final Fantasy VIII.
All of the info in this document either got through testing or by reverse
engineering of the game, so everything should be mostly correct.
Since this FAQ is not yet complete, some descriptions are incomplete and some
things are missing for now.
===============================================================================
Table of Contents
===============================================================================
1. Definitions, Terms
2. Random Number Generator
3. Battle Timing
3.1 ATB
3.2 Dead Time
3.3 Global Counter
Rounding:
Generally, you should round down after every division, and in some cases
multiplication. However, even if you don't round down in damage calculations,
the difference will be 5 to 10 damage points at most.
Tick:
Used in anything related to battle timing. A tick is a 1/60th second.
[x..y]:
Means "a random value from x to y". E.g. [0..4] would mean that the values
0, 1, 2, 3 or 4 could be used.
Power:
For both Physical and Magical Damage formulas, there's a variable called
Power; each spell and Limit Break attack has its own value and a higher
value means more damage.
x MOD y:
Divide x by y but instead of using the division result, you use the remainder.
E.g. "2 MOD 5" would result in 2 and "7 MOD 3" would result in 1.
===============================================================================
2. Random Number Generator
===============================================================================
A Random Number Generator, or RNG for short, is used to get random numbers
which are used in probability calculations.
In this game, there's a static list of 256 numbers, ranging from 0 to 255
(no two values are the same) in a certain order.
To determine which number from that list is used, an "index" is employed.
The index simply keeps track of what random number to use next, e.g. if the
index has the value 0, the very first number from the RNG list will be used
and if the index has the value 255, the very last number from the list will
be read. Each time a random number is used, the index value increases by one,
pointing to the next integer in the RNG list.
The index is reset to 0 after the 255. number is used.
Unfortunately, this means that the RNG is not a "true" one and is pretty
unreliable.
You can't call it random if you know that after a "99", there's always a "6",
now can you?
Almost everything related to battle timing depends on the Battle Speed.
Battle Speed is a setting in the Config menu and there are five values:
5 (slowest), 4, 3 (standard), 2 and 1 (fastest)
This setting will be referred to as BattleSpeed from now on.
------------
3.1 ATB Bar
------------
Although nothing changes visually, the size of the ATB bar changes depending
on BattleSpeed
BarSize = BattleSpeed * 4000
Every tick, the bar is increased by the BarIncrement
BarIncrement = (Spd + 30) * SpeedMod / 2
SpeedMod:
1 Character has Slow status
2 Character has neither Slow nor Haste status
3 Character has Haste status
In other words, it takes
200 * BattleSpeed / (3 * (Spd + 30))
seconds to fill the ATB bar.
At the start of battle, each enemy's and party member's starting ATB bar is
determined by
Note: StartingBar cannot be greater than BarSize or lesser than 0
With 255 Spd, that would mean the character starts with 29% - 100% of the bar
filled.
Note: For whatever reason, enemies' StartingBar is calculated before their
Spd stat is loaded, that means that it's always assumed that they have
0 Spd for this calculation.
Also, StartingBar changes if you get a Struck first/Back attack
See section 10. for more info.
--------------
3.2 Dead Time
--------------
The "Dead Time" timer is a variable with the initial value of 200
that counts down every 4th tick.
This timer only counts down if there is nothing happening, so it will only
decrease when no one attacks, just like the ATB bar could only fill when
nothing else is happening.
After the timer reaches 0(after 13.3~ seconds), the following things will
be checked in that order:
Will Gilgamesh appear?
Will Angelo Recover be used?
Will Angelo Reverse be used?
Will Angelo Search be used?
If you don't have one of these things, its check will be skipped. For more
information on the individual skills, see the GF and Rinoa's Limit Break
sections.
-------------------
3.3 Global Counter
-------------------
Unlike the Dead Time timer, the Global Counter increases every tick by one,
even if you have ATB set to Wait and are in a sub-menu.
This counter is only used for Angelo Search, see section 9.6.3 for more
details.
Notes:
Boost equals 100 if you don't have the "Boost" ability or you didn't try
to boost the summon.
SummonMagBonus are the SumnMag+x% abilities, stacked additively
(all four means SummonMagBonus = 100).
LevelMod, Power and PowerMod are static values different for every GF.
Note: Eternal Breath's and ChocoBocle's damage cap is 60,000
Eternal Breath and Mega Flare also ignore enemy Spr
==============
5.1 Summoning
==============
The relevant variable for the summoning duration is Compability.
However, the value you see in the GF menu is a converted value, to get the
real value (where ShownCompability is what you see in the menu):
Compability = 6000 - 5 * ShownCompability
How long it takes to summon the GF is calculated with
The level of all non-junctionable GFs (except for Boko) is the average level
of all junctionable GFs in your possession.
-----------
5.3.1 Odin
-----------
At the start of non-boss battle, there is a 33/256 or 12.9% chance that Odin
will appear and use Zantetsuken to kill every enemy not immune to it.
--------------
5.3.2 Phoenix
--------------
Phoenix appears if you use the Phoenix Pinion item and the damage he does is
calculated via the normal GF damage formula. Additionally, he revives every
KO'd party member with 12.5% of their Max HP
If you have already summoned Phoenix at least once and if the whole party is
KO'd, there is a 65/256 or 25.4% chance that Phoenix is summoned.
----------------
5.3.3 Gilgamesh
----------------
At the start of battle, there is a 9/256 or 3.5% chance that Gilgamesh will
appear.
After Dead Time timer is 0 (see Battle Timing section):
If (12 >= [0..255]) Gilgamesh will appear (13/256 or 5.1%)
else perform Angelo checks (see Rinoa's Limit Break section)
If Gilgamesh will appear, either at the start of through the Dead Time check:
Gilgamesh will use..
Excaliber with a probability of 65/256 or 25.4%
Excalipoor with a probability of 64/256 or 25%
Masamune with a probability of 64/256 or 25%
Zantetsuken with a probability of 63/256 or 24.6%
Excaliber and Masamune use the normal GF damage formula to inflict damage.
Excalipoor ignores Spr of the target and does 1 damage.
Zantetsuken kills every enemy not immune to it.
Note: Gilgamesh can only be summoned once per battle.
-------------
5.3.4 Moomba
-------------
Moomba can only be summoned with the item Friendship got through the
Pocket Station-exclusive mini game Chocobo World
Damage = TargetHP - 1
Note: The damage cap of 9999 still applies.
----------
5.3.5 Boko
----------
Boko can only be summoned with the item Gysahl Greens got through the
Pocket Station-exclusive mini game Chocobo World.
All of his attacks use the GF damage formula and to get better attacks, you
have to collect power ups in the Chocobo World.
Unlike other non-junctionable GFs, the level he uses for damage calculation
is his level in the Chocobo World.
The damage calculated with the base formulas is further adjusted through
various other things, except when stated otherwise.
The order of modifications is in the order presented, the terms in parentheses
are what type of damage that step refers to.
---------------------------------
6.1 Random Damage Modifier (all)
---------------------------------
Damage = Damage * 1.5 //Squall's and Seifer's Trigger
Damage = Damage * 2 //Critical hit
Damage = Damage * 1.5 //Berserk
Damage = Damage * 2 //Target is attacked from behind
Damage = Damage / 2 //Target has Protect status effect
Damage = Damage / 2 //Target is Undead or has Zombie status effect
Damage = 0 //Target has Invincibility or Defend status
Notes:
ElemAtt can be between 0(0%) and 100(100%).
ElemDef starts at 800 (0%), 900 is 100% defense and 1000 is 100% absorption.
If an enemy is shown to be weak against an element, his ElemDef is below 800.
A value higher than 800 means the enemy resists/absorbs the element.
If Damage becomes negative (due to high ElemDef), the target will be healed
by that amount.
Note: Skip this if the spell or GF is non-elemental
Damage = Damage * (900 - ElemDef) / 100
Notes:
ElemDef starts at 800 (0%), 900 is 100% defense and 1000 is 100% absorption.
If an enemy is shown to be weak against an element, his ElemDef is below 800.
A value higher than 800 means the enemy resists/absorbs the element.
If Damage becomes negative (due to high ElemDef), the target will be healed
by that amount.
===============================================================================
7. Other Battle Skills
===============================================================================
Command Abilities make up your command menu in battle, apart from GF and
Magic, there are several other skills and the ones with special mechanics
will be covered here.
DrawAmount is how much you will draw of that spell.
If DrawAmount < 1, Draw command fails
If DrawAmount > 9, DrawAmount = 9
Draw(Cast):
Step 1:
If (DrawAmount < 1) cast fails
else:
Step 2:
Use section 4.2 to calculate the damage
Step 3:
Damage = Damage * ([0..255] + 10) / 150
-----------
7.1.2 Item
-----------
Flare Stone, Holy Stone, Meteor Stone, Ultima Stone, Protect Stone,
Shell Stone, Aura Stone and Death Stone work as if the user is casting
the respective spell.
Hero-trial and Holy War-trial work, despite their descriptions, 100% of the
time.
-----------
7.1.3 Card
-----------
The actual formula is a bit complicated:
(Note: you must round down after the first step)
Just keep in mind that an enemy with full HP still has a chance of 1/128 to
be carded.
If the Card command succeeds, there is a 17/256 or 6.6% chance that you'll
receive the rare card instead.
-------------
7.1.4 Defend
-------------
The user is inflicted with the Defend status, see section 8.3 for more info.
---------------
7.1.5 Darkside
---------------
This command is treated as if the character was using the "Attack" command,
only that the damage will be multiplied by three and the user will take damage
equal to 1/10th of his MaxHP.
-------------
7.1.6 Absorb
-------------
This command works almost the same as the spell Drain.
While Drain has a Power of 26, Absorb's Power is 14.
However, Absorb is not affected by Shell.
---------------
7.1.7 Kamikaze
---------------
Kamikaze is an auto-hit physical attack that removes the user from battle.
The game treats the character as dead, so any GF junctioned will still
receive AP and EXP.
Damage = MaxHP * 6
Note: The damage cap is set to 60,000 and this attack can critical.
MugDifficulty is different for every enemy, but will be 128 or higher most
of the time (giving you a base Mug% of 50% or higher, which is further
increased by your Spd)
If you successfully mug an enemy, the game decides which item slot's item
you get:
rnd = [0..255]
if (rnd < 178) Slot = 0
else if (rnd < 229) Slot = 1
else if (rnd < 244) Slot = 2
else Slot = 3
Since you can never get values higher than 255 from the RNG, it's impossible
to get Slot = 3 with Rare Item.
Note: You can only steal once from an enemy and if you do so successfully,
the enemy will not drop any items.
--------------
7.2.2 Counter
--------------
Character uses his normal attack if he/she is attacked by a physical attack,
though it doesn't matter if any damage is received or if it even hits.
------------
7.2.3 Cover
------------
If a party member is attacked by a physical attack that would otherwise kill
him/her, the chracter with this ability will step in front that party member,
taking the damage and halving it.
Note: This will only work if the character with Cover is adjascent to the one
being attacked and if the attack is not multi target.
This section covers the rate of status infliction as well as every status in
the game.
Some status effects wear over time (Sleep, Haste etc), but how long it will
takes depends on what you have set as Battle Speed:
Duration = BaseDuration * BattleSpeed
where BaseDuration is different for each status effect and Duration is the
actual duration. It decreases by SpeedMod ever 4th tick, so divide by 15
to get the duration in seconds.
I will provide the time value of the BaseDuration in this section.
======================
8.1 Status Infliction
======================
The calculation of the infliction rate of negative status effects depends on
whether you use a physical attack or the status magic(or other magical attacks
that inflict statuses) itself.
Status Infliction for physical attacks:
If (StatusDefense >= 200) Target doesn't get the status
Positive status effects generally provide you with some advantage.
All positive status effects except for Invincibility can be negated with
Dispel.
-----
Regen
-----
BaseDuration: 320
Time: 21.3~ seconds
Heals 5% MaxHP every (80 * BattleSpeed) ticks. In other words, it will heal
the target 16 times per cast and will recover 80% MaxHP total.
-------
Protect
-------
BaseDuration: 480
Time: 32 seconds
Halves physical damage.
-----
Shell
-----
BaseDuration: 480
Time: 32 seconds
Halves magical damage but also curative spells.
-------
Reflect
-------
BaseDuration: 480
Time: 32 seconds
Reflects single target magical spells back to the caster.
----
Aura
----
BaseDuration: 100
Time: 6.6~ seconds
Increases Limit Break rate (see section 9.1)
------
Double
------
Permanent (until end of battle)
Allows the target to cast a spell twice in a row.
------
Triple
------
Permanent (until end of battle)
Allows the target to cast a spell three times in a row.
-----
Haste
-----
BaseDuration: 480
Time: 32 seconds
Increases the rate with which the target's ATB gauge fills (see section 3.1),
but also shortens the time positive effects last.
-----
Float
-----
BaseDuration: 176
Time: 11.73~ seconds
Makes the target immune against Earth-elemental attacks.
------
Defend
------
Effect lasts until the target selects another action
Physical damage is nullified, magical damage is halved.
Also, if the user is attacked by a physical attack that could inflict a
negative status, the status won't ever be inflicted.
-------------
Invincibility
-------------
BaseDuration: 360
Time: 24 seconds
Makes the target immune against most types of damage and status effects,
both negative and positive and nullifies negative status effects.
However, curative spells and items still work.
Also, the target still takes damage from Poison and the "Darkside" command.
Negative status effect generally put you at a disadvantage but some are also
useful if you want to increase your Crisis Level (see section 9.1)
----
Slow
----
BaseDuration: 100
Time: 6.6~ seconds
Decreases the rate with which the target's ATB gauge fills (see section 3.1),
but also lengthens the time positive effects last.
----
Stop
----
BaseDuration: 200
Time: 13.3~ seconds
Nullifies Slow/Haste and stops every other status effect timer.
Also, the target's ATB bar stops filling.
Note: Target can't avoid attacks while Stopped.
------
Poison
------
Permanent
The target takes damage after every action.
Damage = [5..7] * MaxHP / 100
-----
Blind
-----
Permanent
The target's Hit% decreases by 75%.
Note that characters with a base Hit% of 255 skip the Hit Determination and
therefore are not affected by Blind.
-------
Confuse
-------
Permanent (until end of battle)
This status is nullified if the character receives physical damage.
Confuse causes the character to select a random command and uses it on either
allies or enemies.
Step 1:
Randomly select one of the four commands a character has.
If selected command is neither "Attack", "Mug", "Magic" nor "Item", the
selection defaults to "Attack"/"Mug"
Step 2:
If either "Magic" or "Item" are selected, the game proceeds to select a
spell/item from the list of available spells/items randomly.
Step 3:
The game decides which target group(allies or enemies) should be selected
with both groups having a 50% chance.
Note: If the selected action only has one target group (e.g. "Hero" item),
that group will always be selected.
Step 4:
A random target from the target group is selected if the attack is
single-target.
-----
Sleep
-----
BaseDuration: 200
Time: 13.3~ seconds
The target's ATB gauge stops filling, and all other status effect timers
are stopped.
If the target is attacked by a physical attack, whether it hits or not,
this status is nullified.
Note: The target's Evasion is not reduced.
-------
Silence
-------
Permanent
Target can't use the "Magic", "GF" and "Draw" commands.
-------
Petrify
-------
Permanent
Target is marked as dead.
------------
Slow Petrify
------------
BaseDuration: 200
Time: 13.3~ seconds
After the timer for this status effect reaches 0, the target is inflicted with
the Petrify status.
-----
Death
-----
Target is marked as dead, HP are reduced to 0.
----
Doom
----
BaseDuration: 240
Time: 16 seconds
After the timer for this status effect reaches 0, the the target is marked as
dead and will have its HP reduced to 0.
--------------
Drain / Absorb
--------------
Not really a status effect. Drain/Absorb allows the caster to magically damage
an enemy and receive the damage dealt as HP.
If the target is immune to Drain, it will still take damage, but the caster
won't heal.
-------
Berserk
-------
Permanent (until end of battle)
The target will randomly use one of the four "Berserk-attacks" it has.
Most enemies and all allies have four of the same attack, so you won't
notice a difference.
The enemy/ally under this effect will randomly target someone from the
opposite target group.
Note: Damage dealt is increased by 50%.
------
Zombie
------
Permanent
Healing for the target under this effect will be reversed. I.e., Potions and
curative spells deal damage.
Drain/Absorb will also deal damage to the caster unless the target of the spell
is considered Undead or under the Zombie status itself.
The target will also gain an immunity to Death and Doom and has its ElemDef
for the Holy element set to 700, which means double damage.
Additionally, all physical damage the target receives is halved.
Note: Undead enemies are considered to be always under the Zombie effect, even
if it's not shown, so all of the above applies to them.
Also, targets under the Zombie status do not deal more damage.
This section covers everything related to everyone's Limits.
It should be noted that a Limit Break move will never miss and is not
affected by whatever you have junctioned to ElemAtt.
A higher Crisis Level means that the character's Limit Break is, in some
way, enhanced. You need at least Crisis Level 1 to be able to use a
Limit Break.
-You need 11.2% HP with Aura to reach Crisis Level 4 100% of the time.
-51.84% HP to reach it 50% of the time
-Without Aura and with 10% HP, there's a 3% chance to get Crisis Level 4.
===========
9.2 Squall
===========
The Crisis Level affects how many Renzokuken hits Squall performs and
increases the chance to perform a Finisher.
There is a 50% probability that the amount of Renzokuken hits is increased by
one, making the maximum possible amount 8.
If the enemy has a special Renzokuken sequence, like Bahamut or Ultima Weapon,
that amount of hits will always be performed instead.
After Squall does his Renzokuken sequence, there's a chance he'll
perform a Finisher:
Finisher% = (CL * 60 + 1) / 256 * 100
So, there's a (CrisisLevel * ~23.4%) chance that a Finisher is performed.
Which Finisher is performed depends on which Squall has:
If he only has Rough Divide
100% Rough Divide
If he has Rough Divide and Fated Circle
25% Rough Divide
75% Fated Circle
If he has Rough Divide, Fated Circle and Blasting Zone
25% Rough Divide
25% Fated Circle
50% Blasting Zone
If he has Rough Divide, Fated Circle, Blasting Zone and Lion Heart
25% Rough Divide
25% Fated Circle
25% Blasting Zone
25% Lion Heart
All of Squall's Finishers are considered physical and can critical depending
on his Luck.
You can use Trigger with the normal Renzokuken hits, they can't critical
themselves.
His attacks and their Power values:
Attack | Power | Notes
-------------|-------|-----------------------------------------
Renzokuken | 22 | his normal Renzokuken hit, single target
Rough Divide | 48 | one target
Fated Circle | 40 | all targets
Blasing Zone | 44 | all targets
Lion Heart | 100 | one target, 17 hits
=========
9.3 Zell
=========
The time Zell gets to input button combinations in his Duel Limit Break
depending on what Crisis Level he has.
CL | Duel Time
---|----------
1 | 4.66 s
2 | 6.66 s
3 | 9.33 s
4 | 12 s
His attacks and their Power values:
Attack | Power | Notes
----------------|-------|---------------
Punch Rush | 16 |
Booya | 18 |
Heel Drop | 20 |
Mach Kick | 24 |
Dolphin Blow | 28 |
Meteor Strike | - | Gravity damage
----------------|-------|---------------
Burning Rave | 48 | all targets
Meteor Barret | 52 | one target
Different Beat | 72 | one target
My Final Heaven | 50 | all targets
Note: All attacks are considered physical.
Meteor Strike's damage is TargetHP / 4, however, it's still considered
a physical attack, i.e. it's halved by Protect but can also critical.
===========
9.4 Irvine
===========
Like Zell's Limit, Irvine's Shoot's time is extended depending on what Crisis
Level he has.
CL | Shoot Time
---|-----------
1 | 8 s
2 | 12 s
3 | 20 s
4 | 26.6 s
Additionally, all shots he makes have increased Critical%:
Critical% = (Luck + 26) / 256 * 100
His attacks and their Power values:
Attack | Power | Notes
----------------|-------|------------------------------
Normal Shot | 16 |
Scatter Shot | 14 | hits all
Dark Shot | 14 | can inflict negative statuses
Flame Shot | 40 | hits all, fire elemental
Canister Shot | 60 |
Quick Shot | 7 |
Armor Shot | 80 | ignores Vit
Hyper Shot | 120 |
Note: All of his attacks are physical.
Dark Shot can inflict Poison, Blind, Silence, Sleep or Slow.
The game assumes that Irvine has 100% for each status effect and it
uses the physical infliction formula (section 8.1)
============
9.5 Quistis
============
Quistis' Blue Magic powers up depending on what her Crisis Level is.
All her skills which inflict normal damage and their Power values:
LV? Death (all)
CL1: Casts Death on enemies whose level is a multiple of 4
CL2: Casts Death on enemies whose level is a multiple of 3
CL3: Casts Death on enemies whose level is a multiple of 2
CL4: Casts Death on enemies whose level is a multiple of 1
Degenerator (one)
Kills any enemy not immune to it.
Micro Missle (one), gravity damage
CL1: 50% HP
CL2: 75% HP
CL3: 87.5% HP
CL4: 93.75% HP
Rinoa has four Limit Breaks which can be used by selecting Angelo>Combine.
However, what attack is performed depends on your Crisis Level.
CL | Attack | Power | Notes
---|-----------------|-------|---------------------------------------------
1 | Angelo Cannon | 72 | one target, physical damage
2 | Angelo Strike | 120 | one target, physical damage
3 | Invincible Moon | - | Invincibility status on all allies
4 | Wishing Star | 130 | hits 8 times, random targets, magical damage
If you get a certain CL but the attack in this slot is not learned, it
selects the attack in the next highest slot (=of a lower CL).
--------------------------
9.6.2 Other Angelo Skills
--------------------------
First, if Rinoa is hit by the enemy, there's a chance that Angelo Rush or
Angelo Recover will activate:
if (16 >= [0..255]) Angelo Recover is used on Rinoa (6.6%)
else if (16 >= [0..255]) Angelo Rush is used (6.2%)
If Angelo Recover is not learned, it's skipped.
Here's what each of her skills do:
Skill | Power | Notes
---------------|-------|--------------------------------------------------
Angelo Rush | 32 | handled as if a normal physical attack from Rinoa
Angelo Recover | - | heals 62.5% HP
Angelo Reverse | - | Restores a KO'd party member with 12.5% HP
Angelo Search | - | Searches items
As mentioned in the Battle Timing section, after the Dead Time timer
reaches 0 (after 13.3~ seconds), several checks are performed:
if (12 >= [0..255]) Gilgamesh is summoned (5.1%)
else if (8 >= [0..255] Angelo Recover is used (3.3%)
else if (2 >= [0..255] Angelo Reverse is used (1%)
else if (8 >= [0..255] Angelo Search is used (3.2%)
If you don't have one of the skills, its check is skipped.
Angelo Recover and Angelo Reverse can only be checked/used if their conditions
are met:
Angelo Recover will only be checked if there's an ally with less than 25%
of their MaxHP
Angelo Reverse will only be checked if there's a KO'd ally.
If the game determined that Angelo Search will be used, it must first be
decided what algorithm should be used to calculate the item gotten from the
search. That's where the Global Counter comes into play.
rnd = (value of Global Counter) MOD 256
(You could see rnd as "[0..255]" which doesn't use the RNG.)
if (rnd < 128) Algorithm_1
else if (rnd < 160) Algorithm_2
else if (rnd < 176) Algorithm_3
else if (rnd < 192) Algorithm_4
else if (rnd < 200) Algorithm_5
else Algorithm_6
I should probably mention that I changed the formulas a bit so they're easier
to read.
If the 0 from [0..255] would ever be selected, it bypasses the
"if ItemID == 0, set ItemID to x", so I included a note.
Algorithm_1:
ItemID = [0..255] MOD 8 + 1
Algorithm_2:
ItemID = [0..255] MOD 98
if ItemID == 0, set ItemID to 98
ItemID = ItemID + 101
Note: There would be a 1/256 chance that ItemID == 101
Algorithm_3:
ItemID = [0..255] MOD 23
if ItemID == 0, set ItemID to 23
ItemID = ItemID + 101
Note: There would be a 1/256 chance that ItemID == 101
Algorithm_4:
ItemID = [0..255] MOD 34
if ItemID == 0, set ItemID to 34
ItemID = ItemID + 66
Note: There would be a 1/256 chance that ItemID == 66
Algorithm_5:
ItemID = [0..255] MOD 32 + 33
Algorithm_6:
ItemID = [0..255] MOD 7 + 33
Note: There would be a 1/256 chance that ItemID == 33
ItemID would be the ID of the item you get.
Now, let me tell you why bothering with these algorithms is a waste of time.
As I mentioned in section 2, the RNG is a simple, static list of integers.
This means, for example, that after "5", there's always a "255".
For Angelo Search to occur, a number less than 9, so 0-8, is needed. The
problem is that the game would always select the next number to be the input
for "[0..255]", so it's predictable and not random at all.
In other words, you always get the same thing from the same algorithm.
Here's what values follow the ones that trigger Angelo Search:
"Random" Value | Value after that | Index of the value
---------------|------------------|-------------------
6 | 240 | 1
1 | 193 | 7
2 | 23 | 47
8 | 86 | 129
0 | 59 | 163
4 | 224 | 184
3 | 152 | 227
7 | 244 | 230
5 | 255 | 250
The only somewhat random thing would be the selection of the algorithm.
With that, it's possible to compile a list of items that can be gotten:
Input value | Algorithm_1 | Algorithm_2 | Algorithm_3
------------|-----------------|-----------------|-----------------
240 | Potion | North Wind | Hero
193 | Potion+ | Occult Fan II | Hero-Trial
23 | Mega Phoenix | Sleep Powder | Elixir
86 | Phoenix Down | Combat King 004 | Holy Stone
59 | Hi-Potion+ | Cactus Thorn | Shell Stone
224 | Potion | Curse Spike | Holy Stone
152 | Potion | Dragon Fin | Protect Stone
244 | X-Potion | Steel Orb | Protect Stone
255 | Mega Phoenix | Cactus Thorn | Antidote
------------|-----------------|-----------------|-----------------
Input value | Algorithm_4 | Algorithm_5 | Algorithm_6
------------|-----------------|-----------------|-----------------
240 | Energy Crystal | Aegis Amulet | Cottage
193 | Jet Engine | Pet House | G-Hi-Potion
23 | Jet Engine | GF Scroll | Cottage
86 | Force Armlet | Magic Scroll | Cottage
59 | Moon Curtain | Healing Ring | G-Potion
224 | Circlet | Tent | Tent
152 | Adamantine | Draw Scroll | G-Mega-Potion
244 | Gold Armor | Status Guard | G-Returner
255 | Rune Armlet | Hungry Cookpot | G-Potion
For more info on this and how to exploit the RNG in this case, refer to the
Angelo Search Limit Break FAQ by DarkLordOfTheSith.
============
9.7 Selphie
============
Selphie's Tombola has access to several spell sets from which a random spell
is selected. The higher Selphie's level and Crisis Level is, the better spell
sets she can select from.
The first step is to calculate her "TombolaLevel":
After the set is selected, the game randomly picks one spell from the
set, which is what Selphie will be able to cast.
The numbers next to the spells are the maximum amount of casts. The actual
amount of casts is simply
Casts = [1..MaxAmount]
If you select "do over", the whole process is repeated from the beginning,
with your old CL.
There are some unique spells in the tombola:
Spell | Effect
----------|----------------------------------------
Full-cure | Heals all allies fully
Wall | Protect + Shell for all allies
Rapture | All enemies not immune to it are killed
The End | All enemies except Undead are killed
All of the temporary characters only have their Limit attack. Unlike
the permanent characters, their Limits are not influenced by the Crisis Level.
Limit Break | Attack | Power | Notes, targets
------------|----------------|-------|----------------------
Fire Cross | No Mercy | 80 | physical, all
Sorcery | Ice Strike | 120 | magical, one
Limit | Desperado | 140 | physical, all
Limit | Blood Pain | 25 | physical, 6 hits, one
Limit | Massive Anchor | 150 | physical, one
It's worth noting that Seifer's normal attack works like Squall's; he can't
critical based on Luck (his Limit can) and instead uses his Trigger to
increase damage.
Also, as seen in the Crisis Level section, it's easier for him to be able
to use his Limit.
Every 51 steps you take(which is just one step visually), the game performs
a check that decides whether a battle starts or not.
There is a variable which increases by 3 each time the check is
performed(walking diagonally and down/uphill increases it by 4).
If that variable + LocationMod is greater than [0..255], a battle is started.
LocationMod
12 party is in a forest
128 party is on Island closest to Hell/Heaven
2 anywhere else
With the party ability "Enc-Half", the check is performed every 198 steps,
meaning that the Encounter rate is ~1/4 instead of just 1/2.
If the ability "Enc-None" is equipped, the check is skipped completely.
-------------------------------
10.2 Back Attack, Struck First
-------------------------------
To determine whether you get an advantage/disadvantage over the enemy:
rnd = [0..255] + EncounterMod
if (rnd < 20) "Back attack!"
else if (rnd < 236) no change
else "Struck first!"
Note: EncounterMod can be either 0 or 20, depending on the enemies.
Probability of..
"Back attack!" 20/256 or 0/256 7.8% or 0%
no change 216/256 84.3%
"Struck first!" 20/256 or 40/256 7.8% or 15.6%
Note: Equipping the "Alert" party ability reduces "rnd" by 20, essentially
increasing the odds of "Back attack!" and decreasing odds of
"Struck first!"
Back attack:
All allies will start with 100% of the ATB bar filled.
Enemies start with 0% of the ATB bar filled.
Struck first:
All allies will start with 0% of the ATB bar filled.
Enemies start with 100% of the ATB bar filled.
No change:
All enemies' and allies' starting ATB bar calculated normally, see section 3.1
for more details.
After this, the game checks if Odin/Gilgamesh should be summoned (section 5.3)
Pressing and holding the L2 and R2 buttons causes all party members to run
away. Every second or so, the game will check if [0..255] is less than
the "running difficulty" (provided you're holidng L2 and R2).
If that is the case, you'll run away.
The running difficulty depends on each encounter, usually being 255 or 128.
Bosses always have a running difficulty of 0, meaning you can't ever escape.
By running away, you don't get any AP and only partial EXP.
E.g. Damaging the enemy for 10% of it's max HP would mean you'd get 10% of the
EXP the enemy would've normally dropped.
----------------------
10.4 After the battle
----------------------
After successfully defeating all enemies, the game first checks if their card,
if they have one, is dropped. the chance for that is 9/256 or 3.5%
The calculation for item drops is similar to mugging and is also affected by
the "Rare item" party ability. In short, the probabilites are:
Check section 7.2.1 for more details.
Instead of a MuggingDifficulty, there's DropDifficulty which is not
necessarily the same value. A value of 255 would mean that an item is always
dropped.
===============================================================================
Revision History
===============================================================================
04/13/10 - Corrected the GF damage formula and Curse duration.
- CzarDragon for compiling various documents which helped me to figure out some
things faster
- Everyone at the FF8 Message Boards, especially Vilurum and phiefer3