User Tools

Site Tools


return_of_samus:technical_information:enemy_data

This is an old revision of the document!


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

0x97 - Energy Tank
0x98 - Missile Tank in Orb
0x99 - Missile Tank
0x9A - Big flower thing that spits leaves

0xA0 - Alpha Metroid
return_of_samus/technical_information/enemy_data.1433226549.txt.gz · Last modified: 2015/06/02 06:29 by rt-55j