User Tools

Site Tools

“Where only clever quotes need apply”

return_of_samus:technical_information:metasprites

Table of Contents

Metasprites

 MII Samus Metroid 2's metasprite format is very simple.

In fact, it's so simple, that it's virtually the same as the hardware's sprite format.

The Format

A metasprite is sprite made out of sprites. The “sprites” you see onscreen are actually collections of 8×8 pixel hardware sprites. Thus, metasprites are just lists of hardware sprites.

Accordingly, each sprite in the list is four bytes:

  • Y position
  • X position
  • Tile number
  • Attributes. Note that each enemy entry in $c600 has fields for the attributes that are XORed with these.
    • Bit 7 - Sprite Priority (0 = Above, 1 = Behind)
    • Bit 6 - Y flip (0 = Normal, 1 = Flipped)
    • Bit 5 - X flip (same)
    • Bit 4 - Palette number

A Y position of $FF lets the game know that the metasprite is done.

And that's about it.

TODO: Put an example here.

Pointer List

For convenience, here's the pointer list for the metasprites in bank 1 (which starts at 0x4000 in the ROM).

TODO: This is probably better suited for a “Locations of Data” page.

$425F
$429C
$42FE
$4360
$4391
$43C6
$4476
$44AB
$44E8
$45AC
$4606
$4660
$46B2
$425F
$42CD
$432F
$43EB
$441C
$4451
$4511
$4546
$4583
$45D9
$4633
$4689
$46DB
$4197
$41B0
$41C9
$41E2
$410F
$4120
$4131
$4142
$41FB
$4214
$422D
$4246
$4153
$4164
$4175
$4186
$410A
$4704
$4735
$476E
$4793
$47C4
$47FD
$4859
$4848
$4827
$4822
$489A
$489F
$48A4
$48B5
$48C6
$48D7
$48E8
$48F9
$490A
$491B
$492C
$4935
$40E1
$40B8
$4093
$408A

Figuring out which sprite is used by which enemy (and if there's even an easy way to determine that) is an exercise left to the reader/author.

return_of_samus/technical_information/metasprites.txt · Last modified: 2018/12/14 07:08 by quantam