The current URL is datacrystal.tcrf.net.
Mother 3/PSI data
PSI data table | |
Game | MOTHER 3 |
Start Address | 0xE1908 |
End Address | 0xE5107 |
# of Entries | 256 (0x100), only 100 used |
Entry Length | 56 bytes (0x38) |
Total Length | 36864 bytes (0x3800) |
Back to the ROM map |
Overview
The PSI data table contains parameters for each PSI move in the game. The ordering is consistent with the game's internal PSI names listing.
Format
Each entry in the table uses 144 bytes.
Field listing
- 00-00 (01) = [ A ] PSI number
- 01-03 (03) = Unclassified data
- 04-07 (04) = [ B ] Type
- 08-0B (04) = Unclassified data
- 0C-0D (02) = [ C ] PP cost
- 0E-13 (06) = Unclassified data
- 14-17 (04) = [ D ] Damage type
- 18-19 (02) = [ E ] Target
- 1A-1D (04) = Unclassified data
- 1E-1F (02) = [ F ] Low amount
- 20-21 (02) = [ G ] High amount
- 22-22 (01) = [ H ] Affliction value
- 23-23 (01) = [ I ] Affliction chance
- 24-2E (0B) = Unclassified data
- 2F-2F (01) = [ J ] Animation 1
- 30-30 (01) = [ K ] Animation 2
- 31-37 (07) = Unclassified data
Table view
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F +-------------------------------------------------------------------------------- 00 | [ A] [ ? ] [ B ] [ ? ] [ C ] [ ? -> 10 | <- ? ] [ D ] [ E ] [ ? ] [ F ] 20 | [ G ] [ H] [ I] [ ? ] [ J] 30 | [ K] [ ? ]
Type
The type value determines in which category it is placed:
00: Offense |
01: Recover |
02: Assist |
Damage type
There are four damage types, and they correspond to weakness values 0x0F through 0x12 in the enemy weakness table:
00: PK Love, Starstorm, Ground |
01: PK Fire |
02: PK Freeze |
03: PK Thunder |
Target
The target value seems to affect how the ability is targeted. Known values are:
01: One party member |
03: All party members |
04: Healing Ω |
0D: One enemy |
0E: All enemies |
0F: One strike |
10: Two strikes |
11: Three strikes |
12: Four strikes |
13: Multiple strikes (PK Ground) |
Low/high amounts
These affect the bounds of damage or recovery for abilities based on such.
Affliction
PSI may afflict a status condition on its target. The affliction value selects an affliction from an enemy's list of weaknesses. Since weakness 0 corresponds to Poison instead of null, you actually need to add 1 here. For instance, PK Freeze has an affliction value of 10, so that it may induce solidification (which is weakness 9).
There is also an affliction chance. Whenever using a PSI spell, the game uses the following formula to determine whether or not an ailment is afflicted:
Let W = enemy weakness value against this affliction (W := enemy_weakness_table[affliction_value - 1]) Let C = affliction chance Let R = random number from 0 to 99, inclusive If R < (C * W / 100): status afflicted Else: status not afflicted
For example, say you're using PK Freeze against a Monkalrus. The Monkalrus has a solidification weakness value of 30. PK Freeze's affliction chance is 8. So,
If R < (8 * 30 / 100) or, if R < 2.4 or, if R < 2 (the game does not use fractions here; the quotient is always rounded down)
That is, PK Freeze has a 2% chance of solidifying a Monkalrus.
Animations
These affect which visual animations play. It is not fully known how these correspond to the battle animations entry table.