OAM layout: Difference between revisions

From SNESdev Wiki
Jump to navigationJump to search
(up to all typo and note about low table)
(number of bits for properties in last byte of dword in low table)
 
Line 8: Line 8:
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 |                  |                  |                  | (2 bits)  (2 bits)  (3 bits)                  |
  | 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 | Sprite #1        | Sprite #1        | Sprite #1        | Sprite #1                                      |
A +------------------+------------------+------------------+------------------------------------------------+
A | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
B | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
B +------------------+------------------+------------------+------------------------------------------------+
L | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
L | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
E +------------------+------------------+------------------+------------------------------------------------+
E | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
  +------------------+------------------+------------------+------------------------------------------------+
   |                  |                  |                  |                                                |
   |                  |                  |                  |                                                |
   |      ....      |    ...          |      ...        |                      ...                      |
   |      ....      |    ...          |      ...        |                      ...                      |

Latest revision as of 22:52, 22 July 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 to all 128 sprites.

Each of these cells represents one byte. The low table spreads information on each sprite across 4 bytes, and 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 |                  |                  |                  | (2 bits)  (2 bits)  (3 bits)                   |
  +------------------+------------------+------------------+------------------------------------------------+
T | Sprite #1        | Sprite #1        | Sprite #1        | Sprite #1                                      |
A | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
B +------------------+------------------+------------------+------------------------------------------------+
L | Sprite #2        | Sprite #2        | Sprite #2        | Sprite #2                                      |
E | x pos (low bits) | y pos            | tile (low bits)  | flip v/h, priority, palette, high bit of tile  |
  +------------------+------------------+------------------+------------------------------------------------+
  |                  |                  |                  |                                                |
  |       ....       |    ...           |      ...         |                      ...                       |
  |                  |                  |                  |                                                |
  +------------------+------------------+------------------+------------------------------------------------+
  | 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                                    |
  +------------------+------------------+------------------+------------------------------------------------+