User Tools

Site Tools

“all work and no play makes vismund a dull boy”

return_of_samus:technical_information:enemy_data

Enemy Data

 MII Samus In bank 3 there are a bunch of 16×16 pointer tables corresponding to each map. The one for the bank 9 map starts at 0x0C2E0 and is 0x200 bytes long. The one for bank A's map starts at 0xC4E0, and so on and so forth.

Each pointer points to the enemy list data for the corresponding screen of the level bank. The format for the list goes like this:

  1. Enemy Number
  2. Enemy Type
  3. X position (pixels)
  4. Y position (pixels)

An enemy number of 0xFF signals the end of enemies for the given screen.

Those last three bytes should pretty much be self-explanatory. However, the enemy number is a bit of a weird. Basically, the game uses it to determine whether an enemy has been spawned or defeated or whatever. It gets cleaned up whenever you do a room transition. Thus, you can give an enemy whatever number you want, as long as two enemies in the same room do not share numbers (well, not unless you want to do something weird).

Enemy numbers in the range of 0x40-0x7F are used for items and such. If you have a missle tank or a metroid or an enemy or a congressman that you don't want to respawn after collecting or defeating it, give it an number in that range because the game saves the status of these objects. Also, since it saves these objects on a per-map basis, you can have energy tanks with numbers of 0x42 in maps A and B without being considered the same thing. (A corollary to this is that “duplicate” items need to be on the same map to work properly.)

Known Enemy Types

0x04 - Skreek spawner

0x09 - Drivel

0x12 - Yumbo

0x1b - Chute Leech

0x30 - vertical(?) moheek
0x31 - horizontal(?) moheek

0x4a - Wallfire

0x65 - Septogg

0x68 - Moto

0x6a - Halzyn
0x6b - Ramulken

0x80 - Plasma Beam in Orb
0x81 - Plasma Beam
0x82 - Ice Beam in Orb
0x83 - Ice Beam
0x84 - Wave Beam in Orb
0x85 - Wave Beam 
0x86 - Spazer in Orb
0x87 - Spazer
0x88 - Morph Ball Bombs in Orb
0x89 - Morph Ball bombs
0x8A - Screw Attack in Orb
0x8B - Screw Attack
0x8C - Varia Suit in Orb
0x8D - Varia Suit
0x8E - High Jump in Orb
0x8F - High Jump
0x90 - Space Jump in Orb
0x91 - Space Jump
0x92 - Spider Ball in Orb
0x93 - Spider Ball
0x94 - Spring Ball in Orb
0x95 - Spring Ball
0x96 - Energy Tank in Orb
0x97 - Energy Tank
0x98 - Missile Tank in Orb
0x99 - Missile Tank
0x9A - Blob Thrower
0x9B - Energy Restore Orb
0x9C - Arachnus
0x9D - Missile Restore
0x9E - ?
0x9F - ?
0xA0 - Alpha Metroid, pre shed
0xA1 - Empty
0xA2 - Metroid Egg
0xA3 - Gamma Metroid
0xA4 - Alpha Metroid, post shed
0xA5 - Empty
0xA6 - Metroid Egg Clone
0xA7 - Empty
0xA8 - Empty
0xA9 - Empty
0xAA - Empty
0xAB - Empty
0xAC - Empty
0xAD - Zeta Metroid, pre shed
0xAE - Empty
0xAF - Empty
0xB0 - Empty
0xB1 - Empty
0xB2 - Empty
0xB3 - Omega Metroid
0xB4 - Empty
0xB5 - Empty
0xB6 - Empty
0xB7 - Empty
0xB8 - Empty
0xB9 - Empty
0xBA - Empty
0xBB - Empty
0xBC - Empty
0xBD - Empty
0xBE - something that hurts you (takes 9 health)
0xBF - Empty
0xC0 - Empty
0xC1 - Empty
0xC2 - Empty
0xC3 - Empty
0xC4 - Empty
0xC5 - Empty
0xC6 - Empty
0xC7 - something that hurts you (takes 9 health)
0xC8 - ^
0xC9 - ^
0xCA - ^
0xCB - ^
0xCC - ^
0xCE - ^
0xCD - ^
0xCE - Larva Metroid
0xCF - Larva Metroid, Immobile & Unkillable
0xD0 - Flitt
0xD1 - Meboid(?)
0xD2 - ?
0xD3 - Gravitt(?)
0xD4 - Gravitt(?), Immobile
0xD5 - Gravitt(???), Immobile
0xD6 - Gravitt(??????), Immobile
0xD7 - Gravitt(?????????), Immobile
0xD8 - Gullugg
0xD9 - Gullugg, immobile
0xDA - ?
0xDB - Intangible Metroid Egg
0xDC - Empty
0xDD - ?
0xDE - Empty
0xDF - ?
0xF0 - ?(does 20 damage
0XF1 - ?
0XF2 - ?
0XF3 - ?
0XF4 - ?
0XF5 - ?
0XF6 - ?
0XF7 - ?
0XF8 - ?
0XF9 - ?
0XFA - ?
0XFB - ?
0XFC - ?
0XFD - ?
0XFE - ?
0XFF - ?
return_of_samus/technical_information/enemy_data.txt · Last modified: 2019/03/03 00:31 by liamnajor