User Tools

Site Tools


sm:technical_information:data_structures

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
sm:technical_information:data_structures [2024/11/15 01:44] felixwrightsm:technical_information:data_structures [2024/11/16 08:12] (current) felixwright
Line 291: Line 291:
  
 Block types and BTS values Block types and BTS values
-Air types  Solid types +^Air types^^Solid types                        ^^ 
- Air   Solid block +|0|Air                   |8|Solid block         | 
- Slope   Door block +|1|Slope                 |9|Door block          | 
- Spike air  Ah  Spike block +|2|Spike air             |Ah|Spike block        | 
- Special air  Bh  Special block +|3|Special air           |Bh|Special block      | 
- Shootable air  Ch  Shootable block +|4|Shootable air         |Ch|Shootable block    | 
- Horizontal extension  Dh  Vertical extension +|5|Horizontal extension  |Dh|Vertical extension | 
- Unused air  Eh  Grapple block +|6|Unused air            |Eh|Grapple block      | 
- Bombable air  Fh  Bombable block +|7|Bombable air          |Fh|Bombable block     | 
-Block type  BTS  Description + 
-2 / Ah  Spike   Solid only. Generic spike (60 damage) + 
- Solid only. Kraid's lair spike (10h damage) +^Block Type^^ BTS ^^Description                                                                                     ^ 
- Air only. Air spike (10h damage) +|2 / Ah|Spike|0||Solid only. Generic spike (60 damage)                                                              | 
- Solid only. Draygon's broken turret (10h damage) +| ::: | ::: |1||Solid only. Kraid's lair spike (10h damage)                                                         | 
-Eh  Solid only. X-rayable block (used in Blue Brinstar boulder room) +| ::: | ::: |2||Air only. Air spike (10h damage)                                                                    | 
-Fh  Solid only. Enemy breakable block (used in Shaktool's room) +| ::: | ::: |3||Solid only. Draygon's broken turret (10h damage)                                                    | 
-3 / Bh  Special   1×1 respawning crumble block +| ::: | ::: |Eh||Solid only. X-rayable block (used in Blue Brinstar boulder room)                                   | 
- 2×1 respawning crumble block +| ::: | ::: |Fh||Solid only. Enemy breakable block (used in Shaktool's room)                                        | 
- 1×2 respawning crumble block +|3 / Bh|Special|0||1×1 respawning crumble block                                                                     | 
- 2×2 respawning crumble block +| ::: | ::: |1||2×1 respawning crumble block                                                                        | 
- 1×1 crumble block +| ::: | ::: |2||1×2 respawning crumble block                                                                        | 
- 2×1 crumble block +| ::: | ::: |3||2×2 respawning crumble block                                                                        | 
- 1×2 crumble block +| ::: | ::: |4||1×1 crumble block                                                                                   | 
- 2×2 crumble block +| ::: | ::: |5||2×1 crumble block                                                                                   | 
- Air only. Rightwards treadmill, disabled in Wrecked Ship unless Phantoon is dead +| ::: | ::: |6||1×2 crumble block                                                                                   | 
- Air only. Leftwards treadmill, disabled in Wrecked Ship unless Phantoon is dead +| ::: | ::: |7||2×2 crumble block                                                                                   | 
-Ah  Air only. Rightwards treadmill, always on +| ::: | ::: |8||Air only. Rightwards treadmill, disabled in Wrecked Ship unless Phantoon is dead                    | 
-Bh  Air only. Leftwards treadmill, always on +| ::: | ::: |9||Air only. Leftwards treadmill, disabled in Wrecked Ship unless Phantoon is dead                     | 
-Eh  Respawning speed boost block +| ::: | ::: |Ah||Air only. Rightwards treadmill, always on                                                          | 
-Fh  Speed boost block +| ::: | ::: |Bh||Air only. Leftwards treadmill, always on                                                           | 
-44h  Generic PLM shot trigger +| ::: | ::: |Eh||Respawning speed boost block                                                                       | 
-45h  Item collision detection +| ::: | ::: |Fh||Speed boost block                                                                                  | 
-46h  Scroll PLM trigger +| ::: | ::: |44h||Generic PLM shot trigger                                                                          | 
-47h  Map station right access +| ::: | ::: |45h||Item collision detection                                                                          | 
-48h  Map station left access +| ::: | ::: |46h||Scroll PLM trigger                                                                                | 
-49h  Energy station right access +| ::: | ::: |47h||Map station right access                                                                          | 
-4Ah  Energy station left access +| ::: | ::: |48h||Map station left access                                                                           | 
-4Bh  Missile station right access +| ::: | ::: |49h||Energy station right access                                                                       | 
-4Ch  Missile station left access +| ::: | ::: |4Ah||Energy station left access                                                                        | 
-4Dh  Save station trigger +| ::: | ::: |4Bh||Missile station right access                                                                      | 
-Crateria/debug  80h  Air only. Ice physics +| ::: | ::: |4Ch||Missile station left access                                                                       | 
-Brinstar  80h  Floor plant +| ::: | ::: |4Dh||Save station trigger                                                                              | 
-81h  Ceiling plant +| ::: | ::: |Crateria/debug|80h|Air only. Ice physics                                                               | 
-82h  Respawning speed block, slower crumble animation +| ::: | ::: |Brinstar|80h|Floor plant                                                                               | 
-83h  Speed block, slower crumble animation +| ::: | ::: | ::: |81h|Ceiling plant                                                                                | 
-84h  Respawning speed block (used by dachora pit) +| ::: | ::: | ::: |82h|Respawning speed block, slower crumble animation                                             | 
-85h  Speed boost block +| ::: | ::: | ::: |83h|Speed block, slower crumble animation                                                        | 
-Norfair  83h  Lower Norfair chozo hand trigger +| ::: | ::: | ::: |84h|Respawning speed block (used by dachora pit)                                                 | 
-Wrecked Ship  80h  Wrecked Ship chozo hand trigger +| ::: | ::: | ::: |85h|Speed boost block                                                                            | 
-Maridia  80h  Quicksand surface, can run on without sinking (used in snail room) +| ::: | ::: |Norfair|83h|Lower Norfair chozo hand trigger                                                           | 
-81h  Quicksand surface +| ::: | ::: |Wrecked Ship|80h|Wrecked Ship chozo hand trigger                                                       | 
-82h  Quicksand surface +| ::: | ::: |Maridia|80h|Quicksand surface, can run on without sinking (used in snail room)                         | 
-83h  Submerging quicksand (used in sand falls rooms) +| ::: | ::: | ::: |81h|Quicksand surface                                                                            | 
-84h  Sand falls - slow. Used in the ceilings of pre-Draygon mochtroid rooms (so basically unused) +| ::: | ::: | ::: |82h|Quicksand surface                                                                            | 
-85h  Sand falls - fast +| ::: | ::: | ::: |83h|Submerging quicksand (used in sand falls rooms)                                              | 
-7 / Fh  Bombable   1×1 respawning bomb block +| ::: | ::: | ::: |84h|Sand falls - slow. Used in the ceilings of pre-Draygon mochtroid rooms (so basically unused) | 
- 2×1 respawning bomb block +| ::: | ::: | ::: |85h|Sand falls - fast                                                                            | 
- 1×2 respawning bomb block +|7 / Fh|Bombable|0||1×1 respawning bomb block                                                                       | 
- 2×2 respawning bomb block +| ::: | ::: |1||2×1 respawning bomb block                                                                           | 
- 1×1 bomb block +| ::: | ::: |2||1×2 respawning bomb block                                                                           | 
- 2×1 bomb block +| ::: | ::: |3||2×2 respawning bomb block                                                                           | 
- 1×2 bomb block +| ::: | ::: |4||1×1 bomb block                                                                                      | 
- 2×2 bomb block +| ::: | ::: |5||2×1 bomb block                                                                                      | 
-4 / Ch  Shootable   1×1 respawning shot block +| ::: | ::: |6||1×2 bomb block                                                                                      | 
- 2×1 respawning shot block +| ::: | ::: |7||2×2 bomb block                                                                                      | 
- 1×2 respawning shot block +|4 / Ch|Shootable|0||1×1 respawning shot block                                                                      | 
- 2×2 respawning shot block +| ::: | ::: |1||2×1 respawning shot block                                                                           | 
- 1×1 shot block +| ::: | ::: |2||1×2 respawning shot block                                                                           | 
- 2×1 shot block +| ::: | ::: |3||2×2 respawning shot block                                                                           | 
- 1×2 shot block +| ::: | ::: |4||1×1 shot block                                                                                      | 
- 2×2 shot block +| ::: | ::: |5||2×1 shot block                                                                                      | 
- Respawning power bomb block +| ::: | ::: |6||1×2 shot block                                                                                      | 
- Power bomb block +| ::: | ::: |7||2×2 shot block                                                                                      | 
-Ah  Respawning super missile block +| ::: | ::: |8||Respawning power bomb block                                                                         | 
-Bh  Super missile block +| ::: | ::: |9||Power bomb block                                                                                    | 
-Ch  Fake super missile block (solid block but shows super missile block when x-rayed) +| ::: | ::: |Ah||Respawning super missile block                                                                     | 
-Dh  Fake super missile block +| ::: | ::: |Bh||Super missile block                                                                                | 
-Eh  Fake super missile block +| ::: | ::: |Ch||Fake super missile block (solid block but shows super missile block when x-rayed)                  | 
-Fh  Fake super missile block +| ::: | ::: |Dh||Fake super missile block                                                                           | 
-10h  Gate blocks +| ::: | ::: |Eh||Fake super missile block                                                                           | 
-40h  Blue door facing left +| ::: | ::: |Fh||Fake super missile block                                                                           | 
-41h  Blue door facing right +| ::: | ::: |10h||Gate blocks                                                                                       | 
-42h  Blue door facing up +| ::: | ::: |40h||Blue door facing left                                                                             | 
-43h  Blue door facing down +| ::: | ::: |41h||Blue door facing right                                                                            | 
-44h  Generic shot trigger +| ::: | ::: |42h||Blue door facing up                                                                               | 
-45h  Item trigger +| ::: | ::: |43h||Blue door facing down                                                                             | 
-46h  Left blue gate trigger +| ::: | ::: |44h||Generic shot trigger                                                                              | 
-47h  Right blue gate trigger +| ::: | ::: |45h||Item trigger                                                                                      | 
-48h  Left red gate trigger +| ::: | ::: |46h||Left blue gate trigger                                                                            | 
-49h  Right red gate trigger +| ::: | ::: |47h||Right blue gate trigger                                                                           | 
-4Ah  Left green gate trigger +| ::: | ::: |48h||Left red gate trigger                                                                             | 
-4Bh  Right green gate trigger +| ::: | ::: |49h||Right red gate trigger                                                                            | 
-4Ch  Left orange gate trigger +| ::: | ::: |4Ah||Left green gate trigger                                                                           | 
-4Dh  Right orange gate trigger +| ::: | ::: |4Bh||Right green gate trigger                                                                          | 
-4Fh  Critters escape block +| ::: | ::: |4Ch||Left orange gate trigger                                                                          | 
-Eh  Grapple block   Generic grapple block +| ::: | ::: |4Dh||Right orange gate trigger                                                                         | 
- Respawning crumbling grapple block +| ::: | ::: |4Fh||Critters escape block                                                                             | 
- Non-respawning crumbling grapple block +|Eh|Grapple block|0||Generic grapple block                                                                          | 
-80h+  Grapple-through block+| ::: | ::: |1||Respawning crumbling grapple block                                                                  | 
 +| ::: | ::: |2||Non-respawning crumbling grapple block                                                              | 
 +| ::: | ::: |80h+||Grapple-through block                                                                            |
  
    
Line 419: Line 421:
  
 Layer 3 types Layer 3 types
- None +|0|None                      | 
- Lava +|2|Lava                      | 
- Acid +|4|Acid                      | 
- Water +|6|Water                     | 
- Spores +|8|Spores                    | 
-Ah  Rain +|Ah|Rain                     | 
-Ch  Fog +|Ch|Fog                      | 
-20h  Scrolling sky +|20h|Scrolling sky           | 
-22h  Unused +|22h|Unused                  | 
-24h  Fireflea +|24h|Fireflea                | 
-26h  Tourian entrance statue +|26h|Tourian entrance statue | 
-28h  Ceres Ridley +|28h|Ceres Ridley            | 
-2Ah  Ceres elevator +|2Ah|Ceres elevator          | 
-2Ch  Haze+|2Ch|Haze                    |
  
 Layer blending configurations Layer blending configurations
-2/Eh/20h  Normal. BG1/BG2/sprites are drawn with BG3 added on top   +|2/Eh/20h|Normal. BG1/BG2/sprites are drawn with BG3 added on top                                                                                                                                                                                    || 
- Normal, but BG2 is disabled  Used by Phantoon +|4|Normal, but BG2 is disabled|Used by Phantoon                                                                                                                                                                                                       | 
- Normal, but sprites aren't affected by BG3 and sprites are added to BG1/BG2 (instead of hidden)  Unused +|6|Normal, but sprites aren't affected by BG3 and sprites are added to BG1/BG2 (instead of hidden)|Unused                                                                                                                                             | 
- Normal, but BG1/sprites aren't affected by BG3 and sprites are added to BG2 (instead of hidden)  Used in some power off Wrecked Ship rooms +|8|Normal, but BG1/sprites aren't affected by BG3 and sprites are added to BG2 (instead of hidden)|Used in some power off Wrecked Ship rooms                                                                                                          | 
-Ah  Normal, but BG1 isn't affected by BG3  Used with FX layer 3 type = spores +|Ah|Normal, but BG1 isn't affected by BG3|Used with FX layer 3 type = spores                                                                                                                                                                          | 
-Ch  Normal, but BG3 is disabled and colour math is subtractive  Used with FX layer 3 type = fireflea +|Ch|Normal, but BG3 is disabled and colour math is subtractive|Used with FX layer 3 type = fireflea                                                                                                                                                   | 
-10h/12h  Normal, but BG3 is disabled inside window 1  Used by morph ball eye and varia/gravity suit pickup +|10h/12h|Normal, but BG3 is disabled inside window 1|Used by morph ball eye and varia/gravity suit pickup                                                                                                                                             | 
-14h/22h  Normal, but BG1 isn't affected by BG3 and colour math is subtractive  Sometimes use with FX layer 3 type = water +|14h/22h|Normal, but BG1 isn't affected by BG3 and colour math is subtractive|Sometimes use with FX layer 3 type = water                                                                                                                              | 
-16h  BG1/sprites are drawn after the result of drawing BG2/BG3 is subtracted  Sometimes use with FX layer 3 type = water +|16h|BG1/sprites are drawn after the result of drawing BG2/BG3 is subtracted|Sometimes use with FX layer 3 type = water                                                                                                                               | 
-18h/1Eh/30h  BG3 is drawn with the result of drawing BG1/BG2/sprites added on top  Used with FX layer 3 type = lava / acid / fog / Tourian entrance statue, sometimes use with FX layer 3 type = water +|18h/1Eh/30h|BG3 is drawn with the result of drawing BG1/BG2/sprites added on top|Used with FX layer 3 type = lava / acid / fog / Tourian entrance statue, sometimes use with FX layer 3 type = water                                                 | 
-1Ah  Normal, but BG2 and BG3 have reversed roles  Used by Phantoon +|1Ah|Normal, but BG2 and BG3 have reversed roles|Used by Phantoon                                                                                                                                                                                     | 
-1Ch  Normal, but BG2 and BG3 have reversed roles, colour addition is halved and backdrop is disabled  Unused +|1Ch|Normal, but BG2 and BG3 have reversed roles, colour addition is halved and backdrop is disabled|Unused                                                                                                                                           | 
-24h  BG1/BG2/sprites are drawn the backdrop is added on top inside window 1  Used by Mother Brain +|24h|BG1/BG2/sprites are drawn the backdrop is added on top inside window 1|Used by Mother Brain                                                                                                                                                      | 
-26h  Normal, but colour addition is halved  Unused +|26h|Normal, but colour addition is halved|Unused                                                                                                                                                                                                     | 
-28h  Normal, but BG3 is disabled, colour math is subtractive, and the backdrop subtracts red if there is no power bomb explosion  Used in some default state Crateria rooms, some power off Wrecked Ship rooms, pre plasma beam rooms +|28h|Normal, but BG3 is disabled, colour math is subtractive, and the backdrop subtracts red if there is no power bomb explosion|Used in some default state Crateria rooms, some power off Wrecked Ship rooms, pre plasma beam rooms                  | 
-2Ah  Normal, but BG3 is disabled, colour math is subtractive, and the backdrop subtracts orange if there is no power bomb explosion  Used in blue Brinstar rooms, Kraid's lair entrance, n00b tube side rooms, plasma beam room, some sand falls rooms +|2Ah|Normal, but BG3 is disabled, colour math is subtractive, and the backdrop subtracts orange if there is no power bomb explosion|Used in blue Brinstar rooms, Kraid's lair entrance, n00b tube side rooms, plasma beam room, some sand falls rooms | 
-2Ch  Normal, but BG3 is disabled  Used by FX layer 3 type = haze and torizos +|2Ch|Normal, but BG3 is disabled|Used by FX layer 3 type = haze and torizos                                                                                                                                                                           | 
-2Eh  Normal, but colour math is subtractive  Unused +|2Eh|Normal, but colour math is subtractive|Unused                                                                                                                                                                                                    | 
-32h  Normal, but BG1 isn't affected by BG3 and colour math is subtractive  Unused +|32h|Normal, but BG1 isn't affected by BG3 and colour math is subtractive|Unused                                                                                                                                                                      | 
-34h  Normal, but power bombs don't affect BG2  Unused+|34h|Normal, but power bombs don't affect BG2|Unused                                                                                                                                                                                                  |
  
 Liquid options Liquid options
- Liquid flows (leftwards) +|1|Liquid flows (leftwards)                                      | 
- Layer 2 is wavy +|2|Layer 2 is wavy                                               | 
- Liquid physics are disabled (used in n00b tube room) +|4|Liquid physics are disabled (used in n00b tube room)          | 
-40h  Big tide (liquid fluctuates up and down, a la the gauntlet) +|40h|Big tide (liquid fluctuates up and down, a la the gauntlet) | 
-80h  Small tide (liquid fluctuates up and down)+|80h|Small tide (liquid fluctuates up and down)                  |
  
-  
 ==== Enemy population ==== ==== Enemy population ====
  
Line 484: Line 485:
  
 The properties are as follows: The properties are as follows:
-8000h  Hitbox solid to Samus +|8000h|Hitbox solid to Samus    | 
-4000h  Respawns if killed +|4000h|Respawns if killed       | 
-2000h  Process instructions +|2000h|Process instructions     | 
-1000h  Block plasma beam +|1000h|Block plasma beam        | 
-800h  Process whilst off-screen +|800h|Process whilst off-screen | 
-400h  Intangible +|400h|Intangible                | 
-200h  Delete +|200h|Delete                    | 
-100h  Invisible+|100h|Invisible                 |
  
 The extra properties are as follows: The extra properties are as follows:
- Enable extended spritemap format +|4|Enable extended spritemap format               | 
- Disable enemy AI. Isn't disabled if intangible +|1|Disable enemy AI. Isn't disabled if intangible |
 ==== Enemy set ==== ==== Enemy set ====
  
Line 521: Line 521:
  
 Scroll values are as follows: Scroll values are as follows:
- Red. Cannot scroll into this area +|0|Red. Cannot scroll into this area         | 
- Blue. Hides the bottom 2 rows of the area +|1|Blue. Hides the bottom 2 rows of the area | 
- Green. Unrestricted+|2|Green. Unrestricted                       |
  
 ==== Special X-Ray Blocks ==== ==== Special X-Ray Blocks ====
Line 542: Line 542:
 The X/Y position is specified in (16px x 16px) block units. The block uses the level data block format, except that the block type is ignored. The X/Y position is specified in (16px x 16px) block units. The block uses the level data block format, except that the block type is ignored.
  
-Note that flexglow uses this pointer for the flexglow table instead.+Note that [[https://metroidconstruction.com/resource.php?id=54|flexglow]] uses this pointer for the flexglow table instead.
  
 ==== PLM population ==== ==== PLM population ====
Line 571: Line 571:
  
 The list of commands used in Super Metroid is as follows: The list of commands used in Super Metroid is as follows:
-Type  Parameters  Description +^Type^Parameters^Description                                                                    ^ 
- ssssss dddd nnnn  Transfer n bytes from s to d in VRAM +|2|ssssss dddd nnnn|Transfer n bytes from s to d in VRAM                                        | 
- ssssss dddd  Decompress s to d in bank $7E +|4|ssssss dddd|Decompress s to d in bank $7E                                                    | 
-  Clear layer 3 +|6| |Clear layer 3                                                                              | 
- ssssss dddd nnnn  Transfer n bytes from s to d in VRAM and set BG3 tiles base address = $2000 +|8|ssssss dddd nnnn|Transfer n bytes from s to d in VRAM and set BG3 tiles base address = $2000 | 
-Ah   Clear layer 2 +|Ah| |Clear layer 2                                                                             | 
-Ch   Clear Kraid's layer 2 +|Ch| |Clear Kraid's layer 2                                                                     | 
-Eh  DDDD ssssss dddd nnnn  Transfer n bytes from s to d in VRAM if the current door pointer = D+|Eh|DDDD ssssss dddd nnnn|Transfer n bytes from s to d in VRAM if the current door pointer = D  |
  
 ===== Object formats ===== ===== Object formats =====
Line 620: Line 620:
 The draw instruction format is a list of: The draw instruction format is a list of:
  
-nnnn       ; Number of blocks +  nnnn       ; Number of blocks 
-bbbb [...] ; Blocks +  bbbb [...] ; Blocks 
-xx yy      ; X and Y offsets from origin to start drawing from+  xx yy      ; X and Y offsets from origin to start drawing from
  
 where the list is terminated by xx yy = 00 00. where the list is terminated by xx yy = 00 00.
Line 725: Line 725:
  
 Palette instructions are a mix of colours (which are positive values) and ASM instructions (negative values). Colours are written to successive positions in CGRAM starting from initial colour index. ASM instructions can modify the colour index between listed colour values, and the instruction $C595 is used to terminate the palette instruction list. Palette instructions are a mix of colours (which are positive values) and ASM instructions (negative values). Colours are written to successive positions in CGRAM starting from initial colour index. ASM instructions can modify the colour index between listed colour values, and the instruction $C595 is used to terminate the palette instruction list.
- 
-Enemy projectile header: 
- 
-   __________________________________ Initialisation AI 
-  |     _____________________________ (Initial) pre-instruction 
-  |    |     ________________________ Instruction list pointer 
-  |    |    |     ___________________ X radius 
-  |    |    |    |   ________________ Y radius 
-  |    |    |    |  |   _____________ Damage/properties 
-  |    |    |    |  |  |     ________ Touch AI 
-  |    |    |    |  |  |    |     ___ Shot AI 
-  |    |    |    |  |  |    |    | 
-  iiii pppp IIII xx yy Pddd tttt ssss 
- 
-The properties are as follows: 
-8000h  Detect collisions with projectiles 
-4000h  Don't die on contact 
-2000h  Disable collisions with Samus 
-1000h  Low priority (drawn under enemies/Samus/projectiles) 
- 
-The special instructions for enemy projectiles have the format: 
- 
-   ______ Spritemap timer 
-  |     _ Pointer to spritemap 
-  |    | 
-  tttt ssss 
- 
-The spritemap timer is how many frames to wait until the next instruction in the instruction list is proceeded to. Within the spritemap, the tile numbers added to the base tile number set when the enemy projectile was spawned (so the projectile can access enemy graphics). 
- 
-==== Animated Tiles Objects ==== 
- 
-Animated tiles objects are objects that modify tile graphics in real-time. They exist in bank $87 and are loaded with a room from an FX header. 
- 
-Animated tiles object header format: 
- 
-   ___________ Instruction list pointer 
-  |     ______ Size 
-  |    |     _ VRAM address 
-  |    |    | 
-  iiii ssss vvvv 
- 
-The special instructions for animated tiles objects have the format: 
- 
-   ______ Animation timer 
-  |     _ Pointer to tile graphics 
-  |    | 
-  tttt ssss 
- 
-The animation timer is how many frames to wait until the next instruction in the instruction list is proceeded to. 
- 
-==== HDMA Objects ==== 
- 
-HDMA objects exist in bank $88 and are typically loaded with a room as part of FX or spawned by power bombs / x-ray. 
- 
-HDMA object header format: 
- 
-   _______ HDMA options 
-  |   ____ PPU register index 
-  |  |   _ Instruction list pointer 
-  |  |  | 
-  dd pp iiii 
- 
-The special instructions for HDMA objects have the format: 
- 
-   ______ Table timer 
-  |     _ Pointer to HDMA table 
-  |    | 
-  tttt ssss 
- 
-The table timer is how many frames to wait until the next instruction in the instruction list is proceeded to. 
- 
-==== Palette FX Objects ==== 
- 
-Palette FX objects are objects that modify palette data in real-time. They exist in bank $8D and are loaded with a room from an FX header. 
- 
-Palette FX object header format: 
- 
-   ______ Initialisation ASM pointer 
-  |     _ Instruction list pointer 
-  |    | 
-  aaaa iiii 
- 
-The special instructions for palette FX objects have the format: 
- 
-   ______ Palette timer 
-  |     _ Palette instruction list 
-  |    | 
-  tttt [...] 
- 
-The palette timer is how many frames to wait until the next instruction in the instruction list is proceeded to. 
- 
-The ASM instructions are usually used for setting the initial colour index, which is an index into CGRAM equal to (p * 10h + c) * 2 where p is the palette number and c is the colour index within the palette. 
- 
-Palette instructions are a mix of colours (which are positive values) and ASM instructions (negative values). Colours are written to successive positions in CGRAM starting from initial colour index. ASM instructions can modify the colour index between listed colour values, and the instruction $C595 is used to terminate the palette instruction list. 
- 
sm/technical_information/data_structures.1731635085.txt.gz · Last modified: 2024/11/15 01:44 by felixwright