User Tools

Site Tools


super: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
Next revisionBoth sides next revision
super:technical_information:data_structures [2019/02/14 23:55] – Enemy projectiles, animated tiles objects, HDMA objects p.jboysuper:technical_information:data_structures [2019/03/21 21:56] – [State header] fixed formatting p.jboy
Line 86: Line 86:
 | Eh | Zebes timebomb set | | Eh | Zebes timebomb set |
 | Fh | Critters escaped | | Fh | Critters escaped |
-10 | 1st Metroid hall cleared | +10h | 1st Metroid hall cleared | 
-11 | 1st Metroid shaft cleared | +11h | 1st Metroid shaft cleared | 
-12 | 2nd Metroid hall cleared | +12h | 2nd Metroid hall cleared | 
-13 | 2nd Metroid shaft cleared | +13h | 2nd Metroid shaft cleared | 
-14 | //Unused// | +14h | //Unused// | 
-15 | Outran speed booster lavaquake |+15h | Outran speed booster lavaquake |
  
 Boss bits are given as follows: Boss bits are given as follows:
Line 153: Line 153:
   |      |  |  |  |    |    |     ________________________________ Layer 2 scroll X   |      |  |  |  |    |    |     ________________________________ Layer 2 scroll X
   |      |  |  |  |    |    |    |   _____________________________ Layer 2 scroll Y   |      |  |  |  |    |    |    |   _____________________________ Layer 2 scroll Y
-  |      |  |  |  |    |    |    |  |     ________________________ Scroll +  |      |  |  |  |    |    |    |  |   __________________________ Scroll 
-  |      |  |  |  |    |    |    |  |         __________________ Special x-ray blocks +  |      |  |  |  |    |    |    |  |      _____________________ Special x-ray blocks 
-  |      |  |  |  |    |    |    |  |    |    |     ______________ Main ASM (FX2 in old SMILE) +  |      |  |  |  |    |    |    |  |  |    |     ________________ Main ASM (FX2 in old SMILE) 
-  |      |  |  |  |    |    |    |  |    |    |    |     _________ PLM population +  |      |  |  |  |    |    |    |  |  |    |    |     ___________ PLM population 
-  |      |  |  |  |    |    |    |  |    |    |    |    |     ____ Library background +  |      |  |  |  |    |    |    |  |  |    |    |    |     ______ Library background 
-  |      |  |  |  |    |    |    |  |    |    |    |    |    |   _ Setup ASM (Layer1_2 in old SMILE) +  |      |  |  |  |    |    |    |  |  |    |    |    |    |     _ Setup ASM (Layer1_2 in old SMILE) 
-  |      |  |  |  |    |    |    |  |    |    |    |    |    |  |+  |      |  |  |  |    |    |    |  |  |    |    |    |    |    |
   llllll tt MM mm ffff eeee EEEE xx yy ssss xxxx AAAA pppp bbbb aaaa   llllll tt MM mm ffff eeee EEEE xx yy ssss xxxx AAAA pppp bbbb aaaa
  
Line 549: Line 549:
 The **X/Y position** is specified in (16px x 16px) block units. 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 **block** uses the level data block format, except that the block type is ignored.
 +
 +Note that [[http://metroidconstruction.com/resource.php?id=54|flexglow]] uses this pointer for the flexglow table instead.
  
 ==== PLM population ==== ==== PLM population ====
Line 704: Line 706:
  
 The **table timer** is how many frames to wait until the next instruction in the instruction list is proceeded to. 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.
  
super/technical_information/data_structures.txt · Last modified: 2024/03/22 16:09 by p.jboy