;;; General ;;; { Fire arc. Fireballs that move in a fixed arc Enemy ID: $E0BF Bank: $A6 Enemy projectiles: $BBC7: Fire arc body Parameter 0: Unused Parameter 1 low: Speed table index. Range 0..40h. Speed = v * 0.1000h px/frame Parameter 1 high: Arc radius Parameter 2 low: Direction 0: Clockwise 1: Anticlockwise Parameter 2 high: Inactive timer Properties must have process instructions bit set } ;;; Behaviour ;;; { } ;;; WRAM ;;; { $0FA8: Function { $9615: Inactive $9682: Active } $0FAA: Inactive timer $0FAC: Speed table index $0FAE: Arc radius $0FB0: Direction { 0: Clockwise 1: Anticlockwise } $0FB2: Inactive timer reset value $7E:7800: Enemy projectile index 0 $7E:7802: Enemy projectile index 1 $7E:7804: Enemy projectile index 2 $7E:7806: Enemy projectile index 3 $7E:7808: Enemy projectile index 4 $7E:7810: Enemy projectile 0 explosion reason $7E:7812: Enemy projectile 1 explosion reason $7E:7814: Enemy projectile 2 explosion reason $7E:7816: Enemy projectile 3 explosion reason $7E:7818: Enemy projectile 4 explosion reason { 0: No explosion 1: Rising 2: Falling } $7E:7820: Sprite object index 0 $7E:7822: Sprite object index 1 $7E:7824: Sprite object index 2 $7E:7826: Sprite object index 3 $7E:7830: Sprite object 0 explosion reason $7E:7832: Sprite object 1 explosion reason $7E:7834: Sprite object 2 explosion reason $7E:7836: Sprite object 3 explosion reason { 0: No explosion 1: Rising 2: Falling } $7E:8000: Subangle $7E:8002: Angle $7E:8006: Start angle $7E:8008: Subangle delta $7E:800A: Angle delta $7E:800C: Arc origin X position $7E:800E: Arc origin Y position $7E:8010: Body part spawn X position $7E:8012: Body part spawn Y position $7E:8014: Body index $7E:8016: Angle between body parts * 2 $7E:8018: Angle between body parts $7E:801C: Finish angle $7E:801E: Falling explosion angle $7E:8020: Rising explosion angle $7E:8026: Head explosion reason { 0: No explosion 1: Rising 2: Falling } $7E:8028: Graphics indices } ;;; Enemy population ;;; { ________________________________________ Enemy ID | __________________________________ X position | | _____________________________ Y position | | | _______________________ Initialisation parameter | | | | _________________ Properties. 2000h = process instructions | | | | | ____________ Extra properties | | | | | | ______ Parameter 1 | | | | | | | _ Parameter 2 | | | | | | | | ; Debug E0BF, 0100,0100, 0000, 2000,0000, 1010,2001 ; Room $B457. Pillars hall E0BF, 0190,00D0, 0000, 2000,0000, 4010,2001 E0BF, 02D0,00D0, 0000, 2000,0000, 4010,2001 } ;;; Enemy header ;;; { 0800 ; 0: Tile data size 9470 ; 2: Palette 0028 ; 4: Health 0032 ; 6: Damage 0008 ; 8: Width 0008 ; Ah: Height A6 ; Ch: Bank 00 ; Dh: Hurt AI time 0000 ; Eh: Cry 0000 ; 10h: Boss ID 94C4 ; 12h: Initialisation AI 0001 ; 14h: Number of parts 960E ; 18h: Main AI 8000 ; 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 804C ; 32h: Enemy shot AB9000 ; 36h: Tile data 05 ; 39h: Layer F464 ; 3Ah: Drop chances ($B4) EEC6 ; 3Ch: Vulnerabilities ($B4) E037 ; 3Eh: Enemy name ($B4) } ;;; Enemy vulnerabilities ;;; { ; Indestructible } ;;; Enemy drop chances ;;; { 00 ; Small health 00 ; Big health 00 ; Missiles FF ; 100.0% Nothing 00 ; Super missiles 00 ; Power bombs }