The current URL is datacrystal.tcrf.net.
EarthBound/Enemy Configuration Table
Enemy Configuration Table | |
Game | EarthBound |
Start Address | 0x159789 |
End Address | 0x15EC5A |
# of Entries | 231 |
Entry Length | 94 bytes (0x5E) |
Total Length | 21714 bytes (0x54D2) |
Back to the ROM map |
The Enemy Configuration Table stores most of the data for enemies which is used inside battles. The first enemy is named "null" and has an index of 0. Information about where enemies spawn is in the enemy placement data and spans a few tables.
Format
"The" flag
- Length: 1 byte
- Offset within entry: 0x00
- Range of values: 0-1
If the "The" flag is 1, then the word "the" is put in front of the enemy's name whenever it is mentioned in combat.
Name
- Length: 25 bytes (0x18)
- Offset within entry: 0x01-0x19
- Range of values: String of plain EarthBound text
Name of the enemy in plain EarthBound text.
Gender
- Length: 1 byte
- Offset within entry: 0x1A
- Range of values: 1-3
The gender of the enemy indicates which pronoun should be used when referring to it: male (1), female (2), or neutral (3).
Type
- Length: 1 byte
- Offset within entry: 0x1B
- Range of values: 0-2
The elemental type of the enemy. Enemies can be normal (1), insect (2), or metal (3). This changes the affects of certain items.
Battle sprite
- Length: 2 bytes
- Offset within entry: 0x1C-1D
- Range of values: 0x0000-0xFFFF (must be a valid battle sprite index)
The sprite to be used in battle to represent this enemy. Note that byte 0x35 determines the palette used.
Out of battle sprite
- Length: 2 bytes
- Offset within entry: 0x1E-1F
- Range of values: 0x0000-0xFFFF (must be a valid out of battle sprite index)
Run flag
- Length: 1 byte
- Offset within entry: 0x20
- Range of values: 0-1
If true (1), then the enemy will run away from the player if the player's level is greater than the enemy's level.
HP
- Length: 2 bytes
- Offset within entry: 0x21-0x22
- Range of values: 0-65535 (0x0000-0xFFFF)
The number of hit points the enemy has. That is, the amount of damage which must be dealt to the enemy before it dies (unless the enemy heals itself).
PP
- Length: 2 bytes
- Offset within entry: 0x23-0x24
- Range of values: 0-65535 (0x0000-0xFFFF)
The number of psychic points the enemy has. Psychic points are expended when using PSI. If the enemy runs out of psychic points, they cannot use any more PSI.
Experience
- Length: 4 bytes
- Offset within entry: 0x25-0x28
- Range of values: 0x00000000-0xFFFFFFFF
The amount of experience granted to the player's party upon defeating the enemy. This is spilt among however many playable characters there are in the player's party (1-4).
Money
- Length: 2 bytes
- Offset within entry: 0x29-0x2A
- Range of values: 0-65535 (0x0000-0xFFFF)
The amount of money added to the player's ATM account upon defeating the enemy.
Movement
- Length: 2 bytes
- Offset within entry: 0x2B-0x2C
- Range of values: 0-65535 (0x0000-0xFFFF)
This chooses the enemy's out of battle movement pattern. Exactly how this works is not well understood.
Start text pointer
- Length: 4 bytes (0x4)
- Offset within entry: 0x2D-0x30
- Range of values: 0x00000000-0x00FFFFFF, but it must point to valid text; may or may not require a pointer to the ROM as opposed to RAM
Pointer to the text shown when you start a battle with this enemy.
Death text pointer
- Length: 4 bytes (0x4)
- Offset within entry: 0x31-0x34
- Range of values: 0x00000000-0x00FFFFFF, but it must point to valid text; may or may not require a pointer to the ROM as opposed to RAM
Pointer to the text shown when you defeat this enemy.
Battle sprite palette
- Length: 1 byte
- Offset within entry: 0x35
- Range of values: 0-255 (0x00-0xFF0), but above 31 (0x1F) is garbage
The palette used for the battle sprite. Only values 0-31 (0x00-0x1F) are meant to be used; higher values go into other non-palette data, but still work and therefore may be useful.
Level
- Length: 1 byte
- Offset within entry: 0x36
- Range of values: 0-255 (0x00-0xFF)
The level is used by the run flag. It may have other unknown effects.
Music
- Length: 1 byte
- Offset within entry: 0x37
- Range of values: 0-255 (0x00-0xFF)
The music played when fighting this enemy by index in the music listing.
Offense
- Length: 1 byte
- Offset within entry: 0x38
- Range of values: 0-255 (0x00-0xFF)
An enemy's offense is how strong their attacks are. An enemy with a greater offense value deals more damage.
Unknown K
- Length: 1 byte
- Offset within entry: 0x39
- Range of values: ?
Unknown K's purpose is unknown. It is definitely not a second byte for offense, although it would be reasonable for it to be related.
Defense
- Length: 1 byte
- Offset within entry: 0x3A
- Range of values: 0-255 (0x00-0xFF)
An enemy's defense is how strong their armor is. An enemy with a greater defense value takes less damage.
Unknown L
- Length: 1 byte
- Offset within entry: 0x39
- Range of values: 0-1
Unknown L's purpose is unknown. It has also been called Unknown 4. It is definitely not a second byte for defense, although it would be reasonable for it to be related. In the original game, it is 0 for all enemies except "Heavily Armed Pokey" and "Soul Consuming Flame."
Speed
- Length: 1 byte
- Offset within entry: 0x3C
- Range of values: 0-255 (0x00-0xFF)
An enemy's speed determines which order the enemy attacks. If there are multiple enemies, the one with the higher speed usually moves first.
Guts
- Length: 1 byte
- Offset within entry: 0x3D
- Range of values: 0-255 (0x00-0xFF)
An enemy's guts affects how often their attacks do critical damage against their target.( known in earthbound as "SMAAASH" )
Luck
- Length: 1 byte
- Offset within entry: 0x3E
- Range of values: 0-255 (0x00-0xFF)
An enemy's luck affects how often they are able to dodge attacks. The higher this value, the higher their chance of avoiding any non-PSI attacks.
Weakness to PSI Fire
- Length: 1 byte
- Offset within entry: 0x3F
- Range of values: 0-4
Weakness to PSI Fire is a damage PSI weakness value.
Weakness to PSI Freeze
- Length: 1 byte
- Offset within entry: 0x40
- Range of values: 0-4
Weakness to PSI Freeze is a damage PSI weakness value.
Weakness to PSI Flash
- Length: 1 byte
- Offset within entry: 0x41
- Range of values: 0-4
Weakness to PSI Flash is a status PSI weakness value.
Weakness to Paralysis
- Length: 1 byte
- Offset within entry: 0x42
- Range of values: 0-4
Weakness to Paralysis is a status PSI weakness value.
Weakness to Hypnosis/Brainshock
- Length: 1 byte
- Offset within entry: 0x43
- Range of values: 0-4
Weakness to Hypnosis/Brainshock is a status PSI weakness value.
Miss rate
- Length: 1 byte
- Offset within entry: 0x44
- Range of values: 0-255 (0x00-0xFF)?
An enemy's miss rate is its chance of missing the player when it attacks. The specifics are unknown.
Action order
- Length: 1 byte
- Offset within entry: 0x45
- Range of values: 0-3
Controls the order in which the enemy's actions are used.
Value | Action order pattern |
---|---|
00 | Random |
01 | Random, favor third |
02 | In order |
03 | Staggered order (pattern like 34343434341212121212) |
Action #1
- Length: 2 bytes
- Offset within entry: 0x46-0x47
- Range of values: 0-65535 (0x0000-0xFFFF), but it must be a valid index in the Battle Actions Table
The effect of this enemy's action #1. May be affected by #Action #1 argument.
Action #2
- Length: 2 bytes
- Offset within entry: 0x48-0x49
- Range of values: 0-65535 (0x0000-0xFFFF), but it must be a valid index in the Battle Actions Table
The effect of this enemy's action #2. May be affected by #Action #2 argument.
Action #3
- Length: 2 bytes
- Offset within entry: 0x4A-0x4B
- Range of values: 0-65535 (0x0000-0xFFFF), but it must be a valid index in the Battle Actions Table
The effect of this enemy's action #3. May be affected by #Action #3 argument.
Action #4
- Length: 2 bytes
- Offset within entry: 0x4C-0x4D
- Range of values: 0-65535 (0x0000-0xFFFF), but it must be a valid index in the Battle Actions Table
The effect of this enemy's action #4. May be affected by #Action #4 argument.
Final action
- Length: 2 bytes
- Offset within entry: 0x4E-0x4F
- Range of values: 0-65535 (0x0000-0xFFFF), but it must be a valid index in the Battle Actions Table
The effect of this enemy's final action, which is automatically performed upon the death of the enemy. May be affected by #Final action argument.
Action #1 argument
- Length: 1 bytes
- Offset within entry: 0x50
- Range of values: 0-255 (0x00-0xFF), but it must be a valid argument for #Action #1
This could be many different things depending on #Action #1.
Action #2 argument
- Length: 1 bytes
- Offset within entry: 0x51
- Range of values: 0-255 (0x00-0xFF), but it must be a valid argument for #Action #2
This could be many different things depending on #Action #2.
Action #3 argument
- Length: 1 bytes
- Offset within entry: 0x52
- Range of values: 0-255 (0x00-0xFF), but it must be a valid argument for #Action #3
This could be many different things depending on #Action #3.
Action #4 argument
- Length: 1 bytes
- Offset within entry: 0x53
- Range of values: 0-255 (0x00-0xFF), but it must be a valid argument for #Action #4
This could be many different things depending on #Action #4.
Final action argument
- Length: 1 bytes
- Offset within entry: 0x54
- Range of values: 0-255 (0x00-0xFF), but it must be a valid argument for #Final action
This could be many different things depending on #Final action.
Unknown H
- Length: 1 byte
- Offset within entry: 0x55
- Range of values: 0-3
Unknown H's purpose is unknown. It has also been called Unknown 3. Tomato believed it had some relationship with enemies calling for help or having multiple enemies on the screen.
Boss flag
- Length: 1 byte
- Offset within entry: 0x56
- Range of values: 0-1
The boss flag's effect is ?.
Item drop frequency
- Length: 1 byte
- Offset within entry: 0x57
- Range of values: 0-7
The item drop frequency affects how often the enemy's dropped item is dropped. In general, greater values mean a drop is more common. Specifically, P(drop) = <math>\frac{2^{freq byte}}{128}</math> or as a table:
Value | Probability of item drop |
---|---|
00 | 1/128 |
01 | 1/64 |
02 | 1/32 |
03 | 1/16 |
04 | 1/8 |
05 | 1/4 |
06 | 1/2 |
07 | 1/1 (always) |
Item dropped
- Length: 1 byte
- Offset within entry: 0x58
- Range of values: 0-255 (0x00-0xFF), but it must be a valid index in the Item Properties Table
The index in the Item Properties Table of the item dropped by this enemy.
Status
- Length: 1 byte
- Offset within entry: 0x59
- Range of values: 0-7
The initial status of the enemy.
Value | Starting status |
---|---|
00 | Normal |
01 | PSI Shield Alpha (Blocks PSI) |
02 | PSI Shield Beta (Reflects PSI) |
03 | Shield Alpha (Blocks physical) |
04 | Shield Beta (Reflects physical) |
05 | Asleep |
06 | Can't concentrate |
07 | Feeling strange |
Death sound
- Length: 1 byte
- Offset within entry: 0x5A
- Range of values: 0-1
Determines whether the enemy's death sound is that of a normal enemy (0) or a boss (1).
Row
- Length: 1 byte
- Offset within entry: 0x5B
- Range of values: 0-1
Determines whether the enemy appears in the front row (0) or the back row (1).
Max call
- Length: 1 byte
- Offset within entry: 0x5C
- Range of values: 0-255 (0x00-0xFF)
The maximum number of additional enemies this enemy may call. This only affects enemies who have actions which call other enemies.
Mirror success rate
- Length: 1 byte
- Offset within entry: 0x5D
- Range of values: 0-100 (0x00-0x64)
Percent chance that Poo's (the fourth character) mirror move will work on this enemy.