;;; General ;;; { Boulder. Falls or rolls when Samus gets near Enemy ID: $DFBF Bank: $A6 Enemy projectiles: None Parameter 0 low: Y proximity Parameter 1 low: Flag. If set, minimum distance from ground is increased from 2px to 5px Parameter 1 high: Direction 0: Right 1: Left 2: Left - destroy after bounce Parameter 2 low: X proximity Parameter 2 high: Distance to fall, or zero to roll Properties must have process instructions bit set } ;;; Behaviour ;;; { } ;;; WRAM ;;; { $0FA8: Function { $879A: Wait for Samus to get near $87ED: Falling $8832: Bounce - rising $888B: Bounce - falling $8942: Rolling $89FC: RTS } $0FAA: X speed table index * 100h $0FAC: Y speed table index * 100h $0FAE: Bounce index $0FB0: Direction { 0: Right 1: Left 2: Left - destroy after bounce } $7E:7800: X proximity $7E:7802: Minimum distance from ground $7E:7804: Previous enemy Y subposition $7E:7806: Previous enemy Y position $7E:7808: Spawn X position $7E:780A: Falling target Y position $7E:780C: Y proximity $7E:780E: Type { 0: Falling 1: Rolling } } ;;; Enemy population ;;; { ________________________________________ Enemy ID | __________________________________ X position | | _____________________________ Y position | | | _______________________ Initialisation parameter | | | | _________________ Properties. 2000h = process instructions, 800h = process whilst off-screen | | | | | ____________ Extra properties | | | | | | ______ Parameter 1 | | | | | | | _ Parameter 2 | | | | | | | | ; Debug DFBF, 0400,01B5, 0060, 2000,0000, 0101,20A0 ; Room $A1AD. Blue Brinstar boulder room DFBF, 0158,00C0, 0080, 2000,0000, 0200,A050 DFBF, 00F0,00C0, 0080, 2000,0000, 0200,A050 DFBF, 0090,00C0, 0080, 2000,0000, 0200,A050 ; Room $B6EE. Norfair rolling boulder shaft DFBF, 0150,0130, 0050, 2000,0000, 0000,0080 DFBF, 01B8,01D0, 0050, 2800,0000, 0100,0080 DFBF, 0128,0260, 0050, 2800,0000, 0000,0080 ; Room $D51E. Snail room quicksand items east DFBF, 0190,00A0, 0072, 2800,0000, 0200,7204 DFBF, 0150,00C0, 0098, 2800,0000, 0200,A204 DFBF, 00D0,00D0, 00C0, 2800,0000, 0200,A204 ; Room $D4EF. Snail room quicksand items west DFBF, 01D0,0090, 0050, 2800,0000, 0200,6204 DFBF, 00B0,0140, 0080, 2800,0000, 0200,A004 DFBF, 00F0,0160, 00F0, 2800,0000, 0200,F004 DFBF, 0030,0090, 0040, 2800,0000, 0200,5204 } ;;; Enemy header ;;; { 1000 ; 0: Tile data size 8687 ; 2: Palette 0014 ; 4: Health 0028 ; 6: Damage 0010 ; 8: Width 0010 ; Ah: Height A6 ; Ch: Bank 00 ; Dh: Hurt AI time 0000 ; Eh: Cry 0000 ; 10h: Boss ID 86F5 ; 12h: Initialisation AI 0001 ; 14h: Number of parts 8793 ; 18h: Main AI 800F ; 1Ah: Grapple AI 804C ; 1Ch: Hurt AI 8041 ; 1Eh: Frozen AI 0000 ; 20h: Time is frozen AI 0000 ; 22h: Death animation 0000 ; 28h: Power bomb reaction 0000 ; 2Ah: Sidehopper variant index 8023 ; 30h: Enemy touch 802D ; 32h: Enemy shot AB9C00 ; 36h: Tile data 05 ; 39h: Layer F46A ; 3Ah: Drop chances ($B4) EEDC ; 3Ch: Vulnerabilities ($B4) E0B5 ; 3Eh: Enemy name ($B4) } ;;; Enemy vulnerabilities ;;; { ; Vulnerability format: ; v = fddddddd ; If v = FFh: ; Freeze, no damage ; Else: ; d: Damage multiplier * 2 ; f: Does not freeze 00 ; Power 00 ; Wave 00 ; Ice 00 ; Ice + wave 00 ; Spazer 00 ; Spazer + wave 00 ; Spazer + ice 00 ; Spazer + ice + wave 00 ; Plasma 00 ; Plasma + wave 00 ; Plasma + ice 00 ; Plasma + ice + wave 00 ; Missile 02 ; Super missile 00 ; Bomb 00 ; Power bomb 00 ; Speed booster 00 ; Shinespark 00 ; Screw attack 00 ; Charged beam 02 ; Pseudo screw attack 02 ; Unused } ;;; Enemy drop chances ;;; { 00 ; Small health 00 ; Big health 00 ; Missiles FF ; 100.0% Nothing 00 ; Super missiles 00 ; Power bombs }