OAM layout: Difference between revisions

From SNESdev Wiki
Jump to navigationJump to search
m (space)
m (removed unmatched )'s)
Line 7: Line 7:
--+------------------+------------------+------------------+------------------------------------------------+
--+------------------+------------------+------------------+------------------------------------------------+
L | Sprite #0        | Sprite #0        | Sprite #0        | Sprite #0                                      |
L | Sprite #0        | Sprite #0        | Sprite #0        | Sprite #0                                      |
O | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile) |
O | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile |
W +------------------+------------------+------------------+------------------------------------------------+
W +------------------+------------------+------------------+------------------------------------------------+
   | Sprite #1        | Sprite #1        | Sprite #1        | Sprite #1                                      |
   | Sprite #1        | Sprite #1        | Sprite #1        | Sprite #1                                      |
T | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile) |
T | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile |
A +------------------+------------------+------------------+------------------------------------------------+
A +------------------+------------------+------------------+------------------------------------------------+
B | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
B | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
L | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile) |
L | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile |
E +------------------+------------------+------------------+------------------------------------------------+
E +------------------+------------------+------------------+------------------------------------------------+
   |                  |                  |                  |                                                |
   |                  |                  |                  |                                                |
Line 20: Line 20:
   +------------------+------------------+------------------+------------------------------------------------+
   +------------------+------------------+------------------+------------------------------------------------+
   | Sprite #127      | Sprite #127      | Sprite #127      | Sprite #127                                    |
   | Sprite #127      | Sprite #127      | Sprite #127      | Sprite #127                                    |
   | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile) |
   | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile |
--+------------------+------------------+------------------+------------------------------------------------+
--+------------------+------------------+------------------+------------------------------------------------+
H | Sprites #0-3    | Sprites #4-7    | Sprites #8-11    | Sprites #12-15                                |
H | Sprites #0-3    | Sprites #4-7    | Sprites #8-11    | Sprites #12-15                                |

Revision as of 16:38, 2 June 2022

OAM is a total of 544 bytes in size, consisting of a 512 byte low table and a 32 byte high table. It holds the properties of up all 128 sprites.

Each of these cells represents one byte. The high table packs information on 4 sprites into each byte.

--+------------------+------------------+------------------+------------------------------------------------+
L | Sprite #0        | Sprite #0        | Sprite #0        | Sprite #0                                      |
O | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
W +------------------+------------------+------------------+------------------------------------------------+
  | Sprite #1        | Sprite #1        | Sprite #1        | Sprite #1                                      |
T | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
A +------------------+------------------+------------------+------------------------------------------------+
B | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
L | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
E +------------------+------------------+------------------+------------------------------------------------+
  |                  |                  |                  |                                                |
  |       ....       |    ...           |      ...         |                      ...                       |
  |                  |                  |                  |                                                |
  +------------------+------------------+------------------+------------------------------------------------+
  | Sprite #127      | Sprite #127      | Sprite #127      | Sprite #127                                    |
  | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
--+------------------+------------------+------------------+------------------------------------------------+
H | Sprites #0-3     | Sprites #4-7     | Sprites #8-11    | Sprites #12-15                                 |
I |                  |                  |                  |                                                |
G |                  |                  |                  |                                                |
H | size select bits | size select bits | size select bits | size select bits                               |
  |  |  |  |  |      |  |  |  |  |      |  |  |  |  |      |  |  |  |  |                                    |
  |  v  v  v  v      |  v  v  v  v      |  v  v  v  v      |  v  v  v  v                                    |
T | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+                                  |
A | |s |s |s |s |    | |s |s |s |s |    | |s |s |s |s |    | |s |s |s |s |                                  |
B | |#4|#3|#2|#1|    | |#4|#3|#2|#1|    | |#4|#3|#2|#1|    | |#4|#3|#2|#1|                                  |
L | | x| x| x| x|    | | x| x| x| x|    | | x| x| x| x|    | | x| x| x| x|                                  |
E | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+                                  |
  |   ^  ^  ^  ^     |   ^  ^  ^  ^     |   ^  ^  ^  ^     |   ^  ^  ^  ^                                   |
  |   |  |  |  |     |   |  |  |  |     |   |  |  |  |     |   |  |  |  |                                   |
  |   hi x bits      |   hi x bits      |   hi x bits      |   hi x bits                                    |
  +------------------+------------------+------------------+------------------------------------------------+
  |                  |                  |                  |                                                |
  |       ....       |    ...           |      ...         |                      ...                       |
  |                  |                  |                  |                                                |
  +------------------+------------------+------------------+------------------------------------------------+
  | Sprites #112-115 | Sprites #116-119 | Sprites #120-123 | Sprites #124-127                               |
  |                  |                  |                  |                                                |
  |                  |                  |                  |                                                |
  | size select bits | size select bits | size select bits | size select bits                               |
  |  |  |  |  |      |  |  |  |  |      |  |  |  |  |      |  |  |  |  |                                    |
  |  v  v  v  v      |  v  v  v  v      |  v  v  v  v      |  v  v  v  v                                    |
  | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+                                  |
  | |s |s |s |s |    | |s |s |s |s |    | |s |s |s |s |    | |s |s |s |s |                                  |
  | |#4|#3|#2|#1|    | |#4|#3|#2|#1|    | |#4|#3|#2|#1|    | |#4|#3|#2|#1|                                  |
  | | x| x| x| x|    | | x| x| x| x|    | | x| x| x| x|    | | x| x| x| x|                                  |
  | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+    | +--+--+--+--+                                  |
  |   ^  ^  ^  ^     |   ^  ^  ^  ^     |   ^  ^  ^  ^     |   ^  ^  ^  ^                                   |
  |   |  |  |  |     |   |  |  |  |     |   |  |  |  |     |   |  |  |  |                                   |
  |   hi x bits      |   hi x bits      |   hi x bits      |   hi x bits                                    |
  +------------------+------------------+------------------+------------------------------------------------+