; $CA01: Palette stuff? { $A7:CA01 dw 3800, 7FFF, 7EC0, 6DE0, 54E0, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000, 0000 } ; Unknown (1 user) - Seems like enemy instructions { $A7:CA41 db 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, DF, 02, D7, 01, AC, 00, BB, 5E, B3, 3D, 2E, 29, 86, 14, B1, 0B, FB, 48, FF, 7F, 00, 00, FF, 7F, E5, 44, FF, 7F, 00, 00, 03, 20, B1, 0B, A9, 1E, 45, 01, BB, 5E, B3, 3D, 2E, 29, 86, 14, 18, 63, E7, 1C, 84, 10, 00, 00, FF, 7F, DF, 02, 1F, 00, 00, 00, 03, 20, BC, 72, FB, 48, 16, 18, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 00, 00, B2, 72, C7, 71, 03, 4D, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 00, 00, F4, 3E, 2E, 26, 68, 0D, 94, 3E, CE, 25, 08, 0D, 84, 14, 94, 6E, CE, 55, 08, 3D, 84, 2C, A9, 1E, B1, 0B, FF, 7F, 00, 00, 00, 00, 46, 12, 45, 01, C0, 00, 52, 36, 8C, 1D, C6, 04, 84, 04, 31, 62, 6B, 49, A5, 30, 21, 20, 15, 00, 5B, 02, FF, 7F, 00, 00, 00, 00, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, 18, 63, FF, 7F, 00, 00, 0E, 00, DC, 25, 38, 15, 71, 00, 30, 00, 79, 1D, 17, 11, B4, 08, 92, 00, 1F, 42, 79, 1D, F5, 0C, 93, 04, 1D, 1C, 19, 0C, 13, 00, 0C, 00, 1C, 2A, 57, 19, 70, 00, 2E, 00, 99, 21, 36, 11, D3, 08, 91, 00, 5F, 4A, 99, 1D, F4, 0C, B1, 04, 1D, 20, 18, 0C, 12, 00, 0A, 00, 5C, 2E, 96, 1D, 8E, 00, 4C, 00, D8, 25, 55, 15, F1, 08, AF, 00, 9F, 52, D8, 21, 13, 11, D0, 04, 1D, 24, 17, 10, 11, 00, 08, 00, 7C, 32, B5, 21, 8C, 00, 4A, 00, F7, 29, 74, 15, 10, 0D, AE, 00, DF, 5A, F7, 25, 31, 11, CE, 04, 1D, 28, 16, 10, 0F, 00, 06, 00, BB, 36, D4, 21, 8B, 00, 48, 00, 17, 2E, 93, 19, 0F, 0D, CC, 00, 1F, 63, 17, 2A, 50, 11, ED, 04, 1D, 2C, 16, 10, 0E, 00, 04, 00, FB, 3A, F3, 25, A9, 00, 46, 00, 56, 32, B2, 1D, 2D, 0D, EB, 00, 5F, 6B, 56, 2E, 6F, 15, EB, 04, 1D, 30, 15, 14, 0C, 00, 02, 00, 3B, 3F, 12, 2A, A7, 00, 44, 00, 75, 36, F1, 1D, 4C, 0D, E9, 04, BF, 77, 75, 32, 8E, 15, 0A, 05, 1D, 34, 14, 14, 0B, 00, 00, 00, 7B, 47, 52, 2E, C6, 00, 63, 00, B5, 3A, 10, 22, 6B, 11, 08, 05, FF, 7F, B5, 36, AD, 19, 29, 09, 1D, 38, 14, 18, 0A, 00, 01, 00, DD, DE, 2F, 81, 01, 00, E7, DE, 2F, 81, 01, 00, F1, DE, 2F, 81, 0A, 00, 05, DF, 0A, 00, 0F, DF, 01, 00, 19, DF, 8A, 80, ED, CE, 8A, 80, 3F, D0, 2F, 81 } ; Unknown { $A7:CC7B db 01, 00, FB, DE, 2F, 81, 01, 00, 19, DF, 0A, 00, 0F, DF, 8A, 80, 76, D0, ED, 80, 7B, CC, 01, 00, 19, DF, 0A, 00, 0F, DF, ED, 80, 7B, CC, 01, 00, 23, DF, 8A, 80, ED, CE, 2F, 81 $A7:CCAD db 01, 00, 73, DF, 2F, 81, 01, 00, 4B, DF, 2F, 81, 01, 00, 5F, DF, 2F, 81, 01, 00, 37, DF, 2F, 81, 01, 00, 55, DF $A7:CCCB db 01, 00, 41, DF, 2F, 81 $A7:CCD7 db 08, 00, B3, DF, 08, 00, C5, DF, 08, 00, D7, DF, 08, 00, C5, DF, ED, 80, D7, CC, 05, 00, FD, DF, 05, 00, F3, DF, 8A, 80, 5E, CF, 01, 00, E9, DF, 2F, 81, 05, CD, 13, CD $A7:CD03 db 2F, CD, 05, 00, B4, 00, 20, 00, 20, 00, 20, 00, 20, 00, 20, 00, 03, 00, B4, 00, 10, 00, 10, 00, 10, 00 } ; Unknown (1 user) { $A7:CD2F db 07, 00, B4, 00, 10, 00, 40, 00, 20, 00, 40, 00, 20, 00, 10, 00, 20, 00, 3C, 00 } ; Unknown { $A7:CD49 db 3C, 00 } ; Unknown (1 user) { $A7:CD4F db 3C, 00 } ; ?? ; left = slow, mid, mid, mid ; right = fast, slow, fast, slow ; The main RNG thing that makes Phantoon choose between fast, mid and slow? { 02D0, 003C, 0168, 02D0 $A7:CD53 dw 02D0 ; 0 slow dw 003C ; 1 fast dw 0168 ; 2 mid dw 02D0 ; 3 slow dw 0168 ; 4 mid dw 003C ; 5 fast dw 0168 ; 6 mid dw 02D0 ; 7 slow } ; Unknown (1 user) { $A7:CD63 db 3C, 00 $A7:CD6B db 1E, 00 $A7:CD73 db 00, 06, 00, 00, 00, 10, 00, 00, 02, 00, 07, 00, 00, 00, 00, 06, 00, 00, 00, 10, 00, 00, FE, FF, F9, FF, 00, 00 $A7:CD9B db 40, 00 } ; This is set to $106E and $14 during Phantoon AI { $A7:CD9D db 00, 0C } ; Uknown (used in Phantoon AI) { $A7:CD9F db 00, 01, 00, F0 } ; This is set to $7E0016 during phantoon init (2 users) { $A7:CDA3 db 08 } ; Unknown (2 users) { $A7:CDA4 db 00, 06, 06, 08, 08, 06, 08, 06, 08, 01 } ; Unknown { $A7:CDBD db 88, 00, D0, 00, 60, 00 } ; Unknown (1 user) { $A7:CDE5 db D1, 01, 58, 00, 80, 00 $A7:CDED db 79, 00, 7A, 00, 7B, 00 } ; $CDF3: Initialisation AI - enemy $E4BF (Phantoon) { ; Set 7E2000 - 7E2FFF to #$0038 $A7:CDF3 A2 FE 0F LDX #$0FFE $A7:CDF6 A9 38 03 LDA #$0338 $A7:CDF9 9F 00 20 7E STA $7E2000,x[$7E:2FFE] $A7:CDFD CA DEX $A7:CDFE CA DEX $A7:CDFF 10 F8 BPL $F8 [$CDF9] ; Clear 7E9000 - 7E97FF $A7:CE01 A2 FE 07 LDX #$07FE $A7:CE04 A9 00 00 LDA #$0000 $A7:CE07 9F 00 90 7E STA $7E9000,x[$7E:97FE] $A7:CE0B CA DEX $A7:CE0C CA DEX $A7:CE0D 10 F8 BPL $F8 [$CE07] $A7:CE0F A2 1E 00 LDX #$001E $A7:CE12 A9 00 00 LDA #$0000 ; Clear 7EC000 - 7EC2FF $A7:CE15 9F E0 C2 7E STA $7EC2E0,x[$7E:C2FE] $A7:CE19 CA DEX $A7:CE1A CA DEX $A7:CE1B 10 F8 BPL $F8 [$CE15] ; ?? $A7:CE1D A9 60 03 LDA #$0360 $A7:CE20 8F 9A 17 00 STA $00179A[$7E:179A] ; Disable and clear automap. $A7:CE24 22 E2 A7 90 JSL $90A7E2[$90:A7E2] ; Set up AI variables to 0078 $A7:CE28 AE 54 0E LDX $0E54 [$7E:0E54] $A7:CE2B A9 78 00 LDA #$0078 $A7:CE2E 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:CE31 9E A8 0F STZ $0FA8,x[$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:CE34 9E AA 0F STZ $0FAA,x[$7E:0FAA] ; ?? $A7:CE37 A9 00 00 LDA #$0000 $A7:CE3A 8F 32 90 7E STA $7E9032[$7E:9032] ; Clear AI variables (Speed) $A7:CE3E 9C F4 0F STZ $0FF4 [$7E:0FF4] ; Zero when Phantoon able to move? $A7:CE41 9C F6 0F STZ $0FF6 [$7E:0FF6] ; Set bit in Props $A7:CE44 AD 86 0F LDA $0F86 [$7E:0F86] $A7:CE47 09 00 04 ORA #$0400 $A7:CE4A 8D 86 0F STA $0F86 [$7E:0F86] ; Spawn HDMA object $A7:CE4D 22 35 84 88 JSL $888435[$88:8435] $A7:CE51 dx 01, 14, CE96 } ; $CE55: Initialisation AI - enemy $E4FF/$E53F/$E57F (Phantoon) { $A7:CE55 AE 54 0E LDX $0E54 [$7E:0E54] ; Enemy OAM $A7:CE58 A9 4D 80 LDA #$804D $A7:CE5B 9D 8E 0F STA $0F8E,x[$7E:0F8E] ; Instruction delay timer $A7:CE5E A9 01 00 LDA #$0001 $A7:CE61 9D 94 0F STA $0F94,x[$7E:0F94] ; ?? Some kind of counter? $A7:CE64 9E 90 0F STZ $0F90,x[$7E:0F90] ; Copy palette slot from main phantoon? $A7:CE67 AD 96 0F LDA $0F96 [$7E:0F96] $A7:CE6A 9D 96 0F STA $0F96,x[$7E:0F96] ; Copy VRAM index from main phantoon? $A7:CE6D AD 98 0F LDA $0F98 [$7E:0F98] $A7:CE70 9D 98 0F STA $0F98,x[$7E:0F98] ; Index array below (from 0-7?) with AI var, store in PLM var $A7:CE73 BD B6 0F LDA $0FB6,x[$7E:0FB6] $A7:CE76 0A ASL A $A7:CE77 A8 TAY $A7:CE78 B9 8E CE LDA $CE8E,y[$A7:CE8E] $A7:CE7B 9D 92 0F STA $0F92,x[$7E:0F92] ; Enemy instructions ; Main AI script $A7:CE7E A9 A9 D4 LDA #$D4A9 $A7:CE81 9D B2 0F STA $0FB2,x[$7E:0FB2] ; Specifically 4th phantoon, AI (speed) $A7:CE84 9C 74 10 STZ $1074 [$7E:1074] ; Specifically 4th phantoon, AI (part of) $A7:CE87 A9 FF FF LDA #$FFFF $A7:CE8A 8D 6C 10 STA $106C [$7E:106C] $A7:CE8D 6B RTL } ; $CE8E: Data that's stored in $0F92 ; Enemy instructions { $A7:CE8E db 41, CC, 7B, CC, D7, CC, F7, CC } ; $CE8E: Data that's used when spawning DMA object (Phantoon) { $A7:CE96 db 55, 86, A7, 01, 00, 51, CD, 70, 85, 49, E4, 88, 82, 86, 69, 85 } ; $CEA6: Main AI - enemy $E4BF (Phantoon) { $A7:CEA6 AE 54 0E LDX $0E54 [$7E:0E54] ; Does like.. nothing? $A7:CEA9 20 0C CF JSR $CF0C [$A7:CF0C] $A7:CEAC F4 B1 CE PEA $CEB1 $A7:CEAF 7C B2 0F JMP ($0FB2,x)[$A7:D4A9] ; If main Phantoon, copy coordinates to the other phantoons $A7:CEB2 8A TXA $A7:CEB3 D0 37 BNE $37 [$CEEC] $A7:CEB5 BD 7A 0F LDA $0F7A,x[$7E:0F7A] $A7:CEB8 9D BA 0F STA $0FBA,x[$7E:0FBA] $A7:CEBB 9D FA 0F STA $0FFA,x[$7E:0FFA] $A7:CEBE 9D 3A 10 STA $103A,x[$7E:103A] $A7:CEC1 BD 7E 0F LDA $0F7E,x[$7E:0F7E] $A7:CEC4 9D BE 0F STA $0FBE,x[$7E:0FBE] $A7:CEC7 9D FE 0F STA $0FFE,x[$7E:0FFE] $A7:CECA 9D 3E 10 STA $103E,x[$7E:103E] $A7:CECD AD F4 0F LDA $0FF4 [$7E:0FF4] ; Zero when Phantoon able to move? $A7:CED0 D0 1A BNE $1A [$CEEC] $A7:CED2 AD 11 09 LDA $0911 [$7E:0911] $A7:CED5 38 SEC $A7:CED6 FD 7A 0F SBC $0F7A,x[$7E:0F7A] $A7:CED9 38 SEC $A7:CEDA E9 D8 FF SBC #$FFD8 $A7:CEDD 85 B5 STA $B5 [$7E:00B5] $A7:CEDF AD 15 09 LDA $0915 [$7E:0915] $A7:CEE2 38 SEC $A7:CEE3 FD 7E 0F SBC $0F7E,x[$7E:0F7E] $A7:CEE6 38 SEC $A7:CEE7 E9 D8 FF SBC #$FFD8 $A7:CEEA 85 B7 STA $B7 [$7E:00B7] $A7:CEEC 6B RTL } ; $CEED: Not run? { $A7:CEED AF 32 90 7E LDA $7E9032[$7E:9032] $A7:CEF1 0A ASL A $A7:CEF2 A8 TAY $A7:CEF3 B9 ED CD LDA $CDED,y[$A7:CDED] $A7:CEF6 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:CEFA AF 32 90 7E LDA $7E9032[$7E:9032] $A7:CEFE 1A INC A $A7:CEFF C9 03 00 CMP #$0003 $A7:CF02 30 03 BMI $03 [$CF07] $A7:CF04 A9 00 00 LDA #$0000 $A7:CF07 8F 32 90 7E STA $7E9032[$7E:9032] $A7:CF0B 60 RTS } ; $CF0C: Debug code? Only runs on main phantoon { $A7:CF0C 8A TXA $A7:CF0D D0 17 BNE $17 [$CF26] $A7:CF0F A5 8F LDA $8F [$7E:008F] $A7:CF11 89 00 40 BIT #$4000 $A7:CF14 F0 10 BEQ $10 [$CF26] $A7:CF16 BD 30 90 LDA $9030,x[$A7:9030] $A7:CF19 D0 08 BNE $08 [$CF23] ; ?? $A7:CF23 9E 30 90 STZ $9030,x[$A7:9030] $A7:CF26 60 RTS } ; $CF27 - Set up things before starting the fight?? (2 callers) ; Counts down $106E[0x2] and then sets curry? { $A7:CF27 AD 70 10 LDA $1070 [$7E:1070] ; set if we started the fight? $A7:CF2A D0 20 BNE $20 [$CF4C] $A7:CF2C A5 14 LDA $14 [$7E:0014] $A7:CF2E 29 00 FF AND #$FF00 $A7:CF31 EB XBA $A7:CF32 85 16 STA $16 [$7E:0016] $A7:CF34 AD 6E 10 LDA $106E [$7E:106E] ; Counter to start the fight? $A7:CF37 18 CLC $A7:CF38 65 12 ADC $12 [$7E:0012] $A7:CF3A 8D 6E 10 STA $106E [$7E:106E] ; Counter to start the fight? $A7:CF3D 29 00 FF AND #$FF00 $A7:CF40 EB XBA $A7:CF41 C5 16 CMP $16 [$7E:0016] $A7:CF43 30 17 BMI $17 [$CF5C] $A7:CF45 A5 14 LDA $14 [$7E:0014] $A7:CF47 8D 6E 10 STA $106E [$7E:106E] ; Counter to start the fight? $A7:CF4A 80 10 BRA $10 [$CF5C] $A7:CF4C AD 6E 10 LDA $106E [$7E:106E] ; Counter to start the fight? $A7:CF4F 38 SEC $A7:CF50 E5 12 SBC $12 [$7E:0012] $A7:CF52 8D 6E 10 STA $106E [$7E:106E] ; Counter to start the fight? $A7:CF55 B0 05 BCS $05 [$CF5C] $A7:CF57 9C 6E 10 STZ $106E [$7E:106E] ; Counter to start the fight? $A7:CF5A 38 SEC $A7:CF5B 60 RTS $A7:CF5C 18 CLC $A7:CF5D 60 RTS } ; $CF5E: Never run? { $A7:CF5E A9 00 00 LDA #$0000 $A7:CF61 A0 29 9C LDY #$9C29 $A7:CF64 22 27 80 86 JSL $868027[$86:8027] $A7:CF68 A9 1D 00 LDA #$001D $A7:CF6B 22 4D 91 80 JSL $80914D[$80:914D] $A7:CF6F 60 RTS } ; $CF70 - Spawn 8 blue fire when Phantoon opens up { $A7:CF70 A0 07 00 LDY #$0007 $A7:CF73 5A PHY $A7:CF74 98 TYA $A7:CF75 09 00 06 ORA #$0600 $A7:CF78 A0 29 9C LDY #$9C29 ; Spawn enemy projectile $A7:CF7B 22 27 80 86 JSL $868027[$86:8027] $A7:CF7F 7A PLY $A7:CF80 88 DEY $A7:CF81 10 F0 BPL $F0 [$CF73] $A7:CF83 A9 28 00 LDA #$0028 $A7:CF86 22 4D 91 80 JSL $80914D[$80:914D] $A7:CF8A 60 RTS } ; $CF8B - Unknown (1 caller) ; Spawns stuff too, similar to above? { $A7:CF8B A8 TAY ; Seems to me this is 0-7? $A7:CF8C B9 C2 CF LDA $CFC2,y[$A7:CFC4] $A7:CF8F 29 FF 00 AND #$00FF $A7:CF92 A8 TAY $A7:CF93 A9 07 00 LDA #$0007 $A7:CF96 85 12 STA $12 [$7E:0012] $A7:CF98 A9 10 00 LDA #$0010 $A7:CF9B 85 14 STA $14 [$7E:0014] $A7:CF9D 98 TYA $A7:CF9E 09 00 04 ORA #$0400 $A7:CFA1 05 14 ORA $14 [$7E:0014] $A7:CFA3 5A PHY $A7:CFA4 A0 29 9C LDY #$9C29 $A7:CFA7 22 27 80 86 JSL $868027[$86:8027] $A7:CFAB 7A PLY $A7:CFAC C8 INY $A7:CFAD C0 09 00 CPY #$0009 $A7:CFB0 30 03 BMI $03 [$CFB5] $A7:CFB2 A0 00 00 LDY #$0000 $A7:CFB5 A5 14 LDA $14 [$7E:0014] $A7:CFB7 18 CLC $A7:CFB8 69 10 00 ADC #$0010 $A7:CFBB 85 14 STA $14 [$7E:0014] $A7:CFBD C6 12 DEC $12 [$7E:0012] $A7:CFBF 10 DC BPL $DC [$CF9D] $A7:CFC1 60 RTS } ; $CFC2 - Some data used above? Missing some here, but should be 8 bytes. { $A7:CFC4 db 00, 07 $A7:CFC9 db 03 } ; $CFCA: Unknown (2 callers) ; Called when Phantoon is moving around, before opening up ; Randomizes $1068 (0-3). Does other stuff obv. { $A7:CFCA DE 6A 10 DEC $106A,x[$7E:106A] $A7:CFCD F0 02 BEQ $02 [$CFD1] $A7:CFCF 10 6D BPL $6D [$D03E] $A7:CFD1 BD 6C 10 LDA $106C,x[$7E:106C] $A7:CFD4 10 26 BPL $26 [$CFFC] $A7:CFD6 22 11 81 80 JSL $808111[$80:8111] $A7:CFDA 29 03 00 AND #$0003 $A7:CFDD 9D 68 10 STA $1068,x[$7E:1068] $A7:CFE0 0A ASL A $A7:CFE1 A8 TAY $A7:CFE2 B9 FD CC LDA $CCFD,y[$A7:CD03] $A7:CFE5 A8 TAY $A7:CFE6 B9 00 00 LDA $0000,y[$A7:CD2F] $A7:CFE9 9D 6C 10 STA $106C,x[$7E:106C] $A7:CFEC 0A ASL A $A7:CFED 85 12 STA $12 [$7E:0012] $A7:CFEF 98 TYA $A7:CFF0 18 CLC $A7:CFF1 65 12 ADC $12 [$7E:0012] $A7:CFF3 A8 TAY $A7:CFF4 B9 02 00 LDA $0002,y[$A7:CD3F] $A7:CFF7 9D 6A 10 STA $106A,x[$7E:106A] $A7:CFFA 80 42 BRA $42 [$D03E] $A7:CFFC DE 6C 10 DEC $106C,x[$7E:106C] $A7:CFFF F0 02 BEQ $02 [$D003] $A7:D001 10 17 BPL $17 [$D01A] $A7:D003 A9 FF FF LDA #$FFFF $A7:D006 9D 6C 10 STA $106C,x[$7E:106C] $A7:D009 BD 68 10 LDA $1068,x[$7E:1068] $A7:D00C 0A ASL A $A7:D00D A8 TAY $A7:D00E B9 FD CC LDA $CCFD,y[$A7:CD03] $A7:D011 A8 TAY $A7:D012 B9 02 00 LDA $0002,y[$A7:CD31] $A7:D015 9D 6A 10 STA $106A,x[$7E:106A] $A7:D018 80 18 BRA $18 [$D032] $A7:D01A BD 6C 10 LDA $106C,x[$7E:106C] $A7:D01D 0A ASL A $A7:D01E 85 12 STA $12 [$7E:0012] $A7:D020 BD 68 10 LDA $1068,x[$7E:1068] $A7:D023 0A ASL A $A7:D024 A8 TAY $A7:D025 B9 FD CC LDA $CCFD,y[$A7:CD03] $A7:D028 18 CLC $A7:D029 65 12 ADC $12 [$7E:0012] $A7:D02B A8 TAY $A7:D02C B9 02 00 LDA $0002,y[$A7:CD3D] $A7:D02F 9D 6A 10 STA $106A,x[$7E:106A] $A7:D032 A9 01 00 LDA #$0001 $A7:D035 9D 54 10 STA $1054,x[$7E:1054] $A7:D038 A9 EB CC LDA #$CCEB $A7:D03B 9D 52 10 STA $1052,x[$7E:1052] $A7:D03E 60 RTS } ; $D03F: Enemy Instruction - Run after Phantoon opens up? { $A7:D03F 9C 28 10 STZ $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D042 A9 01 00 LDA #$0001 $A7:D045 8D 94 0F STA $0F94 [$7E:0F94] $A7:D048 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D04B A9 4D CC LDA #$CC4D $A7:D04E 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D051 A9 9D CC LDA #$CC9D $A7:D054 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D057 AD 86 0F LDA $0F86 [$7E:0F86] $A7:D05A 29 FF FB AND #$FBFF $A7:D05D 8D 86 0F STA $0F86 [$7E:0F86] ; This seems to decide how long the eye is opened. $A7:D060 22 11 81 80 JSL $808111[$80:8111] $A7:D064 29 07 00 AND #$0007 $A7:D067 0A ASL A $A7:D068 A8 TAY $A7:D069 B9 41 CD LDA $CD41,y[$A7:CD4F] ; 3C 1E 0F 1E 3C 1E 0F 3C $A7:D06C 8D B0 0F STA $0FB0 [$7E:0FB0] ; Counter $A7:D06F A9 0D D6 LDA #$D60D $A7:D072 8D B2 0F STA $0FB2 [$7E:0FB2] $A7:D075 60 RTS } ; $D076: Unknown (1 caller) ; Sets the Fast/Mid/Slow pattern on phase 2+? { $A7:D076 A9 3C 00 LDA #$003C $A7:D079 8D B0 0F STA $0FB0 [$7E:0FB0] ; Counter $A7:D07C 22 11 81 80 JSL $808111[$80:8111] $A7:D080 29 07 00 AND #$0007 $A7:D083 0A ASL A $A7:D084 A8 TAY $A7:D085 B9 53 CD LDA $CD53,y[$A7:CD5B] $A7:D088 8D E8 0F STA $0FE8 [$7E:0FE8] ; Fast/Mid/Slow Counter $A7:D08B AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:D08E 89 01 00 BIT #$0001 $A7:D091 D0 25 BNE $25 [$D0B8] $A7:D093 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D096 F0 0F BEQ $0F [$D0A7] $A7:D098 AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D09B 1A INC A $A7:D09C 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D09F C9 16 02 CMP #$0216 $A7:D0A2 30 03 BMI $03 [$D0A7] $A7:D0A7 A9 01 00 LDA #$0001 $A7:D0AA 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D0AD 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D0B0 9C AE 0F STZ $0FAE [$7E:0FAE] $A7:D0B3 9C EC 0F STZ $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D0B6 80 23 BRA $23 [$D0DB] $A7:D0B8 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D0BB D0 0F BNE $0F [$D0CC] $A7:D0BD AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D0C0 3A DEC A $A7:D0C1 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D0C4 10 06 BPL $06 [$D0CC] $A7:D0CC 9C AC 0F STZ $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D0CF 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D0D2 9C AE 0F STZ $0FAE [$7E:0FAE] $A7:D0D5 A9 01 00 LDA #$0001 $A7:D0D8 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D0DB AD B6 0F LDA $0FB6 [$7E:0FB6] $A7:D0DE D0 07 BNE $07 [$D0E7] $A7:D0E0 A9 E7 D5 LDA #$D5E7 $A7:D0E3 8D B2 0F STA $0FB2 [$7E:0FB2] $A7:D0E6 60 RTS $A7:D0E7 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D0EA A9 2A D8 LDA #$D82A $A7:D0ED 8D B2 0F STA $0FB2 [$7E:0FB2] $A7:D0F0 60 RTS } ; $D0F1: Unknown (2 callers) ; Called when Phantoon is moving around, before opening up { $A7:D0F1 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D0F4 D0 0F BNE $0F [$D105] $A7:D0F6 20 14 D1 JSR $D114 [$A7:D114] $A7:D0F9 A0 D2 E3 LDY #$E3D2 $A7:D0FC A9 16 02 LDA #$0216 $A7:D0FF 85 14 STA $14 [$7E:0014] $A7:D101 20 15 D2 JSR $D215 [$A7:D215] $A7:D104 60 RTS $A7:D105 20 93 D1 JSR $D193 [$A7:D193] $A7:D108 A0 D2 E3 LDY #$E3D2 $A7:D10B A9 15 02 LDA #$0215 $A7:D10E 85 14 STA $14 [$7E:0014] $A7:D110 20 71 D2 JSR $D271 [$A7:D271] $A7:D113 60 RTS } ; $D114: Unknown (1 caller - right above) ; Called when Phantoon is moving around, before opening up { $A7:D114 AD AE 0F LDA $0FAE [$7E:0FAE] $A7:D117 F0 07 BEQ $07 [$D120] $A7:D119 89 01 00 BIT #$0001 $A7:D11C D0 28 BNE $28 [$D146] $A7:D11E 80 4B BRA $4B [$D16B] $A7:D120 AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D123 18 CLC $A7:D124 6D 73 CD ADC $CD73 [$A7:CD73] $A7:D127 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D12A AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D12D 6D 75 CD ADC $CD75 [$A7:CD75] $A7:D130 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D133 CD 7B CD CMP $CD7B [$A7:CD7B] $A7:D136 30 0D BMI $0D [$D145] $A7:D138 AD 7B CD LDA $CD7B [$A7:CD7B] $A7:D13B 3A DEC A $A7:D13C 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D13F 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D142 EE AE 0F INC $0FAE [$7E:0FAE] $A7:D145 60 RTS $A7:D146 AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D149 18 CLC $A7:D14A 6D 77 CD ADC $CD77 [$A7:CD77] $A7:D14D 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D150 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D153 6D 79 CD ADC $CD79 [$A7:CD79] $A7:D156 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D159 CD 7D CD CMP $CD7D [$A7:CD7D] $A7:D15C 30 0C BMI $0C [$D16A] $A7:D15E AD 7D CD LDA $CD7D [$A7:CD7D] $A7:D161 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D164 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D167 EE AE 0F INC $0FAE [$7E:0FAE] $A7:D16A 60 RTS $A7:D16B AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D16E 38 SEC $A7:D16F ED 77 CD SBC $CD77 [$A7:CD77] $A7:D172 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D175 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D178 ED 79 CD SBC $CD79 [$A7:CD79] $A7:D17B 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D17E CD 7F CD CMP $CD7F [$A7:CD7F] $A7:D181 F0 02 BEQ $02 [$D185] $A7:D183 10 0D BPL $0D [$D192] $A7:D185 AD 7F CD LDA $CD7F [$A7:CD7F] $A7:D188 1A INC A $A7:D189 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D18C 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D18F 9C AE 0F STZ $0FAE [$7E:0FAE] $A7:D192 60 RTS } ; $D193: Unknown (1 caller - also called above) { $A7:D193 AD AE 0F LDA $0FAE [$7E:0FAE] $A7:D196 F0 07 BEQ $07 [$D19F] $A7:D198 89 01 00 BIT #$0001 $A7:D19B D0 2B BNE $2B [$D1C8] $A7:D19D 80 51 BRA $51 [$D1F0] $A7:D19F AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D1A2 38 SEC $A7:D1A3 ED 81 CD SBC $CD81 [$A7:CD81] $A7:D1A6 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D1A9 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1AC ED 83 CD SBC $CD83 [$A7:CD83] $A7:D1AF 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1B2 CD 89 CD CMP $CD89 [$A7:CD89] $A7:D1B5 F0 02 BEQ $02 [$D1B9] $A7:D1B7 10 0E BPL $0E [$D1C7] $A7:D1B9 AD 89 CD LDA $CD89 [$A7:CD89] $A7:D1BC 1A INC A $A7:D1BD 1A INC A $A7:D1BE 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1C1 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D1C4 EE AE 0F INC $0FAE [$7E:0FAE] $A7:D1C7 60 RTS $A7:D1C8 AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D1CB 38 SEC $A7:D1CC ED 85 CD SBC $CD85 [$A7:CD85] $A7:D1CF 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D1D2 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1D5 ED 87 CD SBC $CD87 [$A7:CD87] $A7:D1D8 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1DB CD 8B CD CMP $CD8B [$A7:CD8B] $A7:D1DE F0 02 BEQ $02 [$D1E2] $A7:D1E0 10 0D BPL $0D [$D1EF] $A7:D1E2 AD 8B CD LDA $CD8B [$A7:CD8B] $A7:D1E5 1A INC A $A7:D1E6 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1E9 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D1EC EE AE 0F INC $0FAE [$7E:0FAE] $A7:D1EF 60 RTS $A7:D1F0 AD AA 0F LDA $0FAA [$7E:0FAA] $A7:D1F3 18 CLC $A7:D1F4 6D 85 CD ADC $CD85 [$A7:CD85] $A7:D1F7 8D AA 0F STA $0FAA [$7E:0FAA] $A7:D1FA AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D1FD 6D 87 CD ADC $CD87 [$A7:CD87] $A7:D200 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D203 CD 8D CD CMP $CD8D [$A7:CD8D] $A7:D206 30 0C BMI $0C [$D214] $A7:D208 AD 8D CD LDA $CD8D [$A7:CD8D] $A7:D20B 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D20E 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D211 9C AE 0F STZ $0FAE [$7E:0FAE] $A7:D214 60 RTS } ; $D215: Move Phantoon (updates his coordinates) { $A7:D215 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D218 85 16 STA $16 [$7E:0016] $A7:D21A D0 01 BNE $01 [$D21D] $A7:D21D 5A PHY $A7:D21E AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D221 0A ASL A $A7:D222 85 12 STA $12 [$7E:0012] $A7:D224 98 TYA $A7:D225 18 CLC $A7:D226 65 12 ADC $12 [$7E:0012] $A7:D228 A8 TAY ; Update X coordinates $A7:D229 B9 00 00 LDA $0000,y[$A7:E4BE] $A7:D22C 29 FF 00 AND #$00FF $A7:D22F 89 80 00 BIT #$0080 $A7:D232 F0 03 BEQ $03 [$D237] $A7:D234 09 00 FF ORA #$FF00 $A7:D237 85 12 STA $12 [$7E:0012] $A7:D239 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7:D23C 18 CLC $A7:D23D 65 12 ADC $12 [$7E:0012] $A7:D23F 8D 7A 0F STA $0F7A [$7E:0F7A] ; Update Y coordinates $A7:D242 B9 01 00 LDA $0001,y[$A7:E4BF] $A7:D245 29 FF 00 AND #$00FF $A7:D248 89 80 00 BIT #$0080 $A7:D24B F0 03 BEQ $03 [$D250] $A7:D24D 09 00 FF ORA #$FF00 $A7:D250 85 12 STA $12 [$7E:0012] $A7:D252 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7:D255 18 CLC $A7:D256 65 12 ADC $12 [$7E:0012] $A7:D258 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D25B AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D25E 1A INC A $A7:D25F 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D262 C5 14 CMP $14 [$7E:0014] $A7:D264 30 03 BMI $03 [$D269] $A7:D266 9C A8 0F STZ $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D269 7A PLY $A7:D26A C6 16 DEC $16 [$7E:0016] $A7:D26C F0 02 BEQ $02 [$D270] $A7:D26E 80 AD BRA $AD [$D21D] $A7:D270 60 RTS } ; $D271: Unknown (1 caller) { $A7:D271 AD AC 0F LDA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D274 49 FF FF EOR #$FFFF $A7:D277 1A INC A $A7:D278 85 16 STA $16 [$7E:0016] $A7:D27A D0 01 BNE $01 [$D27D] $A7:D27C 60 RTS $A7:D27D 5A PHY $A7:D27E AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D281 0A ASL A $A7:D282 85 12 STA $12 [$7E:0012] $A7:D284 98 TYA $A7:D285 18 CLC $A7:D286 65 12 ADC $12 [$7E:0012] $A7:D288 A8 TAY $A7:D289 B9 00 00 LDA $0000,y[$A7:E7FC] $A7:D28C 29 FF 00 AND #$00FF $A7:D28F 89 80 00 BIT #$0080 $A7:D292 F0 03 BEQ $03 [$D297] $A7:D294 09 00 FF ORA #$FF00 $A7:D297 85 12 STA $12 [$7E:0012] $A7:D299 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7:D29C 38 SEC $A7:D29D E5 12 SBC $12 [$7E:0012] $A7:D29F 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:D2A2 B9 01 00 LDA $0001,y[$A7:E7FD] $A7:D2A5 29 FF 00 AND #$00FF $A7:D2A8 89 80 00 BIT #$0080 $A7:D2AB F0 03 BEQ $03 [$D2B0] $A7:D2AD 09 00 FF ORA #$FF00 $A7:D2B0 85 12 STA $12 [$7E:0012] $A7:D2B2 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7:D2B5 38 SEC $A7:D2B6 E5 12 SBC $12 [$7E:0012] $A7:D2B8 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D2BB AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D2BE 3A DEC A $A7:D2BF 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D2C2 10 05 BPL $05 [$D2C9] $A7:D2C4 A5 14 LDA $14 [$7E:0014] $A7:D2C6 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D2C9 7A PLY $A7:D2CA C6 16 DEC $16 [$7E:0016] $A7:D2CC F0 02 BEQ $02 [$D2D0] $A7:D2CE 80 AD BRA $AD [$D27D] $A7:D2D0 60 RTS } ; $D2D1: Unknown (2 callers) ; Seems to be updating Phantoon's coords (move him around) { $A7:D2D1 AD 30 10 LDA $1030 [$7E:1030] $A7:D2D4 30 17 BMI $17 [$D2ED] $A7:D2D6 18 CLC $A7:D2D7 69 02 00 ADC #$0002 $A7:D2DA 8D 30 10 STA $1030 [$7E:1030] $A7:D2DD C9 00 01 CMP #$0100 $A7:D2E0 30 1F BMI $1F [$D301] $A7:D2E2 09 00 80 ORA #$8000 $A7:D2E5 8D 30 10 STA $1030 [$7E:1030] $A7:D2E8 29 FF 7F AND #$7FFF $A7:D2EB 80 14 BRA $14 [$D301] $A7:D2ED 38 SEC $A7:D2EE E9 02 00 SBC #$0002 $A7:D2F1 8D 30 10 STA $1030 [$7E:1030] $A7:D2F4 29 FF 7F AND #$7FFF $A7:D2F7 F0 02 BEQ $02 [$D2FB] $A7:D2F9 10 06 BPL $06 [$D301] $A7:D2FB A9 00 00 LDA #$0000 $A7:D2FE 8D 30 10 STA $1030 [$7E:1030] $A7:D301 CD 7A 0F CMP $0F7A [$7E:0F7A] $A7:D304 30 11 BMI $11 [$D317] $A7:D306 AD 2C 10 LDA $102C [$7E:102C] $A7:D309 C9 00 08 CMP #$0800 $A7:D30C 10 18 BPL $18 [$D326] $A7:D30E 18 CLC $A7:D30F 69 20 00 ADC #$0020 $A7:D312 8D 2C 10 STA $102C [$7E:102C] $A7:D315 80 0F BRA $0F [$D326] $A7:D317 AD 2C 10 LDA $102C [$7E:102C] $A7:D31A C9 01 F8 CMP #$F801 $A7:D31D 30 07 BMI $07 [$D326] $A7:D31F 38 SEC $A7:D320 E9 20 00 SBC #$0020 $A7:D323 8D 2C 10 STA $102C [$7E:102C] $A7:D326 AD 2C 10 LDA $102C [$7E:102C] $A7:D329 EB XBA $A7:D32A 48 PHA $A7:D32B 29 00 FF AND #$FF00 $A7:D32E 85 14 STA $14 [$7E:0014] $A7:D330 68 PLA $A7:D331 29 FF 00 AND #$00FF $A7:D334 89 80 00 BIT #$0080 $A7:D337 F0 03 BEQ $03 [$D33C] $A7:D339 09 00 FF ORA #$FF00 $A7:D33C 85 12 STA $12 [$7E:0012] $A7:D33E AD 7C 0F LDA $0F7C [$7E:0F7C] $A7:D341 18 CLC $A7:D342 65 14 ADC $14 [$7E:0014] $A7:D344 8D 7C 0F STA $0F7C [$7E:0F7C] $A7:D347 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7:D34A 65 12 ADC $12 [$7E:0012] $A7:D34C 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:D34F C9 C0 FF CMP #$FFC0 $A7:D352 10 08 BPL $08 [$D35C] $A7:D35C C9 C0 01 CMP #$01C0 $A7:D35F 30 06 BMI $06 [$D367] $A7:D367 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7:D36A C9 2E D9 CMP #$D92E $A7:D36D D0 05 BNE $05 [$D374] $A7:D374 AD FA 0A LDA $0AFA [$7E:0AFA] $A7:D377 38 SEC $A7:D378 E9 30 00 SBC #$0030 $A7:D37B CD 7E 0F CMP $0F7E [$7E:0F7E] $A7:D37E 30 11 BMI $11 [$D391] $A7:D380 AD 2E 10 LDA $102E [$7E:102E] $A7:D383 C9 00 06 CMP #$0600 $A7:D386 10 18 BPL $18 [$D3A0] $A7:D388 18 CLC $A7:D389 69 40 00 ADC #$0040 $A7:D38C 8D 2E 10 STA $102E [$7E:102E] $A7:D38F 80 0F BRA $0F [$D3A0] $A7:D391 AD 2E 10 LDA $102E [$7E:102E] $A7:D394 C9 01 FA CMP #$FA01 $A7:D397 30 07 BMI $07 [$D3A0] $A7:D399 38 SEC $A7:D39A E9 40 00 SBC #$0040 $A7:D39D 8D 2E 10 STA $102E [$7E:102E] $A7:D3A0 AD 2E 10 LDA $102E [$7E:102E] $A7:D3A3 EB XBA $A7:D3A4 48 PHA $A7:D3A5 29 00 FF AND #$FF00 $A7:D3A8 85 14 STA $14 [$7E:0014] $A7:D3AA 68 PLA $A7:D3AB 29 FF 00 AND #$00FF $A7:D3AE 89 80 00 BIT #$0080 $A7:D3B1 F0 03 BEQ $03 [$D3B6] $A7:D3B3 09 00 FF ORA #$FF00 $A7:D3B6 85 12 STA $12 [$7E:0012] $A7:D3B8 AD 80 0F LDA $0F80 [$7E:0F80] $A7:D3BB 18 CLC $A7:D3BC 65 14 ADC $14 [$7E:0014] $A7:D3BE 8D 80 0F STA $0F80 [$7E:0F80] $A7:D3C1 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7:D3C4 65 12 ADC $12 [$7E:0012] $A7:D3C6 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D3C9 C9 40 00 CMP #$0040 $A7:D3CC 10 07 BPL $07 [$D3D5] $A7:D3CE A9 40 00 LDA #$0040 $A7:D3D1 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D3D4 60 RTS $A7:D3D5 C9 D8 00 CMP #$00D8 $A7:D3D8 30 06 BMI $06 [$D3E0] $A7:D3E0 60 RTS } ; $D3E1: Unknown (2 callers) { $A7:D3E1 A9 00 04 LDA #$0400 $A7:D3E4 8D 2C 10 STA $102C [$7E:102C] $A7:D3E7 8D 2E 10 STA $102E [$7E:102E] $A7:D3EA 9C 30 10 STZ $1030 [$7E:1030] $A7:D3ED A9 78 D6 LDA #$D678 $A7:D3F0 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D3F3 A9 68 01 LDA #$0168 $A7:D3F6 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D3F9 60 RTS } ; $D4FA: Unknown (4 callers) { $A7:D3FA 22 29 AE A0 JSL $A0AE29[$A0:AE29] $A7:D3FE 0A ASL A $A7:D3FF A8 TAY $A7:D400 A9 01 00 LDA #$0001 $A7:D403 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D406 B9 0D D4 LDA $D40D,y[$A7:D413] $A7:D409 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D40C 60 RTS } ; $D40D: Unknown data (missing data here) { $A7:D40F db AD, CC, B3, CC, B9, CC, BF, CC $A7:D419 db C5, CC, CB, CC } ; $D421: Run on Enemy Shot? { $A7:D421 DA PHX $A7:D422 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7:D425 C9 78 D6 CMP #$D678 $A7:D428 F0 0D BEQ $0D [$D437] $A7:D42A C9 B9 D6 CMP #$D6B9 $A7:D42D F0 08 BEQ $08 [$D437] $A7:D42F A9 48 D9 LDA #$D948 $A7:D432 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D435 80 06 BRA $06 [$D43D] $A7:D43D 9C EC 0F STZ $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D440 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D443 20 FA D3 JSR $D3FA [$A7:D3FA] $A7:D446 A2 FE 01 LDX #$01FE $A7:D449 A5 B5 LDA $B5 [$7E:00B5] $A7:D44B 9F 00 91 7E STA $7E9100,x[$7E:92FE] $A7:D44F CA DEX $A7:D450 CA DEX $A7:D451 10 F8 BPL $F8 [$D44B] $A7:D453 AD 88 19 LDA $1988 [$7E:1988] $A7:D456 09 00 40 ORA #$4000 $A7:D459 8D 88 19 STA $1988 [$7E:1988] $A7:D45C A9 01 00 LDA #$0001 $A7:D45F 8D 76 10 STA $1076 [$7E:1076] $A7:D462 FA PLX $A7:D463 60 RTS } ; $D464: Unknown (5 callers) ; Input: A is always #$0C? ; One end result: $0FF2 is set to 1. Meaning it's moving? { $A7:D464 DA PHX $A7:D465 85 12 STA $12 [$7E:0012] ; Every 2nd frame $A7:D467 AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:D46A 89 01 00 BIT #$0001 $A7:D46D D0 15 BNE $15 [$D484] ; Is 0FF2 is already set (we started the phase?), skip everything $A7:D46F AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D472 D0 10 BNE $10 [$D484] $A7:D474 A5 12 LDA $12 [$7E:0012] $A7:D476 8D EE 0F STA $0FEE [$7E:0FEE] ; Does some counting.. Not really sure. $A7:D479 20 9A DB JSR $DB9A [$A7:DB9A] $A7:D47C 90 06 BCC $06 [$D484] ; Start the phase? $A7:D47E A9 01 00 LDA #$0001 $A7:D481 8D F2 0F STA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D484 FA PLX $A7:D485 60 RTS } ; $D486: Unknown (4 callers) ; Input: A is either #$01 or #$0C ; One end result: $0FF2 is set to 1. Meaning it's moving? { $A7:D486 DA PHX $A7:D487 85 12 STA $12 [$7E:0012] ; Every 2nd frame $A7:D489 AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:D48C 89 01 00 BIT #$0001 $A7:D48F D0 15 BNE $15 [$D4A6] ; Is 0FF2 is already set (we started the phase?), skip everything $A7:D491 AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D494 D0 10 BNE $10 [$D4A6] $A7:D496 A5 12 LDA $12 [$7E:0012] $A7:D498 8D EE 0F STA $0FEE [$7E:0FEE] ; Does some counting.. Not really sure. $A7:D49B 20 D5 DB JSR $DBD5 [$A7:DBD5] $A7:D49E 90 06 BCC $06 [$D4A6] ; Start the phase? $A7:D4A0 A9 01 00 LDA #$0001 $A7:D4A3 8D F2 0F STA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D4A6 FA PLX $A7:D4A7 60 RTS } ; $D4A8: AI Script - RTS $A7:D4A8 60 RTS ; $D4A9: AI Script - Init (spawn blue fires) { ; Do nothing until $0FB0 is 0. ; Counter ; It's initially set to $78 $A7:D4A9 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D4AC F0 02 BEQ $02 [$D4B0] $A7:D4AE 10 3D BPL $3D [$D4ED] ; Spawn one of the 8 blue fires $A7:D4B0 AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D4B3 A0 37 9C LDY #$9C37 $A7:D4B6 22 27 80 86 JSL $868027[$86:8027] ; Sound effect $A7:D4BA A9 1D 00 LDA #$001D $A7:D4BD 22 4D 91 80 JSL $80914D[$80:914D] ; Reset timer to $1E (frames until next blue fire spawns) $A7:D4C1 A9 1E 00 LDA #$001E $A7:D4C4 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter ; Increment which blue fire is next $A7:D4C7 AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D4CA 1A INC A $A7:D4CB 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D4CE C9 08 00 CMP #$0008 $A7:D4D1 30 1A BMI $1A [$D4ED] ; If it's 8, we're done. Go on to the next AI Script. $A7:D4D3 9C A8 0F STZ $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D4D6 9E 2A 10 STZ $102A,x[$7E:102A] $A7:D4D9 A9 EE D4 LDA #$D4EE $A7:D4DC 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D4DF A9 1E 00 LDA #$001E $A7:D4E2 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D4E5 22 D7 83 84 JSL $8483D7[$84:83D7] $A7:D4ED 60 RTS } ; $D4EE: AI Script - Init (does nothing for $1E frames) { ; Waits for $1E frames $A7:D4EE DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D4F1 F0 02 BEQ $02 [$D4F5] $A7:D4F3 10 12 BPL $12 [$D507] $A7:D4F5 A9 F0 00 LDA #$00F0 $A7:D4F8 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D4FB A9 01 00 LDA #$0001 $A7:D4FE 9D AA 0F STA $0FAA,x[$7E:0FAA] $A7:D501 A9 08 D5 LDA #$D508 $A7:D504 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D507 60 RTS } ; $D508: AI Script - Init (does nothing for $F0 frames while blue fire goes round and round and contracts, then spawns Phantoon) { ; Time is initially set to $F0 $A7:D508 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D50B F0 02 BEQ $02 [$D50F] $A7:D50D 10 3A BPL $3A [$D549] $A7:D50F 9E AA 0F STZ $0FAA,x[$7E:0FAA] ; Sound effect? $A7:D512 AD 88 19 LDA $1988 [$7E:1988] $A7:D515 09 00 40 ORA #$4000 $A7:D518 8D 88 19 STA $1988 [$7E:1988] $A7:D51B A9 4A D5 LDA #$D54A $A7:D51E 9D B2 0F STA $0FB2,x[$7E:0FB2] ; AI variable (Speed) $A7:D521 A9 01 80 LDA #$8001 $A7:D524 8D 74 10 STA $1074 [$7E:1074] $A7:D527 A9 78 00 LDA #$0078 $A7:D52A 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter ; Palette stuff? $A7:D52D AD A3 CD LDA $CDA3 [$A7:CDA3] $A7:D530 85 16 STA $16 [$7E:0016] ; Starts spawning in Phantoon $A7:D532 A9 02 00 LDA #$0002 ; Stored to $1034 $A7:D535 22 87 E4 88 JSL $88E487[$88:E487] $A7:D539 AD 9D CD LDA $CD9D [$A7:CD9D] ; 0C00 $A7:D53C 8D 6E 10 STA $106E [$7E:106E] ; Counter to start the fight? $A7:D53F 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? ; Queue song 0 music track $A7:D542 A9 05 00 LDA #$0005 $A7:D545 22 C1 8F 80 JSL $808FC1[$80:8FC1] $A7:D549 60 RTS } ; $D54A: AI Script - Init (wait while Phanton spawns) { ; Not completely sure what this does. It uses $0FF0 as a counter, compare it with $0FEE etc. $A7:D54A A9 0C 00 LDA #$000C $A7:D54D 20 86 D4 JSR $D486 [$A7:D486] $A7:D550 AD 9B CD LDA $CD9B [$A7:CD9B] ; $0040 $A7:D553 85 12 STA $12 [$7E:0012] $A7:D555 AD 9D CD LDA $CD9D [$A7:CD9D] ; $0C00 $A7:D558 85 14 STA $14 [$7E:0014] ; When $106E is 0, we move on to next AI script? $A7:D55A 20 27 CF JSR $CF27 [$A7:CF27] $A7:D55D B0 0F BCS $0F [$D56E] ; Decrement 0FB0, then set the flag for the fight having started? $A7:D55F DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D562 F0 02 BEQ $02 [$D566] $A7:D564 10 1A BPL $1A [$D580] $A7:D566 A9 01 00 LDA #$0001 $A7:D569 8D 70 10 STA $1070 [$7E:1070] ; set if we started the fight? $A7:D56C 80 12 BRA $12 [$D580] $A7:D56E A9 96 D5 LDA #$D596 $A7:D571 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D574 A9 01 00 LDA #$0001 $A7:D577 8D 74 10 STA $1074 [$7E:1074] $A7:D57A A9 1E 00 LDA #$001E $A7:D57D 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D580 60 RTS } ; $D596: AI Script - Init (runs right before Phantoon starts moving) { ; Wait $1E frames $A7:D596 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D599 F0 02 BEQ $02 [$D59D] $A7:D59B 10 49 BPL $49 [$D5E6] $A7:D59D 9C F4 0F STZ $0FF4 [$7E:0FF4] ; Zero when Phantoon able to move? $A7:D5A0 A9 E7 D5 LDA #$D5E7 $A7:D5A3 9D B2 0F STA $0FB2,x[$7E:0FB2] ; Sets up $0FE8 randomly with one of 3 values (1x fast, 1x mid, 2x slow..) $A7:D5A6 AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:D5A9 4A LSR A $A7:D5AA 29 03 00 AND #$0003 $A7:D5AD 0A ASL A $A7:D5AE A8 TAY $A7:D5AF B9 53 CD LDA $CD53,y[$A7:CD59] $A7:D5B2 8D E8 0F STA $0FE8 [$7E:0FE8] ; Fast/Mid/Slow Counter ; Coin-flip RNG ; The difference is: ; - $0FAC is set to 1 or 0 ; - $0FEC is set to 0 or 1 ; - $0FA8 is set to 0 or $0215 ; It basically decides the direction $A7:D5B5 22 11 81 80 JSL $808111[$80:8111] $A7:D5B9 89 01 00 BIT #$0001 $A7:D5BC D0 13 BNE $13 [$D5D1] ; This was originally missing in the disassembly $A7:D5BE LDA #$0001 $A7:D5C1 STA $0FAC ; I used for accellerating Phantoon's speed? $A7:D5C4 STZ $0FAA $A7:D5C7 STZ $0FAE $A7:D5CA STZ $0FEC ; Has to do with which direction Phantoon is moving $A7:D5CD STZ $0FA8 ; Has to do with which direction Phantoon is moving $A7:D5D0 RTS $A7:D5D1 9C AC 0F STZ $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D5D4 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D5D7 9C AE 0F STZ $0FAE [$7E:0FAE] $A7:D5DA A9 01 00 LDA #$0001 $A7:D5DD 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D5E0 A9 15 02 LDA #$0215 $A7:D5E3 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D5E6 60 RTS } ; $D5E7: AI Script - Phantoon is moving around in figure 8 { $A7:D5E7 20 F1 D0 JSR $D0F1 [$A7:D0F1] $A7:D5EA 20 CA CF JSR $CFCA [$A7:CFCA] ; Decrement the fast/mid/slow counter until we can open up.. $A7:D5ED CE E8 0F DEC $0FE8 [$7E:0FE8] $A7:D5F0 F0 02 BEQ $02 [$D5F4] $A7:D5F2 10 18 BPL $18 [$D60C] ; Change AI Script to RTS? ; This happens when Phantoon opens up $A7:D5F4 A9 A8 D4 LDA #$D4A8 $A7:D5F7 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D5FA A9 01 00 LDA #$0001 $A7:D5FD 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D600 A9 53 CC LDA #$CC53 $A7:D603 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D606 9C B6 0F STZ $0FB6 [$7E:0FB6] $A7:D609 20 70 CF JSR $CF70 [$A7:CF70] ; Spawn 8 blue flames $A7:D60C 60 RTS } ; $D60D: AI Script - Phantoon is vulnerable to damage, right after opening up? { $A7:D60D DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D610 F0 02 BEQ $02 [$D614] $A7:D612 10 44 BPL $44 [$D658] ; $A7:D614 9E 2A 10 STZ $102A,x[$7E:102A] $A7:D617 AD 28 10 LDA $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D61A F0 11 BEQ $11 [$D62D] $A7:D61C 9C 28 10 STZ $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D61F A9 3C 00 LDA #$003C $A7:D622 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D625 A9 5C D6 LDA #$D65C $A7:D628 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D62B 80 2B BRA $2B [$D658] ; AI Script: RTS $A7:D62D A9 A8 D4 LDA #$D4A8 $A7:D630 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D633 A9 01 00 LDA #$0001 $A7:D636 8D 94 0F STA $0F94 [$7E:0F94] $A7:D639 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D63C A9 41 CC LDA #$CC41 $A7:D63F 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D642 A9 81 CC LDA #$CC81 $A7:D645 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D648 AD 86 0F LDA $0F86 [$7E:0F86] $A7:D64B 09 00 04 ORA #$0400 $A7:D64E 8D 86 0F STA $0F86 [$7E:0F86] $A7:D651 A9 01 00 LDA #$0001 $A7:D654 8D B6 0F STA $0FB6 [$7E:0FB6] $A7:D657 60 RTS $A7:D658 20 FA D3 JSR $D3FA [$A7:D3FA] $A7:D65B 60 RTS } ; $D65C: AI Script - Unknown (set from D60D) { $A7:D65C 20 FA D3 JSR $D3FA [$A7:D3FA] $A7:D65F AD 88 19 LDA $1988 [$7E:1988] $A7:D662 29 FF BF AND #$BFFF $A7:D665 8D 88 19 STA $1988 [$7E:1988] $A7:D668 20 E1 D3 JSR $D3E1 [$A7:D3E1] $A7:D66B A9 01 00 LDA #$0001 $A7:D66E 8D 94 0F STA $0F94 [$7E:0F94] $A7:D671 A9 47 CC LDA #$CC47 $A7:D674 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D677 60 RTS } ; $D678: AI Script - Unknown (set from D3E1) { $A7:D678 20 FA D3 JSR $D3FA [$A7:D3FA] $A7:D67B 20 D1 D2 JSR $D2D1 [$A7:D2D1] $A7:D67E DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D681 F0 02 BEQ $02 [$D685] $A7:D683 10 33 BPL $33 [$D6B8] $A7:D685 A9 B9 D6 LDA #$D6B9 $A7:D688 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D68B AD 88 19 LDA $1988 [$7E:1988] $A7:D68E 09 00 40 ORA #$4000 $A7:D691 8D 88 19 STA $1988 [$7E:1988] $A7:D694 A9 01 00 LDA #$0001 $A7:D697 8D 94 0F STA $0F94 [$7E:0F94] $A7:D69A 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D69D A9 41 CC LDA #$CC41 $A7:D6A0 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D6A3 A9 91 CC LDA #$CC91 $A7:D6A6 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D6A9 AD 86 0F LDA $0F86 [$7E:0F86] $A7:D6AC 09 00 04 ORA #$0400 $A7:D6AF 8D 86 0F STA $0F86 [$7E:0F86] $A7:D6B2 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D6B5 9E 2A 10 STZ $102A,x[$7E:102A] $A7:D6B8 60 RTS } ; $D6B9: AI Script - Unknown { $A7:D6B9 20 D1 D2 JSR $D2D1 [$A7:D2D1] $A7:D6BC A9 0C 00 LDA #$000C $A7:D6BF 20 64 D4 JSR $D464 [$A7:D464] $A7:D6C2 AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D6C5 F0 0C BEQ $0C [$D6D3] $A7:D6C7 A9 D4 D6 LDA #$D6D4 $A7:D6CA 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D6CD A9 78 00 LDA #$0078 $A7:D6D0 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D6D3 60 RTS } ; $D6D4: AI Script - Unknown { $A7:D6D4 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D6D7 F0 02 BEQ $02 [$D6DB] $A7:D6D9 10 06 BPL $06 [$D6E1] $A7:D6DB A9 E2 D6 LDA #$D6E2 $A7:D6DE 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D6E1 60 RTS } ; $D6E2: AI Script - Unknown ; Sets the Fast/Mid/Slow pattern on phase 2+? { $A7:D6E2 22 11 81 80 JSL $808111[$80:8111] $A7:D6E6 89 01 00 BIT #$0001 $A7:D6E9 F0 14 BEQ $14 [$D6FF] ; Starts on right side $A7:D6EB A9 88 00 LDA #$0088 $A7:D6EE 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D6F1 A9 D0 00 LDA #$00D0 $A7:D6F4 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:D6F7 A9 60 00 LDA #$0060 $A7:D6FA 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D6FD 80 12 BRA $12 [$D711] ; Starts on left side $A7:D6FF A9 8F 01 LDA #$018F $A7:D702 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D705 A9 30 00 LDA #$0030 $A7:D708 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:D70B A9 60 00 LDA #$0060 $A7:D70E 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D711 9C EC 0F STZ $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D714 A9 01 00 LDA #$0001 $A7:D717 8D AC 0F STA $0FAC [$7E:0FAC] ; I used for accellerating Phantoon's speed? $A7:D71A 9C AA 0F STZ $0FAA [$7E:0FAA] $A7:D71D 9C B6 0F STZ $0FB6 [$7E:0FB6] ; Sets up the Fast/Mid/Slow RNG? $A7:D720 20 76 D0 JSR $D076 [$A7:D076] $A7:D723 A9 2D D7 LDA #$D72D $A7:D726 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D729 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D72C 60 RTS } ; $D72D: AI Script - Unknown { $A7:D72D A9 0C 00 LDA #$000C $A7:D730 20 86 D4 JSR $D486 [$A7:D486] $A7:D733 AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D736 F0 06 BEQ $06 [$D73E] $A7:D738 A9 E7 D5 LDA #$D5E7 $A7:D73B 8D B2 0F STA $0FB2 [$7E:0FB2] $A7:D73E 60 RTS } ; $D73F: AI Script - Unknown { $A7:D73F 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D742 AD 88 19 LDA $1988 [$7E:1988] $A7:D745 29 FF BF AND #$BFFF $A7:D748 8D 88 19 STA $1988 [$7E:1988] $A7:D74B A9 01 00 LDA #$0001 $A7:D74E 8D 94 0F STA $0F94 [$7E:0F94] $A7:D751 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D754 A9 47 CC LDA #$CC47 $A7:D757 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D75A A9 9D CC LDA #$CC9D $A7:D75D 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D760 A9 67 D7 LDA #$D767 $A7:D763 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D766 60 RTS } ; $D767: AI Script - Unknown { $A7:D767 A9 01 00 LDA #$0001 $A7:D76A 20 86 D4 JSR $D486 [$A7:D486] $A7:D76D AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D770 F0 15 BEQ $15 [$D787] $A7:D772 AD 86 0F LDA $0F86 [$7E:0F86] $A7:D775 29 FF FB AND #$FBFF $A7:D778 8D 86 0F STA $0F86 [$7E:0F86] $A7:D77B A9 88 D7 LDA #$D788 $A7:D77E 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D781 A9 5A 00 LDA #$005A $A7:D784 8D B0 0F STA $0FB0 [$7E:0FB0] ; Counter $A7:D787 60 RTS } ; $D788: AI Script - Unknown { $A7:D788 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D78B F0 02 BEQ $02 [$D78F] $A7:D78D 10 45 BPL $45 [$D7D4] $A7:D78F 9E 2A 10 STZ $102A,x[$7E:102A] $A7:D792 AD 28 10 LDA $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D795 F0 0D BEQ $0D [$D7A4] $A7:D797 9C 28 10 STZ $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D79A A9 01 00 LDA #$0001 $A7:D79D 8D B6 0F STA $0FB6 [$7E:0FB6] $A7:D7A0 20 E1 D3 JSR $D3E1 [$A7:D3E1] $A7:D7A3 60 RTS $A7:D7A4 A9 D5 D7 LDA #$D7D5 $A7:D7A7 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D7AA 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D7AD A9 01 00 LDA #$0001 $A7:D7B0 8D 94 0F STA $0F94 [$7E:0F94] $A7:D7B3 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:D7B6 A9 41 CC LDA #$CC41 $A7:D7B9 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:D7BC A9 91 CC LDA #$CC91 $A7:D7BF 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:D7C2 AD 86 0F LDA $0F86 [$7E:0F86] $A7:D7C5 09 00 04 ORA #$0400 $A7:D7C8 8D 86 0F STA $0F86 [$7E:0F86] $A7:D7CB AD 88 19 LDA $1988 [$7E:1988] $A7:D7CE 09 00 40 ORA #$4000 $A7:D7D1 8D 88 19 STA $1988 [$7E:1988] $A7:D7D4 60 RTS } ; $D7D5: AI Script - Unknown { $A7:D7D5 A9 0C 00 LDA #$000C $A7:D7D8 20 64 D4 JSR $D464 [$A7:D464] $A7:D7DB AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D7DE D0 01 BNE $01 [$D7E1] $A7:D7E0 60 RTS $A7:D7E1 A9 F7 D7 LDA #$D7F7 $A7:D7E4 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D7E7 22 11 81 80 JSL $808111[$80:8111] $A7:D7EB 29 07 00 AND #$0007 $A7:D7EE 0A ASL A $A7:D7EF A8 TAY $A7:D7F0 B9 63 CD LDA $CD63,y[$A7:CD6B] $A7:D7F3 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D7F6 60 RTS } ; $D7F7: AI Script - Unknown { $A7:D7F7 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D7FA F0 02 BEQ $02 [$D7FE] $A7:D7FC 10 2B BPL $2B [$D829] $A7:D7FE 22 11 81 80 JSL $808111[$80:8111] $A7:D802 29 07 00 AND #$0007 $A7:D805 48 PHA $A7:D806 0A ASL A $A7:D807 0A ASL A $A7:D808 0A ASL A $A7:D809 A8 TAY $A7:D80A B9 AD CD LDA $CDAD,y[$A7:CDE5] $A7:D80D 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D810 B9 AF CD LDA $CDAF,y[$A7:CDE7] $A7:D813 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:D816 B9 B1 CD LDA $CDB1,y[$A7:CDE9] $A7:D819 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:D81C 9C EC 0F STZ $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D81F A9 3F D7 LDA #$D73F $A7:D822 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D825 68 PLA $A7:D826 20 8B CF JSR $CF8B [$A7:CF8B] $A7:D829 60 RTS } ; $D82A: AI Script - Unknown { $A7:D82A A9 0C 00 LDA #$000C $A7:D82D 20 64 D4 JSR $D464 [$A7:D464] $A7:D830 20 F1 D0 JSR $D0F1 [$A7:D0F1] $A7:D833 20 CA CF JSR $CFCA [$A7:CFCA] $A7:D836 CE E8 0F DEC $0FE8 [$7E:0FE8] $A7:D839 F0 02 BEQ $02 [$D83D] $A7:D83B 10 1E BPL $1E [$D85B] $A7:D83D 9C 28 10 STZ $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:D840 A9 3F D7 LDA #$D73F $A7:D843 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D846 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7:D849 C9 80 00 CMP #$0080 $A7:D84C 30 07 BMI $07 [$D855] $A7:D84E A9 02 00 LDA #$0002 $A7:D851 20 8B CF JSR $CF8B [$A7:CF8B] $A7:D854 60 RTS $A7:D85B 60 RTS } ; $D948: AI Script - Unknown { $A7:D948 EA NOP $A7:D949 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D94C 89 01 00 BIT #$0001 $A7:D94F D0 0D BNE $0D [$D95E] $A7:D951 A9 0C 00 LDA #$000C $A7:D954 20 64 D4 JSR $D464 [$A7:D464] $A7:D957 AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D95A D0 0D BNE $0D [$D969] $A7:D95C 80 2C BRA $2C [$D98A] $A7:D95E A9 0C 00 LDA #$000C $A7:D961 20 86 D4 JSR $D486 [$A7:D486] $A7:D964 AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:D967 F0 21 BEQ $21 [$D98A] $A7:D969 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:D96C AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D96F 1A INC A $A7:D970 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:D973 C9 0A 00 CMP #$000A $A7:D976 30 12 BMI $12 [$D98A] $A7:D978 A9 8B D9 LDA #$D98B $A7:D97B 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:D97E A9 0F 00 LDA #$000F $A7:D981 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D984 9C 32 10 STZ $1032 [$7E:1032] $A7:D987 9C A8 0F STZ $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:D98A 60 RTS } ; $D98B: AI Script - Unknown { $A7:D98B DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:D98E F0 03 BEQ $03 [$D993] $A7:D990 30 01 BMI $01 [$D993] $A7:D992 60 RTS $A7:D993 AD 32 10 LDA $1032 [$7E:1032] $A7:D996 0A ASL A $A7:D997 0A ASL A $A7:D998 A8 TAY $A7:D999 B9 1D DA LDA $DA1D,y[$A7:DA1D] $A7:D99C 29 FF 00 AND #$00FF $A7:D99F 89 80 00 BIT #$0080 $A7:D9A2 F0 03 BEQ $03 [$D9A7] $A7:D9A4 09 00 FF ORA #$FF00 $A7:D9A7 85 12 STA $12 [$7E:0012] $A7:D9A9 AD 7A 0F LDA $0F7A [$7E:0F7A] $A7:D9AC 18 CLC $A7:D9AD 65 12 ADC $12 [$7E:0012] $A7:D9AF 85 12 STA $12 [$7E:0012] $A7:D9B1 B9 1E DA LDA $DA1E,y[$A7:DA1E] $A7:D9B4 29 FF 00 AND #$00FF $A7:D9B7 89 80 00 BIT #$0080 $A7:D9BA F0 03 BEQ $03 [$D9BF] $A7:D9BC 09 00 FF ORA #$FF00 $A7:D9BF 85 14 STA $14 [$7E:0014] $A7:D9C1 AD 7E 0F LDA $0F7E [$7E:0F7E] $A7:D9C4 18 CLC $A7:D9C5 65 14 ADC $14 [$7E:0014] $A7:D9C7 85 14 STA $14 [$7E:0014] $A7:D9C9 5A PHY $A7:D9CA B9 1F DA LDA $DA1F,y[$A7:DA1F] $A7:D9CD 29 FF 00 AND #$00FF $A7:D9D0 48 PHA $A7:D9D1 A0 09 E5 LDY #$E509 $A7:D9D4 22 97 80 86 JSL $868097[$86:8097] $A7:D9D8 68 PLA $A7:D9D9 C9 1D 00 CMP #$001D $A7:D9DC D0 09 BNE $09 [$D9E7] $A7:D9DE A9 24 00 LDA #$0024 $A7:D9E1 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:D9E5 80 07 BRA $07 [$D9EE] $A7:D9E7 A9 2B 00 LDA #$002B $A7:D9EA 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:D9EE 7A PLY $A7:D9EF B9 20 DA LDA $DA20,y[$A7:DA20] $A7:D9F2 29 FF 00 AND #$00FF $A7:D9F5 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:D9F8 AD 32 10 LDA $1032 [$7E:1032] $A7:D9FB 1A INC A $A7:D9FC 8D 32 10 STA $1032 [$7E:1032] $A7:D9FF C9 0D 00 CMP #$000D $A7:DA02 30 18 BMI $18 [$DA1C] $A7:DA04 A9 05 00 LDA #$0005 $A7:DA07 8D 32 10 STA $1032 [$7E:1032] $A7:DA0A AD A8 0F LDA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:DA0D 1A INC A $A7:DA0E 8D A8 0F STA $0FA8 [$7E:0FA8] ; Has to do with which direction Phantoon is moving $A7:DA11 C9 03 00 CMP #$0003 $A7:DA14 30 06 BMI $06 [$DA1C] $A7:DA16 A9 51 DA LDA #$DA51 $A7:DA19 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:DA1C 60 RTS } ; $DA1D: Unknown data (used above) { $A7:DA1D db 00, 00, 1D, 10, 20, E0, 1D, 10 db E0, 20, 1D, 10, E0, E0, 1D, 10 db 20, 20, 1D, 20, E0, F8, 1D, 08 db 00, 00, 03, 08, 20, F8, 1D, 08 db 00, 00, 03, 08, 00, 18, 03, 08 db 00, 30, 1D, 08, E8, 18, 03, 08 db 18, 18, 03, 08 } ; $DA51: AI Script - Unknown { ; Palette stuff? $A7:DA51 AD A3 CD LDA $CDA3 [$A7:CDA3] $A7:DA54 85 16 STA $16 [$7E:0016] ; Spawn HDMA object? $A7:DA56 A9 01 00 LDA #$0001 ; Stored to $1034 $A7:DA59 22 87 E4 88 JSL $88E487[$88:E487] $A7:DA5D 9C 6E 10 STZ $106E [$7E:106E] ; Counter to start the fight? $A7:DA60 A9 86 DA LDA #$DA86 $A7:DA63 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:DA66 A9 02 00 LDA #$0002 $A7:DA69 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:DA6C AD 86 0F LDA $0F86 [$7E:0F86] $A7:DA6F 29 FF DF AND #$DFFF $A7:DA72 09 00 05 ORA #$0500 $A7:DA75 8D C6 0F STA $0FC6 [$7E:0FC6] $A7:DA78 8D 06 10 STA $1006 [$7E:1006] $A7:DA7B 8D 46 10 STA $1046 [$7E:1046] $A7:DA7E A9 7E 00 LDA #$007E $A7:DA81 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:DA85 60 RTS } ; $DA86: AI Script - Unknown { $A7:DA86 AD 9F CD LDA $CD9F [$A7:CD9F] $A7:DA89 85 12 STA $12 [$7E:0012] $A7:DA8B AD A1 CD LDA $CDA1 [$A7:CDA1] $A7:DA8E 85 14 STA $14 [$7E:0014] $A7:DA90 20 27 CF JSR $CF27 [$A7:CF27] $A7:DA93 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:DA96 C9 FF FF CMP #$FFFF $A7:DA99 F0 2A BEQ $2A [$DAC5] $A7:DA9B AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:DA9E 89 0F 00 BIT #$000F $A7:DAA1 D0 33 BNE $33 [$DAD6] $A7:DAA3 E2 20 SEP #$20 $A7:DAA5 AD EC 0F LDA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:DAA8 C9 F2 CMP #$F2 $A7:DAAA F0 0C BEQ $0C [$DAB8] $A7:DAAC 18 CLC $A7:DAAD 69 10 ADC #$10 $A7:DAAF 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:DAB2 85 57 STA $57 [$7E:0057] $A7:DAB4 C2 20 REP #$20 $A7:DAB6 80 1E BRA $1E [$DAD6] $A7:DAB8 C2 20 REP #$20 $A7:DABA A9 FF FF LDA #$FFFF $A7:DABD 8D EC 0F STA $0FEC [$7E:0FEC] ; Has to do with which direction Phantoon is moving $A7:DAC0 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:DAC3 80 11 BRA $11 [$DAD6] $A7:DAC5 A9 0C 00 LDA #$000C $A7:DAC8 20 64 D4 JSR $D464 [$A7:D464] $A7:DACB AD F2 0F LDA $0FF2 [$7E:0FF2] ; Phase counter? $A7:DACE F0 06 BEQ $06 [$DAD6] $A7:DAD0 A9 D7 DA LDA #$DAD7 $A7:DAD3 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:DAD6 60 RTS } ; $DAD7: AI Script - Unknown { $A7:DAD7 E2 20 SEP #$20 $A7:DAD9 64 57 STZ $57 [$7E:0057] $A7:DADB C2 20 REP #$20 $A7:DADD 9C F4 0F STZ $0FF4 [$7E:0FF4] ; Zero when Phantoon able to move? $A7:DAE0 AD 88 19 LDA $1988 [$7E:1988] $A7:DAE3 29 FF BF AND #$BFFF $A7:DAE6 8D 88 19 STA $1988 [$7E:1988] $A7:DAE9 A9 FF FF LDA #$FFFF $A7:DAEC 8D 74 10 STA $1074 [$7E:1074] $A7:DAEF A9 3D DB LDA #$DB3D $A7:DAF2 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:DAF5 A9 3C 00 LDA #$003C $A7:DAF8 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:DAFB 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:DAFE A9 80 01 LDA #$0180 $A7:DB01 8D 7A 0F STA $0F7A [$7E:0F7A] $A7:DB04 A9 80 00 LDA #$0080 $A7:DB07 8D 7E 0F STA $0F7E [$7E:0F7E] $A7:DB0A A2 FE 03 LDX #$03FE $A7:DB0D A9 38 03 LDA #$0338 $A7:DB10 9F 00 20 7E STA $7E2000,x[$7E:23FE] $A7:DB14 CA DEX $A7:DB15 CA DEX $A7:DB16 10 F8 BPL $F8 [$DB10] $A7:DB18 AE 30 03 LDX $0330 [$7E:0330] $A7:DB1B A9 00 04 LDA #$0400 $A7:DB1E 95 D0 STA $D0,x [$7E:00D0] $A7:DB20 E8 INX $A7:DB21 E8 INX $A7:DB22 A9 00 20 LDA #$2000 $A7:DB25 95 D0 STA $D0,x [$7E:00D2] $A7:DB27 E8 INX $A7:DB28 E8 INX $A7:DB29 E2 20 SEP #$20 $A7:DB2B A9 7E LDA #$7E $A7:DB2D 95 D0 STA $D0,x [$7E:00D4] $A7:DB2F C2 20 REP #$20 $A7:DB31 E8 INX $A7:DB32 A9 00 48 LDA #$4800 $A7:DB35 95 D0 STA $D0,x [$7E:00D5] $A7:DB37 E8 INX $A7:DB38 E8 INX $A7:DB39 8E 30 03 STX $0330 [$7E:0330] $A7:DB3C 60 RTS } ; $DB3D: AI Script - Unknown { $A7:DB3D DA PHX $A7:DB3E BD B0 0F LDA $0FB0,x[$7E:0FB0] ; Counter $A7:DB41 F0 05 BEQ $05 [$DB48] $A7:DB43 DE B0 0F DEC $0FB0,x[$7E:0FB0] ; Counter $A7:DB46 FA PLX $A7:DB47 60 RTS $A7:DB48 AD B6 05 LDA $05B6 [$7E:05B6] ; Frame counter $A7:DB4B 89 03 00 BIT #$0003 $A7:DB4E D0 48 BNE $48 [$DB98] $A7:DB50 A9 0C 00 LDA #$000C $A7:DB53 8D EE 0F STA $0FEE [$7E:0FEE] $A7:DB56 20 5A DC JSR $DC5A [$A7:DC5A] $A7:DB59 90 3D BCC $3D [$DB98] $A7:DB5B E2 20 SEP #$20 $A7:DB5D A5 69 LDA $69 [$7E:0069] $A7:DB5F 09 02 ORA #$02 $A7:DB61 85 69 STA $69 [$7E:0069] $A7:DB63 C2 20 REP #$20 $A7:DB65 22 0B BA A0 JSL $A0BA0B[$A0:BA0B] $A7:DB69 AD 86 0F LDA $0F86 [$7E:0F86] $A7:DB6C 09 00 02 ORA #$0200 $A7:DB6F 8D 86 0F STA $0F86 [$7E:0F86] $A7:DB72 8D C6 0F STA $0FC6 [$7E:0FC6] $A7:DB75 8D 06 10 STA $1006 [$7E:1006] $A7:DB78 8D 46 10 STA $1046 [$7E:1046] $A7:DB7B AE 9F 07 LDX $079F [$7E:079F] $A7:DB7E BF 28 D8 7E LDA $7ED828,x[$7E:D82B] $A7:DB82 09 01 00 ORA #$0001 $A7:DB85 9F 28 D8 7E STA $7ED828,x[$7E:D82B] $A7:DB89 22 D7 83 84 JSL $8483D7[$84:83D7] $A7:DB91 A9 03 00 LDA #$0003 ;\ $A7:DB94 22 C1 8F 80 JSL $808FC1[$80:8FC1] ;} Queue elevator music track $A7:DB98 FA PLX $A7:DB99 60 RTS } ; $D89A: Unknown (1 caller) { $A7:DB9A C2 30 REP #$30 $A7:DB9C AD EE 0F LDA $0FEE [$7E:0FEE] $A7:DB9F 1A INC A $A7:DBA0 CD F0 0F CMP $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBA3 B0 08 BCS $08 [$DBAD] $A7:DBA5 A9 00 00 LDA #$0000 $A7:DBA8 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBAB 38 SEC $A7:DBAC 60 RTS $A7:DBAD A2 00 00 LDX #$0000 $A7:DBB0 DA PHX $A7:DBB1 BD 41 CA LDA $CA41,x[$A7:CA41] $A7:DBB4 A8 TAY $A7:DBB5 BF E0 C0 7E LDA $7EC0E0,x[$7E:C0E0] $A7:DBB9 AA TAX $A7:DBBA AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBBD 20 95 DC JSR $DC95 [$A7:DC95] $A7:DBC0 FA PLX $A7:DBC1 9F E0 C0 7E STA $7EC0E0,x[$7E:C0E0] $A7:DBC5 E8 INX $A7:DBC6 E8 INX $A7:DBC7 E0 20 00 CPX #$0020 $A7:DBCA 90 E4 BCC $E4 [$DBB0] $A7:DBCC AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBCF 1A INC A $A7:DBD0 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBD3 18 CLC $A7:DBD4 60 RTS } ; $DBD5: Unknown (1 caller) { $A7:DBD5 C2 30 REP #$30 $A7:DBD7 AD EE 0F LDA $0FEE [$7E:0FEE] $A7:DBDA 1A INC A $A7:DBDB CD F0 0F CMP $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBDE B0 08 BCS $08 [$DBE8] $A7:DBE0 A9 00 00 LDA #$0000 $A7:DBE3 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBE6 38 SEC $A7:DBE7 60 RTS $A7:DBE8 A2 00 00 LDX #$0000 $A7:DBEB DA PHX $A7:DBEC 20 0F DC JSR $DC0F [$A7:DC0F] $A7:DBEF BF E0 C0 7E LDA $7EC0E0,x[$7E:C0E0] $A7:DBF3 AA TAX $A7:DBF4 AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DBF7 20 95 DC JSR $DC95 [$A7:DC95] $A7:DBFA FA PLX $A7:DBFB 9F E0 C0 7E STA $7EC0E0,x[$7E:C0E0] $A7:DBFF E8 INX $A7:DC00 E8 INX $A7:DC01 E0 20 00 CPX #$0020 $A7:DC04 90 E5 BCC $E5 [$DBEB] $A7:DC06 AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC09 1A INC A $A7:DC0A 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC0D 18 CLC $A7:DC0E 60 RTS } ; $DC0F: Unknown (2 callers) { $A7:DC0F 86 18 STX $18 [$7E:0018] $A7:DC11 AE 54 0E LDX $0E54 [$7E:0E54] $A7:DC14 A9 C4 09 LDA #$09C4 $A7:DC17 4A LSR A $A7:DC18 4A LSR A $A7:DC19 4A LSR A $A7:DC1A 85 12 STA $12 [$7E:0012] $A7:DC1C 85 14 STA $14 [$7E:0014] $A7:DC1E 64 16 STZ $16 [$7E:0016] $A7:DC20 A5 14 LDA $14 [$7E:0014] $A7:DC22 DD 8C 0F CMP $0F8C,x[$7E:0F8C] $A7:DC25 10 11 BPL $11 [$DC38] $A7:DC27 A5 14 LDA $14 [$7E:0014] $A7:DC29 18 CLC $A7:DC2A 65 12 ADC $12 [$7E:0012] $A7:DC2C 85 14 STA $14 [$7E:0014] $A7:DC2E A5 16 LDA $16 [$7E:0016] $A7:DC30 1A INC A $A7:DC31 85 16 STA $16 [$7E:0016] $A7:DC33 C9 07 00 CMP #$0007 $A7:DC36 30 E8 BMI $E8 [$DC20] $A7:DC38 A5 16 LDA $16 [$7E:0016] $A7:DC3A 0A ASL A $A7:DC3B A8 TAY $A7:DC3C B9 4A DC LDA $DC4A,y[$A7:DC58] $A7:DC3F 18 CLC $A7:DC40 65 18 ADC $18 [$7E:0018] $A7:DC42 A8 TAY $A7:DC43 B9 00 00 LDA $0000,y[$A7:CC21] $A7:DC46 A8 TAY $A7:DC47 A6 18 LDX $18 [$7E:0018] $A7:DC49 60 RTS } ; $DC4A: Unknown data (used above) { $A7:DC4A db 41, CB, 61, CB, 81, CB, A1, CB, C1, CB, E1, CB, 01, CC, 21, CC } ; $DC5A: Unknown (1 caller) { $A7:DC5A C2 30 REP #$30 $A7:DC5C AD EE 0F LDA $0FEE [$7E:0FEE] $A7:DC5F 1A INC A $A7:DC60 CD F0 0F CMP $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC63 B0 08 BCS $08 [$DC6D] $A7:DC65 A9 00 00 LDA #$0000 $A7:DC68 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC6B 38 SEC $A7:DC6C 60 RTS $A7:DC6D A2 00 00 LDX #$0000 $A7:DC70 DA PHX $A7:DC71 BD 61 CA LDA $CA61,x[$A7:CA61] $A7:DC74 A8 TAY $A7:DC75 BF 00 C0 7E LDA $7EC000,x[$7E:C000] $A7:DC79 AA TAX $A7:DC7A AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC7D 20 95 DC JSR $DC95 [$A7:DC95] $A7:DC80 FA PLX $A7:DC81 9F 00 C0 7E STA $7EC000,x[$7E:C000] $A7:DC85 E8 INX $A7:DC86 E8 INX $A7:DC87 E0 E0 00 CPX #$00E0 $A7:DC8A 90 E4 BCC $E4 [$DC70] $A7:DC8C AD F0 0F LDA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC8F 1A INC A $A7:DC90 8D F0 0F STA $0FF0 [$7E:0FF0] ; Counter for appearing/disappearing $A7:DC93 18 CLC $A7:DC94 60 RTS } ; $DC95: Unknown (3 callers) { $A7:DC95 48 PHA $A7:DC96 48 PHA $A7:DC97 DA PHX $A7:DC98 5A PHY $A7:DC99 A3 01 LDA $01,s [$7E:1FE0] $A7:DC9B 29 1F 00 AND #$001F $A7:DC9E A8 TAY $A7:DC9F A3 03 LDA $03,s [$7E:1FE2] $A7:DCA1 29 1F 00 AND #$001F $A7:DCA4 AA TAX $A7:DCA5 A3 05 LDA $05,s [$7E:1FE4] $A7:DCA7 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7:DCAA 83 07 STA $07,s [$7E:1FE6] $A7:DCAC A3 01 LDA $01,s [$7E:1FE0] $A7:DCAE 0A ASL A $A7:DCAF 0A ASL A $A7:DCB0 0A ASL A $A7:DCB1 EB XBA $A7:DCB2 29 1F 00 AND #$001F $A7:DCB5 A8 TAY $A7:DCB6 A3 03 LDA $03,s [$7E:1FE2] $A7:DCB8 0A ASL A $A7:DCB9 0A ASL A $A7:DCBA 0A ASL A $A7:DCBB EB XBA $A7:DCBC 29 1F 00 AND #$001F $A7:DCBF AA TAX $A7:DCC0 A3 05 LDA $05,s [$7E:1FE4] $A7:DCC2 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7:DCC5 0A ASL A $A7:DCC6 0A ASL A $A7:DCC7 0A ASL A $A7:DCC8 0A ASL A $A7:DCC9 0A ASL A $A7:DCCA 03 07 ORA $07,s [$7E:1FE6] $A7:DCCC 83 07 STA $07,s [$7E:1FE6] $A7:DCCE A3 01 LDA $01,s [$7E:1FE0] $A7:DCD0 4A LSR A $A7:DCD1 4A LSR A $A7:DCD2 EB XBA $A7:DCD3 29 1F 00 AND #$001F $A7:DCD6 A8 TAY $A7:DCD7 A3 03 LDA $03,s [$7E:1FE2] $A7:DCD9 4A LSR A $A7:DCDA 4A LSR A $A7:DCDB EB XBA $A7:DCDC 29 1F 00 AND #$001F $A7:DCDF AA TAX $A7:DCE0 A3 05 LDA $05,s [$7E:1FE4] $A7:DCE2 20 F1 DC JSR $DCF1 [$A7:DCF1] $A7:DCE5 0A ASL A $A7:DCE6 0A ASL A $A7:DCE7 EB XBA $A7:DCE8 03 07 ORA $07,s [$7E:1FE6] $A7:DCEA 83 07 STA $07,s [$7E:1FE6] $A7:DCEC 7A PLY $A7:DCED FA PLX $A7:DCEE 68 PLA $A7:DCEF 68 PLA $A7:DCF0 60 RTS } ; $DCF1: Unknown (3 callers - all in routine above) { $A7:DCF1 C9 00 00 CMP #$0000 $A7:DCF4 D0 02 BNE $02 [$DCF8] $A7:DCF6 8A TXA $A7:DCF7 60 RTS $A7:DCF8 3A DEC A $A7:DCF9 CD EE 0F CMP $0FEE [$7E:0FEE] $A7:DCFC D0 02 BNE $02 [$DD00] $A7:DCFE 98 TYA $A7:DCFF 60 RTS $A7:DD00 DA PHX $A7:DD01 1A INC A $A7:DD02 85 14 STA $14 [$7E:0014] $A7:DD04 98 TYA $A7:DD05 38 SEC $A7:DD06 E3 01 SBC $01,s [$7E:1FDC] $A7:DD08 85 12 STA $12 [$7E:0012] $A7:DD0A 10 04 BPL $04 [$DD10] $A7:DD0C 49 FF FF EOR #$FFFF $A7:DD0F 1A INC A $A7:DD10 E2 21 SEP #$21 $A7:DD12 9C 04 42 STZ $4204 [$7E:4204] $A7:DD15 8D 05 42 STA $4205 [$7E:4205] $A7:DD18 AD EE 0F LDA $0FEE [$7E:0FEE] $A7:DD1B E5 14 SBC $14 [$7E:0014] $A7:DD1D 1A INC A $A7:DD1E 8D 06 42 STA $4206 [$7E:4206] $A7:DD21 C2 20 REP #$20 $A7:DD23 EA NOP $A7:DD24 EA NOP $A7:DD25 EA NOP $A7:DD26 EA NOP $A7:DD27 EA NOP $A7:DD28 AD 14 42 LDA $4214 [$7E:4214] $A7:DD2B 24 12 BIT $12 [$7E:0012] $A7:DD2D 10 04 BPL $04 [$DD33] $A7:DD2F 49 FF FF EOR #$FFFF $A7:DD32 1A INC A $A7:DD33 85 12 STA $12 [$7E:0012] $A7:DD35 68 PLA $A7:DD36 EB XBA $A7:DD37 18 CLC $A7:DD38 65 12 ADC $12 [$7E:0012] $A7:DD3A EB XBA $A7:DD3B 29 FF 00 AND #$00FF $A7:DD3E 60 RTS } ; $DD3F: Subroutine - Hurt AI - enemy $E4BF (Phantoon) { $A7:DD3F 08 PHP $A7:DD40 C2 30 REP #$30 $A7:DD42 AD 9C 0F LDA $0F9C [$7E:0F9C] $A7:DD45 C9 08 00 CMP #$0008 $A7:DD48 F0 10 BEQ $10 [$DD5A] $A7:DD4A AD A4 0F LDA $0FA4 [$7E:0FA4] $A7:DD4D 89 02 00 BIT #$0002 $A7:DD50 D0 22 BNE $22 [$DD74] $A7:DD52 AD 36 10 LDA $1036 [$7E:1036] $A7:DD55 89 00 FF BIT #$FF00 $A7:DD58 F0 39 BEQ $39 [$DD93] $A7:DD5A A2 1E 00 LDX #$001E $A7:DD5D 20 0F DC JSR $DC0F [$A7:DC0F] $A7:DD60 98 TYA $A7:DD61 9F E0 C0 7E STA $7EC0E0,x[$7E:C0FE] $A7:DD65 CA DEX $A7:DD66 CA DEX $A7:DD67 10 F4 BPL $F4 [$DD5D] $A7:DD69 AD 36 10 LDA $1036 [$7E:1036] $A7:DD6C 29 FF 00 AND #$00FF $A7:DD6F 8D 36 10 STA $1036 [$7E:1036] $A7:DD72 80 1F BRA $1F [$DD93] $A7:DD74 AD 36 10 LDA $1036 [$7E:1036] $A7:DD77 89 00 FF BIT #$FF00 $A7:DD7A D0 17 BNE $17 [$DD93] $A7:DD7C A2 1E 00 LDX #$001E $A7:DD7F A9 FF 7F LDA #$7FFF $A7:DD82 9F E0 C0 7E STA $7EC0E0,x[$7E:C0FE] $A7:DD86 CA DEX $A7:DD87 CA DEX $A7:DD88 10 F5 BPL $F5 [$DD7F] $A7:DD8A AD 36 10 LDA $1036 [$7E:1036] $A7:DD8D 09 00 01 ORA #$0100 $A7:DD90 8D 36 10 STA $1036 [$7E:1036] $A7:DD93 28 PLP $A7:DD94 6B RTL } ; $DD95: Enemy touch - enemy $E4BF (Phantoon) { $A7:DD95 22 97 A4 A0 JSL $A0A497[$A0:A497] $A7:DD99 6B RTL } ; $DD9A: RTL. Power bomb reaction - enemy $E4BF (Phantoon) { $A7:DD9A 6B RTL } ; $DD9B: Enemy Shot - enemy $E4BF (Phantoon) { $A7:DD9B 8B PHB $A7:DD9C AD B2 0F LDA $0FB2 [$7E:0FB2] $A7:DD9F C9 48 D9 CMP #$D948 $A7:DDA2 30 02 BMI $02 [$DDA6] $A7:DDA4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $A7:DDA6 AE 54 0E LDX $0E54 [$7E:0E54] $A7:DDA9 BD 8C 0F LDA $0F8C,x[$7E:0F8C] $A7:DDAC 48 PHA $A7:DDAD 22 A7 A6 A0 JSL $A0A6A7[$A0:A6A7] $A7:DDB1 68 PLA $A7:DDB2 85 12 STA $12 [$7E:0012] $A7:DDB4 BD 8C 0F LDA $0F8C,x[$7E:0F8C] $A7:DDB7 D0 1B BNE $1B [$DDD4] $A7:DDB9 A9 73 00 LDA #$0073 $A7:DDBC 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:DDC0 A9 01 00 LDA #$0001 $A7:DDC3 8D 36 10 STA $1036 [$7E:1036] $A7:DDC6 AD 86 0F LDA $0F86 [$7E:0F86] $A7:DDC9 09 00 04 ORA #$0400 $A7:DDCC 8D 86 0F STA $0F86 [$7E:0F86] $A7:DDCF 20 21 D4 JSR $D421 [$A7:D421] $A7:DDD2 AB PLB $A7:DDD3 6B RTL $A7:DDD4 BD 8A 0F LDA $0F8A,x[$7E:0F8A] $A7:DDD7 89 02 00 BIT #$0002 $A7:DDDA F0 F6 BEQ $F6 [$DDD2] $A7:DDDC A9 73 00 LDA #$0073 $A7:DDDF 22 CB 90 80 JSL $8090CB[$80:90CB] $A7:DDE3 BD B2 0F LDA $0FB2,x[$7E:0FB2] $A7:DDE6 C9 0D D6 CMP #$D60D $A7:DDE9 F0 43 BEQ $43 [$DE2E] $A7:DDEB C9 88 D7 CMP #$D788 $A7:DDEE F0 3E BEQ $3E [$DE2E] $A7:DDF0 C9 78 D6 CMP #$D678 $A7:DDF3 F0 03 BEQ $03 [$DDF8] $A7:DDF5 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $A7:DDF8 A5 12 LDA $12 [$7E:0012] $A7:DDFA 38 SEC $A7:DDFB FD 8C 0F SBC $0F8C,x[$7E:0F8C] $A7:DDFE 85 12 STA $12 [$7E:0012] $A7:DE00 C9 2C 01 CMP #$012C $A7:DE03 30 13 BMI $13 [$DE18] $A7:DE05 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $A7:DE18 BD 2A 10 LDA $102A,x[$7E:102A] $A7:DE1B 18 CLC $A7:DE1C 65 12 ADC $12 [$7E:0012] $A7:DE1E 9D 2A 10 STA $102A,x[$7E:102A] $A7:DE21 C9 2C 01 CMP #$012C $A7:DE24 30 6C BMI $6C [$DE92] $A7:DE26 A9 01 00 LDA #$0001 $A7:DE29 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:DE2C 80 64 BRA $64 [$DE92] $A7:DE2E A5 12 LDA $12 [$7E:0012] $A7:DE30 38 SEC $A7:DE31 FD 8C 0F SBC $0F8C,x[$7E:0F8C] $A7:DE34 85 12 STA $12 [$7E:0012] $A7:DE36 C9 2C 01 CMP #$012C $A7:DE39 30 13 BMI $13 [$DE4E] $A7:DE3B ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; $A7:DE4E BD 2A 10 LDA $102A,x[$7E:102A] $A7:DE51 18 CLC $A7:DE52 65 12 ADC $12 [$7E:0012] $A7:DE54 9D 2A 10 STA $102A,x[$7E:102A] $A7:DE57 C9 2C 01 CMP #$012C $A7:DE5A 10 3E BPL $3E [$DE9A] $A7:DE5C 22 11 81 80 JSL $808111[$80:8111] $A7:DE60 29 07 00 AND #$0007 $A7:DE63 A8 TAY $A7:DE64 B9 A5 CD LDA $CDA5,y[$A7:CDA5] $A7:DE67 29 FF 00 AND #$00FF $A7:DE6A 8D EA 0F STA $0FEA [$7E:0FEA] $A7:DE6D 98 TYA $A7:DE6E 8D 76 10 STA $1076 [$7E:1076] $A7:DE71 A9 01 00 LDA #$0001 $A7:DE74 8D 36 10 STA $1036 [$7E:1036] $A7:DE77 AD 28 10 LDA $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:DE7A D0 14 BNE $14 [$DE90] $A7:DE7C A9 01 00 LDA #$0001 $A7:DE7F 8D 28 10 STA $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:DE82 BD B0 0F LDA $0FB0,x[$7E:0FB0] ; Counter $A7:DE85 C9 10 00 CMP #$0010 $A7:DE88 30 06 BMI $06 [$DE90] $A7:DE8A A9 10 00 LDA #$0010 $A7:DE8D 9D B0 0F STA $0FB0,x[$7E:0FB0] ; Counter $A7:DE90 AB PLB $A7:DE91 6B RTL $A7:DE92 A9 02 00 LDA #$0002 $A7:DE95 8D 36 10 STA $1036 [$7E:1036] $A7:DE98 AB PLB $A7:DE99 6B RTL $A7:DE9A A9 B9 D6 LDA #$D6B9 $A7:DE9D 9D B2 0F STA $0FB2,x[$7E:0FB2] $A7:DEA0 9E B0 0F STZ $0FB0,x[$7E:0FB0] ; Counter $A7:DEA3 9C 28 10 STZ $1028 [$7E:1028] ; How much damage we did right after he opened up $A7:DEA6 9E 2A 10 STZ $102A,x[$7E:102A] $A7:DEA9 AD 88 19 LDA $1988 [$7E:1988] $A7:DEAC 09 00 40 ORA #$4000 $A7:DEAF 8D 88 19 STA $1988 [$7E:1988] $A7:DEB2 A9 01 00 LDA #$0001 $A7:DEB5 8D 94 0F STA $0F94 [$7E:0F94] $A7:DEB8 8D D4 0F STA $0FD4 [$7E:0FD4] $A7:DEBB A9 41 CC LDA #$CC41 $A7:DEBE 8D 92 0F STA $0F92 [$7E:0F92] ; Enemy instructions $A7:DEC1 A9 91 CC LDA #$CC91 $A7:DEC4 8D D2 0F STA $0FD2 [$7E:0FD2] $A7:DEC7 AD 86 0F LDA $0F86 [$7E:0F86] $A7:DECA 09 00 04 ORA #$0400 $A7:DECD 8D 86 0F STA $0F86 [$7E:0F86] $A7:DED0 9C F2 0F STZ $0FF2 [$7E:0FF2] ; Phase counter? $A7:DED3 80 BD BRA $BD [$DE92] } ; Unknown data { $A7:DEDD db 01, 00, 00, 00, 00, 00, AA, E0, 20, E0, 01, 00, 00, 00, 00, 00, AA, E0, 2E, E0, 01, 00, 00, 00, 00, 00, AA, E0, 6C, E0, 01, 00, 00, 00, 00, 00, 36, E2 $A7:DF05 db 01, 00, 00, 00, 00, 00, 36, E2 $A7:DF0F db 01, 00, 00, 00, 00, 00, 02, E2 $A7:DF19 db 01, 00, 00, 00, 00, 00, CE, E1 $A7:DF23 db 01, 00, 00, 00, 00, 00, 6A, E2 $A7:DF37 db 01, 00, 00, 00, 00, 00, 92, E2 $A7:DF41 db 01, 00, 00, 00, 00, 00, A6, E2 $A7:DF4B db 01, 00, 00, 00, 00, 00, BA, E2 $A7:DF55 db 01, 00, 00, 00, 00, 00, CE, E2 $A7:DF5F db 01, 00, 00, 00, 00, 00, E2, E2 $A7:DF73 db 01, 00, 00, 00, 00, 00, 0A, E3 $A7:DFB3 db 02, 00, 00, 00, 00, 00, 1E, E3 $A7:DFBD db 00, 00, 00, 00, 4E, E3 $A7:DFC5 db 02, 00, 00, 00, 00, 00, 2E, E3 $A7:DFCF db 00, 00, 00, 00, 5E, E3 $A7:DFD7 db 02, 00, 00, 00, 00, 00, 3E, E3 $A7:DFE1 db 00, 00, 00, 00, 6E, E3 $A7:DFE9 db 01, 00, 00, 00, 00, 00, 7E, E3 $A7:DFF3 db 01, 00, 00, 00, 00, 00, 9A, E3 $A7:DFFD db 01, 00, 00, 00, 00, 00, B6, E3 } ; $E011: RTL. Initialisation AI - enemy $E53F/$E57F (Phantoon) { $A7:E011 6B RTL } ; Unknown data { $A7:E020 db 01, 00, 00, 00 $A7:E026 db 00, 00 $A7:E02E db 05, 00, DF, FF, D8, FF, 20, 00, 38, 00, 95, DD, 9B, DD, F7, FF, 16, 00, 08, 00, 27, 00 $A7:E048 db E9, FF, 34, 00, F0, FF, 47, 00 $A7:E054 db 0F, 00, 35, 00, 16, 00, 46, 00 $A7:E05E db 9B, DD, F4, FF, 35, 00, 0B, 00, 45, 00, 95, DD, 9B, DD, 01, 00, F7, FF, 16, 00, 08, 00, 27, 00 $A7:E078 db 9B, DD $A7:E0AA db FE, FF, 00, 20, 0A, 00, 38, 23, 38, 23, 38, 23, 32, 3D, 33, 3D, 33, 7D, 32, 7D, 38, 23, 38, 23, 38, 23, 40, 20, 0A, 00, 38, 23, 40, 3D, 41, 3D, 42, 3D, 43, 3D, 43, 7D, 42, 7D, 41, 7D, 40, 7D, 38, 23, 80, 20, 0A, 00, 38, 23, 50, 3D, 51, 3D, 52, 3D, 53, 3D, 53, 7D, 52, 7D, 51, 7D, 50, 7D, 38, 23, C0, 20, 0A, 00, 78, 3D, 60, 3D, 61, 3D, 62, 3D, 63, 3D, 63, 7D, 62, 7D, 61, 7D, 60, 7D, 78, 7D, 00, 21, 0A, 00, 79, 3D, 70, 3D, 71, 3D, 72, 3D, 73, 3D, 73, 7D, 72, 7D, 71, 7D, 70, 7D, 79, 7D, 40, 21, 0A, 00, 78, BD, 34, 3D, 35, 3D, 36, 3D, 37, 3D, 37, 7D, 36, 7D, 35, 7D, 34, 7D, 78, FD, 80, 21, 0A, 00, 38, 23, 44, 3D, 45, 3D, 46, 3D, 47, 3D, 47, 7D, 46, 7D, 45, 7D, 44, 7D, 38, 23, C0, 21, 0A, 00, 38, 23, 54, 3D, 55, 3D, 56, 3D, 57, 3D, 57, 7D, 56, 7D, 55, 7D, 54, 7D, 38, 23, 00, 22, 0A, 00, 38, 23, 64, 3D, 65, 3D, 66, 3D, 38, 23, 38, 23, 66, 7D, 65, 7D, 64, 7D, 38, 23, 40, 22, 0A, 00, 38, 23, 74, 3D, 75, 3D, 76, 3D, 38, 23, 38, 23, 76, 7D, 75, 7D, 74, 7D, 38, 23, 80, 22, 0A, 00, 38, 23, 38, 23, 38, 3D, 39, 3D, 3A, 3D, 3A, 7D, 39, 7D, 38, 7D, 38, 23, 38, 23, C0, 22, 0A, 00, 38, 23, 38, 23, 48, 3D, 49, 3D, 4A, 3D, 4A, 7D, 49, 7D, 48, 7D, 38, 23, 38, 23, FF, FF, FE, FF, C6, 21, 04, 00, 56, 3D, 57, 3D, 57, 7D, 56, 7D, 06, 22, 04, 00, 66, 3D, 67, 3D, 3F, 3D, 66, 7D, 46, 22, 04, 00, 76, 3D, 77, 3D, 4F, 3D, 76, 7D, 86, 22, 04, 00, 39, 3D, 3A, 3D, 3A, 7D, 39, 7D, FF, FF, FE, FF, C6, 21, 04, 00, 3D, 3D, 3E, 3D, 3E, 7D, 3D, 7D, 06, 22, 04, 00, 4D, 3D, 4E, 3D, 5F, 3D, 4D, 7D, 46, 22, 04, 00, 5D, 3D, 5E, 3D, 6F, 3D, 5D, 7D, 86, 22, 04, 00, 6D, 3D, 6E, 3D, 6E, 7D, 6D, 7D, FF, FF, FE, FF, C6, 21, 04, 00, 3B, 3D, 3C, 3D, 3C, 7D, 3B, 7D, 06, 22, 04, 00, 4B, 3D, 4C, 3D, 4C, 7D, 4B, 7D, 46, 22, 04, 00, 5B, 3D, 5C, 3D, 5C, 7D, 5B, 7D, 86, 22, 04, 00, 6B, 3D, 6C, 3D, 6C, 7D, 6B, 7D, FF, FF, FE, FF, 08, 22, 02, 00, 67, 3D, 3F, 3D, 48, 22, 02, 00, 77, 3D, 4F, 3D, FF, FF $A7:E292 db FE, FF, 08, 22, 02, 00, 12, 3D, 13, 3D, 48, 22, 02, 00, 22, 3D, 23, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 14, 3D, 15, 3D, 48, 22, 02, 00, 24, 3D, 25, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 16, 3D, 17, 3D, 48, 22, 02, 00, 26, 3D, 27, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 18, 3D, 19, 3D, 48, 22, 02, 00, 28, 3D, 29, 3D, FF, FF, FE, FF, 08, 22, 02, 00, 1A, 3D, 1B, 3D, 48, 22, 02, 00, 2A, 3D, 2B, 3D, FF, FF $A7:E30A db FE, FF, 08, 22, 02, 00, 1E, 3D, 1F, 3D, 48, 22, 02, 00, 2E, 3D, 2F, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 58, 3D, 44, 23, 01, 00, 68, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 81, 3D, 44, 23, 01, 00, 83, 3D, FF, FF, FE, FF, 04, 23, 01, 00, 80, 3D, 44, 23, 01, 00, 82, 3D, FF, FF, FE, FF, 0E, 23, 01, 00, 58, 7D, 4E, 23, 01, 00, 68, 7D, FF, FF, FE, FF, 0E, 23, 01, 00, 81, 7D, 4E, 23, 01, 00, 83, 7D, FF, FF, FE, FF, 0E, 23, 01, 00, 80, 7D, 4E, 23, 01, 00, 82, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 59, 3D, 5A, 3D, 5A, 7D, 59, 7D, 46, 23, 04, 00, 69, 3D, 6A, 3D, 6A, 7D, 69, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 7A, 3D, 7B, 3D, 7B, 7D, 7A, 7D, 46, 23, 04, 00, 7C, 3D, 7D, 3D, 7D, 7D, 7C, 7D, FF, FF, FE, FF, 06, 23, 04, 00, 7E, 3D, 7F, 3D, 7F, 7D, 7E, 7D, 46, 23, 04, 00, 30, 3D, 31, 3D, 31, 7D, 30, 7D, FF, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 01, 00, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 01, 01, 00, 01, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 01, 01, 01, 01, 01, 01, 01, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, FF, 01, 00, 01, FF, 00, 00, 01, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 01, 00, 01, FF, 00, FF, 01, FF, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 01, FF, 00, FF, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, FF, 00, FF, 01, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, FF, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, 00, FF, FF, 00, FF, FF, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, 00, FF, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 00, FF, 01, FF, 00, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, FF, 00, FF, 01, FF, 00, FF, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, FF, 01, FF, 01, FF, 01, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, FF, 00, 00, 01, 00, 01, FF, 00, 00, 01, FF, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, FF, 00, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 01, 01, 01, 00, 01, 01, 00, 01, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 01, 01, 00, 01, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 00, 01, 01, 00, 01, 00, 01, 00, 01, 00, 01, 01, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 01, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF, 01, FF, 00, FF, 01, 00, 00, FF, 01, 00, 00, FF }