sm:technical_information:data_structures
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
sm:technical_information:data_structures [2024/11/15 22:46] – [PLMs] felixwright | sm:technical_information:data_structures [2024/11/16 08:12] (current) – felixwright | ||
---|---|---|---|
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: | ||
- | |||
- | | ||
- | | | ||
- | | | | ||
- | | | | | ||
- | | | | | | ||
- | | | | | | | ||
- | | | | | | | | ||
- | | | | | | | | ___ 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/ | ||
- | |||
- | The special instructions for enemy projectiles have the format: | ||
- | |||
- | | ||
- | | _ 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: | ||
- | |||
- | | ||
- | | | ||
- | | | _ VRAM address | ||
- | | | | | ||
- | iiii ssss vvvv | ||
- | |||
- | The special instructions for animated tiles objects have the format: | ||
- | |||
- | | ||
- | | _ 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: | ||
- | |||
- | | ||
- | | ____ PPU register index | ||
- | | | _ Instruction list pointer | ||
- | | | | | ||
- | dd pp iiii | ||
- | |||
- | The special instructions for HDMA objects have the format: | ||
- | |||
- | | ||
- | | _ 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: | ||
- | |||
- | | ||
- | | _ Instruction list pointer | ||
- | | | | ||
- | aaaa iiii | ||
- | |||
- | The special instructions for palette FX objects have the format: | ||
- | |||
- | | ||
- | | _ 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.1731710786.txt.gz · Last modified: 2024/11/15 22:46 by felixwright