The current URL is datacrystal.tcrf.net.
EarthBound Beginnings/Battle Engine: Difference between revisions
(→Hit/miss Calculation: Add blindness) |
(→Combat data: Add blinded status) |
||
Line 83: | Line 83: | ||
* 10-17: Unknown | * 10-17: Unknown | ||
* 18-19: Pointer to name | * 18-19: Pointer to name | ||
* 1A-1F: | * 1A-1F: Mostly unknown | ||
* 1E: | |||
** Bit 7: Blinded | |||
===Enemies=== | ===Enemies=== | ||
Stored at RAM 0x0680-0x06FF | Stored at RAM 0x0680-0x06FF | ||
* 00: Unknown | * 00: Unknown | ||
* 01: Status condition | * 01: Status condition | ||
** Bit 0: Cold | ** Bit 0: Cold | ||
Line 112: | Line 114: | ||
* 1A-1B: Experience | * 1A-1B: Experience | ||
* 1C-1D: Money | * 1C-1D: Money | ||
* 1E: | * 1E: | ||
** Bit 7: Blinded | |||
* 1F: Graphic tileset | * 1F: Graphic tileset |
Revision as of 14:45, 22 April 2025
Fight
Hit/miss Calculation
The defender dodges if:
(256 + AttackerFight - DefenderFight) / 2 < (RANDOM 0-255) + 102
Otherwise "[NAME] dodged swiftly." If the attacker and defender have equal Fight, the chance of hitting is approximately 90%.
If the attacker is blinded there is an additional 50% chance to miss the attack.
Damage Calculation
The following method is used to determine attack damage:
1. Calculate base damage (round BaseDamage down):
BaseDamage (normal) = [(AttackerOffense * 3) - DefenderDefense] / 4
BaseDamage (SMAAASH!!) = AttackerOffense
2. Get random multiplier from this table. There is a 50% chance of RandMult being negative.
Odds | 7.8% | 7.8% | 7.8% | 7.8% | 7.8% | 7.0% | 7.0% | 6.3% | 6.3% | 5.5% | 4.7% | 4.7% | 3.9% | 3.1% | 3.1% | 2.3% | 2.3% | 1.6% | 1.6% | 1.6% | 0.8% | 0.8% | 0.8% | 0.8% |
RandMult | 0 | ±1 | ±2 | ±3 | ±4 | ±5 | ±6 | ±7 | ±8 | ±9 | ±10 | ±11 | ±13 | ±14 | ±15 | ±16 | ±17 | ±18 | ±19 | ±20 | ±21 | ±22 | ±23 | ±24 |
3. Calculate final damage (round FinalDamage down):
FinalDamage = BaseDamage * (1 ± 0.1 * RandMult)
This means that any attack can hit for 76% to 124% of its base damage.
Odds of getting a SMAAAASH!!
The chance of a SMAAAASH!! is exactly the same as the chance of missing an attack: The attacker gets a SMAAAASH!! if:
(256 + AttackerFight - DefenderFight) / 2 > (RANDOM 0-255) + 102
If the attacker and defender have equal Fight, the chance of both hitting and getting a SMAAAASH!! is approximately 9%.
PSI
PSI attacks will always hit if the defender is not PSI-protected.
Damage
PSI damage calculation currently unknown.
Healing
PSI healing calculation currently unknown.
Run away
Every non-fainted ally has a 50% chance of successfully running away, and if any one ally escapes the entire party will escape. So, the chance of successfully running away is:
1 - 0.5Number of non-fainted allies
Combat data
Allies
Stored at RAM 0x0600-0x067F
- 00: Ally in party, FF if ally is in party
- 01: Status condition
- Bit 0: Cold
- Bit 1: Poisoned
- Bit 2: Puzzled
- Bit 3: Confused
- Bit 4: Sleeping
- Bit 5: Paralyzed
- Bit 6: Stone
- Bit 7: Unconscious (can be applied even when HP isn't at 0)
- 02: Unknown
- 03-04: HP
- 05-06: PP
- 07-08: Offense
- 09-0A: Defense
- 0B: Fight
- 0C: Speed
- 0D: Wisdom
- 0E: Strength
- 0F: Force
- 10-17: Unknown
- 18-19: Pointer to name
- 1A-1F: Mostly unknown
- 1E:
- Bit 7: Blinded
Enemies
Stored at RAM 0x0680-0x06FF
- 00: Unknown
- 01: Status condition
- Bit 0: Cold
- Bit 1: Poisoned
- Bit 2: Puzzled
- Bit 3: Confused
- Bit 4: Sleeping
- Bit 5: Paralyzed
- Bit 6: Stone
- Bit 7: Unconscious (can be applied even when HP isn't at 0)
- 02: Unknown
- 03-04: HP
- 05-06: PP
- 07-08: Offense
- 09-0A: Defense
- 0B: Fight
- 0C: Speed
- 0D: Wisdom
- 0E: Strength
- 0F: Force
- 10-17: Attacks
- 18-19: Pointer to enemy data
- 1A-1B: Experience
- 1C-1D: Money
- 1E:
- Bit 7: Blinded
- 1F: Graphic tileset