;;; General notes ;;; { ; The only calls to this bank are: ; $2:4000 (handle enemies) from $05DE (handle enemies) ; $2:418C from $03B5 (game mode 2: loading save) } ;;; $4000: Handle enemies ;;; { ; Externally called by: ; $05DE: Handle enemies ; $3A01 ROM2:4000 1E 00 ld e,00 ROM2:4002 FA 58 D0 ld a,(D058) ;\ ROM2:4005 3C inc a ;} $C418 = [room bank] ROM2:4006 EA 18 C4 ld (C418),a ;/ ROM2:4009 FA 9E D0 ld a,(D09E) ;\ ROM2:400C A7 and a ;} If play room song: ROM2:400D 28 1A jr z,4029 ;/ ROM2:400F 5F ld e,a ; e = [play room song flag] (is this even used?) ROM2:4010 AF xor a ROM2:4011 EA 74 C4 ld (C474),a ; $C474 = 0 ROM2:4014 EA 75 C4 ld (C475),a ; $C475 = 0 ROM2:4017 EA 9E D0 ld (D09E),a ; Play room song flag = 0 ROM2:401A 3E FF ld a,FF ROM2:401C 21 66 C4 ld hl,C466 ;\ ROM2:401F 22 ldi (hl),a ;| ROM2:4020 22 ldi (hl),a ;} $C466..68 = FFh ROM2:4021 77 ld (hl),a ;/ ROM2:4022 21 5D D0 ld hl,D05D ;\ ROM2:4025 22 ldi (hl),a ;| ROM2:4026 22 ldi (hl),a ;} $D05D..60 = FFh ROM2:4027 22 ldi (hl),a ;| ROM2:4028 77 ld (hl),a ;/ ROM2:4029 FA 65 C4 ld a,(C465) ;\ ROM2:402C A7 and a ;} If [$C465] = 0: go to BRANCH_GAMMA ROM2:402D 28 34 jr z,4063 ;/ ROM2:402F FE 02 cp 02 ;\ ROM2:4031 28 06 jr z,4039 ;} If [$C465] = 2: go to BRANCH_ALPHA ROM2:4033 7B ld a,e ;\ ROM2:4034 A7 and a ;} If not play room song: go to BRANCH_GAMMA ROM2:4035 28 2C jr z,4063 ;/ ROM2:4037 18 12 jr 404B ; Go to BRANCH_BETA ; BRANCH_ALPHA ROM2:4039 21 1B C4 ld hl,C41B ;\ ROM2:403C 7E ld a,(hl) ;| ROM2:403D FE 90 cp 90 ;} If [$C41B] = 90h: go to BRANCH_BETA ROM2:403F 28 0A jr z,404B ;/ ROM2:4041 FA 97 FF ld a,(FF97) ;\ ROM2:4044 E6 01 and 01 ;} If [frame counter] & 1 != 0: go to BRANCH_GAMMA ROM2:4046 20 1B jr nz,4063 ;/ ROM2:4048 34 inc (hl) ; Increment $C41B ROM2:4049 18 18 jr 4063 ; Go to BRANCH_GAMMA ; BRANCH_BETA ROM2:404B FA 89 D0 ld a,(D089) ;\ ROM2:404E A7 and a ;} If [real number of Metroids remaining] != 0: ROM2:404F 28 08 jr z,4059 ;/ ROM2:4051 FA 92 D0 ld a,(D092) ;\ ROM2:4054 C6 11 add a,11 ;} Song to play = [room song] + 11h ROM2:4056 EA DC CE ld (CEDC),a ;/ ROM2:4059 AF xor a ROM2:405A EA 1B C4 ld (C41B),a ; $C41B = 0 ROM2:405D EA 1C C4 ld (C41C),a ; $C41C = 0 ROM2:4060 EA 65 C4 ld (C465),a ; $C465 = 0 ; BRANCH_GAMMA ROM2:4063 FA 69 D0 ld a,(D069) ;\ ROM2:4066 EA 07 C4 ld (C407),a ;} $C407 = [enemy solid block threshold] ROM2:4069 21 4B C4 ld hl,C44B ;\ ROM2:406C 7E ld a,(hl) ;| ROM2:406D A7 and a ;} If [$C44B]: (set during door transition) ROM2:406E 28 07 jr z,4077 ;/ ROM2:4070 CD 8C 41 call 418C ; Execute subroutine $418C ROM2:4073 AF xor a ;\ ROM2:4074 EA 4B C4 ld (C44B),a ;} $C44B = 0 ROM2:4077 FA 44 FF ld a,(FF44) ;\ ROM2:407A FE 70 cp 70 ;} If LCD Y >= 70h: return ROM2:407C D0 ret nc ;/ ROM2:407D FA 36 C4 ld a,(C436) ;\ ROM2:4080 A7 and a ;} If [$C436] = 0: (set by load from save and leaving queen's room) ROM2:4081 20 08 jr nz,408B ;/ ROM2:4083 CD 2F 41 call 412F ; Execute subroutine $412F ROM2:4086 3E 01 ld a,01 ;\ ROM2:4088 EA 36 C4 ld (C436),a ;} $C436 = 1 ROM2:408B CD BA 3D call 3DBA ; Execute subroutine $3:6BD2 ROM2:408E CD 9E 40 call 409E ; Execute subroutine $409E ROM2:4091 CD CA 45 call 45CA ; Update scroll history ROM2:4094 FA 44 FF ld a,(FF44) ;\ ROM2:4097 FE 70 cp 70 ;} If LCD Y >= 70h: return ROM2:4099 D0 ret nc ;/ ROM2:409A CD CE 3D call 3DCE ; Draw enemies ROM2:409D C9 ret } ;;; $409E: ;;; { ROM2:409E 11 20 00 ld de,0020 ROM2:40A1 FA 52 C4 ld a,(C452) ;\ ROM2:40A4 6F ld l,a ;| ROM2:40A5 FA 53 C4 ld a,(C453) ;} hl = [$C452] ROM2:40A8 67 ld h,a ;/ ROM2:40A9 FA 38 C4 ld a,(C438) ;\ ROM2:40AC A7 and a ;} If enemy handling not incomplete: ROM2:40AD 20 0B jr nz,40BA ;/ ROM2:40AF F0 FE ld a,(FF00+FE) ;\ ROM2:40B1 3C inc a ;} Increment enemy frame counter ROM2:40B2 E0 FE ld (FF00+FE),a ;/ ROM2:40B4 FA 25 C4 ld a,(C425) ;\ ROM2:40B7 EA 39 C4 ld (C439),a ;} Current enemy index = [number of enemies] ROM2:40BA FA 39 C4 ld a,(C439) ;\ ROM2:40BD A7 and a ;} If [current enemy index] = 0: go to BRANCH_COMPLETED ROM2:40BE CA 10 41 jp z,4110 ;/ ; LOOP ROM2:40C1 7E ld a,(hl) ;\ ROM2:40C2 E6 0F and 0F ;} If [[hl]] & Fh = 0: go to BRANCH_TYPE_0 (guessing on-screen) ROM2:40C4 28 06 jr z,40CC ;/ ROM2:40C6 3D dec a ;\ ROM2:40C7 28 2D jr z,40F6 ;} If [[hl]] & Fh = 1: go to BRANCH_TYPE_1 (guessing off-screen) ; BRANCH_NEXT ROM2:40C9 19 add hl,de ; hl += 20h ROM2:40CA 18 F5 jr 40C1 ; Go to LOOP ; BRANCH_TYPE_0 ROM2:40CC CD D2 43 call 43D2 ; Copy enemy to working enemy ROM2:40CF CD 39 42 call 4239 ; Execute subroutine $4239 ROM2:40D2 CD 2E 45 call 452E ; Execute subroutine $452E ROM2:40D5 CD 30 56 call 5630 ; Execute subroutine $5630 ; BRANCH_PROCESSED_ENEMY ROM2:40D8 CD 21 44 call 4421 ; Copy working enemy to enemy ROM2:40DB FA 39 C4 ld a,(C439) ;\ ROM2:40DE 3D dec a ;} Decrement current enemy index ROM2:40DF EA 39 C4 ld (C439),a ;/ ROM2:40E2 28 2C jr z,4110 ; If [current enemy index] = 0: go to BRANCH_COMPLETED ROM2:40E4 11 20 00 ld de,0020 ROM2:40E7 F0 FC ld a,(FF00+FC) ;\ ROM2:40E9 6F ld l,a ;| ROM2:40EA F0 FD ld a,(FF00+FD) ;} hl = [$FFFC] ROM2:40EC 67 ld h,a ;/ ROM2:40ED FA 44 FF ld a,(FF44) ;\ ROM2:40F0 FE 58 cp 58 ;} If LCD Y >= 58h: go to BRANCH_INCOMPLETE ROM2:40F2 30 0D jr nc,4101 ;/ ROM2:40F4 18 D3 jr 40C9 ; Go to BRANCH_NEXT ; BRANCH_TYPE_1 ROM2:40F6 CD D2 43 call 43D2 ; Copy enemy to working enemy ROM2:40F9 CD 64 44 call 4464 ; Execute subroutine $4464 ROM2:40FC CD C0 44 call 44C0 ; Execute subroutine $44C0 ROM2:40FF 18 D7 jr 40D8 ; Go to BRANCH_PROCESSED_ENEMY ; BRANCH_INCOMPLETE ROM2:4101 19 add hl,de ;\ ROM2:4102 7D ld a,l ;| ROM2:4103 EA 52 C4 ld (C452),a ;} $C452 = [hl] + 20h ROM2:4106 7C ld a,h ;| ROM2:4107 EA 53 C4 ld (C453),a ;/ ROM2:410A 21 38 C4 ld hl,C438 ;\ ROM2:410D 34 inc (hl) ;} Set enemy handling incomplete flag ROM2:410E 18 15 jr 4125 ; Go to BRANCH_RETURN ; BRANCH_COMPLETED ROM2:4110 AF xor a ;\ ROM2:4111 EA 52 C4 ld (C452),a ;| ROM2:4114 3E C6 ld a,C6 ;} $C452 = $C600 (enemy data address) ROM2:4116 EA 53 C4 ld (C453),a ;/ ROM2:4119 21 38 C4 ld hl,C438 ;\ ROM2:411C 7E ld a,(hl) ;| ROM2:411D A7 and a ;} If enemy handling not incomplete: ROM2:411E 28 04 jr z,4124 ;/ ROM2:4120 AF xor a ;\ ROM2:4121 77 ld (hl),a ;} Clear enemy handling incomplete flag ROM2:4122 18 01 jr 4125 ; Go to BRANCH_RETURN ROM2:4124 34 inc (hl) ; Set enemy handling incomplete flag ; BRANCH_RETURN ROM2:4125 FA 44 FF ld a,(FF44) ;\ ROM2:4128 FE 6C cp 6C ;} If LCD Y >= 6Ch: return ROM2:412A D0 ret nc ;/ ROM2:412B CD E2 3D call 3DE2 ; Execute subroutine $3:4000 ROM2:412E C9 ret } ;;; $412F: ;;; { ROM2:412F 16 00 ld d,00 ROM2:4131 FA 58 D0 ld a,(D058) ;\ ROM2:4134 EA 59 C4 ld (C459),a ;} $C459 = [room bank] ROM2:4137 D6 09 sub 09 ;\ ROM2:4139 CB 37 swap a ;| ROM2:413B 87 add a,a ;| ROM2:413C 87 add a,a ;| ROM2:413D 5F ld e,a ;} hl = $C900 + ([$C459] - 9) * 40h ROM2:413E CB 12 rl d ;| ROM2:4140 21 00 C9 ld hl,C900 ;| ROM2:4143 19 add hl,de ;/ ROM2:4144 11 40 C5 ld de,C540 ;\ ROM2:4147 06 40 ld b,40 ;| ;| ROM2:4149 2A ldi a,(hl) ;| ROM2:414A 12 ld (de),a ;} $C540..7F = [hl]..[hl]+3Fh ROM2:414B 1C inc e ;| ROM2:414C 05 dec b ;| ROM2:414D 20 FA jr nz,4149 ;/ ROM2:414F 3E C6 ld a,C6 ;\ ROM2:4151 EA 53 C4 ld (C453),a ;| ROM2:4154 AF xor a ;} $C452 = $C600 (enemy data address) ROM2:4155 EA 52 C4 ld (C452),a ;/ ROM2:4158 EA 1C C4 ld (C41C),a ; $C41C = 0 ROM2:415B EA 65 C4 ld (C465),a ; $C465 = 0 ROM2:415E EA 63 C4 ld (C463),a ; Metroid is hatching flag = 0 ROM2:4161 EA 25 C4 ld (C425),a ; Number of enemies = 0 ROM2:4164 EA 26 C4 ld (C426),a ; $C426 = 0 ROM2:4167 EA 27 C4 ld (C427),a ; $C427 = 0 ROM2:416A EA 38 C4 ld (C438),a ; Enemy handling incomplete flag = 0 ROM2:416D 3E FF ld a,FF ROM2:416F EA 66 C4 ld (C466),a ;\ ROM2:4172 EA 67 C4 ld (C467),a ;} $C466..68 = FFh ROM2:4175 EA 68 C4 ld (C468),a ;/ ROM2:4178 EA 6D C4 ld (C46D),a ; $C46D = FFh ROM2:417B 21 32 C4 ld hl,C432 ROM2:417E FA 05 C2 ld a,(C205) ;\ ROM2:4181 22 ldi (hl),a ;} Scroll Y two frames ago = scroll Y one frames ago = [scroll Y] ROM2:4182 22 ldi (hl),a ;/ ROM2:4183 FA 06 C2 ld a,(C206) ;\ ROM2:4186 22 ldi (hl),a ;} Scroll X two frames ago = scroll X one frames ago = [scroll X] ROM2:4187 77 ld (hl),a ;/ ROM2:4188 CD B1 4D call 4DB1 ; Execute subroutine $4DB1 ROM2:418B C9 ret } ;;; $418C: ;;; { ; Externally called by: ; $03B5: Game mode 2: loading save ROM2:418C 21 00 C5 ld hl,C500 ;\ ROM2:418F 06 40 ld b,40 ;| ROM2:4191 3E FF ld a,FF ;| ;} $C500..3F = FFh ROM2:4193 22 ldi (hl),a ;| ROM2:4194 05 dec b ;| ROM2:4195 20 FC jr nz,4193 ;/ ROM2:4197 16 00 ld d,00 ROM2:4199 FA 58 D0 ld a,(D058) ROM2:419C 4F ld c,a ROM2:419D FA 59 C4 ld a,(C459) ;\ ROM2:41A0 A7 and a ;} If [$C459] = 0: go to BRANCH_BETA ROM2:41A1 28 2B jr z,41CE ;/ ROM2:41A3 D6 09 sub 09 ;\ ROM2:41A5 CB 37 swap a ;| ROM2:41A7 87 add a,a ;| ROM2:41A8 87 add a,a ;| ROM2:41A9 5F ld e,a ;} hl = $C900 + ([$C459] - 9) * 40h ROM2:41AA CB 12 rl d ;| ROM2:41AC 21 00 C9 ld hl,C900 ;| ROM2:41AF 19 add hl,de ;/ ROM2:41B0 11 40 C5 ld de,C540 ; de = $C540 ROM2:41B3 06 40 ld b,40 ; b = 40h ; LOOP_ALPHA ROM2:41B5 1A ld a,(de) ;\ ROM2:41B6 FE 02 cp 02 ;} If [[de]] = 2: [hl] = 2 ROM2:41B8 28 0E jr z,41C8 ;/ ROM2:41BA FE FE cp FE ;\ ROM2:41BC 28 0A jr z,41C8 ;} If [[de]] = FEh: [hl] = FEh ROM2:41BE FE 04 cp 04 ;\ ROM2:41C0 28 04 jr z,41C6 ;} If [[de]] = 4: [hl] = FEh ROM2:41C2 FE 05 cp 05 ;\ ROM2:41C4 20 03 jr nz,41C9 ;} If [[de]] = 5: [hl] = FEh ROM2:41C6 3E FE ld a,FE ROM2:41C8 77 ld (hl),a ROM2:41C9 2C inc l ; Increment hl ROM2:41CA 1C inc e ; Increment de ROM2:41CB 05 dec b ; Decrement b ROM2:41CC 20 E7 jr nz,41B5 ;} If [b] != 0: go to LOOP_ALPHA ; BRANCH_BETA ROM2:41CE 16 00 ld d,00 ROM2:41D0 79 ld a,c ;\ ROM2:41D1 EA 59 C4 ld (C459),a ;} $C459 = [room bank] ROM2:41D4 D6 09 sub 09 ;\ ROM2:41D6 CB 37 swap a ;| ROM2:41D8 87 add a,a ;| ROM2:41D9 87 add a,a ;| ROM2:41DA 5F ld e,a ;} hl = $C900 + ([$C459] - 9) * 40h ROM2:41DB CB 12 rl d ;| ROM2:41DD 21 00 C9 ld hl,C900 ;| ROM2:41E0 19 add hl,de ;/ ROM2:41E1 11 40 C5 ld de,C540 ;\ ROM2:41E4 06 40 ld b,40 ;| ;| ROM2:41E6 2A ldi a,(hl) ;| ROM2:41E7 12 ld (de),a ;} $C540..7F = [[hl]..[hl]+3Fh] ROM2:41E8 1C inc e ;| ROM2:41E9 05 dec b ;| ROM2:41EA 20 FA jr nz,41E6 ;/ ROM2:41EC AF xor a ROM2:41ED EA 52 C4 ld (C452),a ROM2:41F0 EA 39 C4 ld (C439),a ; Current enemy index ROM2:41F3 EA 38 C4 ld (C438),a ; Enemy handling incomplete flag = 0 ROM2:41F6 3E C6 ld a,C6 ;\ ROM2:41F8 EA 53 C4 ld (C453),a ;} $C452 = $C600 (enemy data address) ROM2:41FB 3E FF ld a,FF ;\ ROM2:41FD EA 66 C4 ld (C466),a ;| ROM2:4200 EA 67 C4 ld (C467),a ;} $C466..68 = FFh ROM2:4203 EA 68 C4 ld (C468),a ;/ ROM2:4206 21 32 C4 ld hl,C432 ROM2:4209 FA 05 C2 ld a,(C205) ;\ ROM2:420C 22 ldi (hl),a ;} Scroll Y two frames ago = scroll Y one frames ago = [scroll Y] ROM2:420D 22 ldi (hl),a ;/ ROM2:420E FA 06 C2 ld a,(C206) ;\ ROM2:4211 22 ldi (hl),a ;} Scroll X two frames ago = scroll X one frames ago = [scroll X] ROM2:4212 77 ld (hl),a ;/ ROM2:4213 CD 17 42 call 4217 ; Execute subroutine $4217 ROM2:4216 C9 ret } ;;; $4217: (unit) ;;; { ; Delete enemy? ; Assumes b = 0 ROM2:4217 3E FF ld a,FF ROM2:4219 21 00 C6 ld hl,C600 ; hl = $C600 (enemy data address) ROM2:421C 0E 20 ld c,20 ROM2:421E 16 10 ld d,10 ; d = 10h ; LOOP ROM2:4220 77 ld (hl),a ; [hl] = FFh ROM2:4221 09 add hl,bc ; hl += 20h ROM2:4222 15 dec d ; Decrement d ROM2:4223 20 FB jr nz,4220 ;} If [d] != 0: go to LOOP ROM2:4225 06 16 ld b,16 ;\ ROM2:4227 21 E0 FF ld hl,FFE0 ;| ;| ROM2:422A 22 ldi (hl),a ;} $FFE0..F5 = FFh ROM2:422B 05 dec b ;| ROM2:422C 20 FC jr nz,422A ;/ ROM2:422E AF xor a ;\ ROM2:422F 21 25 C4 ld hl,C425 ;| ROM2:4232 06 03 ld b,03 ;| ;} $C425..27 = 0 ROM2:4234 22 ldi (hl),a ;| ROM2:4235 05 dec b ;| ROM2:4236 20 FC jr nz,4234 ;/ ROM2:4238 C9 ret } ;;; $4239: ;;; { ROM2:4239 21 5D D0 ld hl,D05D ;\ ROM2:423C 2A ldi a,(hl) ;| ROM2:423D FE FF cp FF ;} If [$D05D] = FFh: return ROM2:423F C8 ret z ;/ ROM2:4240 F0 FC ld a,(FF00+FC) ;\ ROM2:4242 BE cp (hl) ;| ROM2:4243 C0 ret nz ;| ROM2:4244 23 inc hl ;} If [$FFFC] != [$D05E]: return ROM2:4245 F0 FD ld a,(FF00+FD) ;| ROM2:4247 BE cp (hl) ;| ROM2:4248 C0 ret nz ;/ ROM2:4249 F0 EE ld a,(FF00+EE) ;\ ROM2:424B A7 and a ;} If [$FFEE] != 0: go to $438F ROM2:424C C2 8F 43 jp nz,438F ;/ ROM2:424F F0 ED ld a,(FF00+ED) ;\ ROM2:4251 A7 and a ;} If [$FFED] = 0: go to BRANCH_42CE ROM2:4252 28 7A jr z,42CE ;/ ROM2:4254 2B dec hl ;\ ROM2:4255 2B dec hl ;| ROM2:4256 7E ld a,(hl) ;} If [$D05D] < 10h: go to $438F ROM2:4257 FE 10 cp 10 ;| ROM2:4259 DA 8F 43 jp c,438F ;/ ROM2:425C F0 ED ld a,(FF00+ED) ;\ ROM2:425E 3D dec a ;} If [$FFED] = 1: go to BRANCH_SMALL_HEALTH ROM2:425F 28 0E jr z,426F ;/ ROM2:4261 3D dec a ;\ ROM2:4262 28 02 jr z,4266 ;} If [$FFED] = 2: go to BRANCH_LARGE_HEALTH ROM2:4264 18 3C jr 42A2 ; Go to BRANCH_MISSILE ; BRANCH_LARGE_HEALTH ROM2:4266 06 20 ld b,20 ; b = 20h ROM2:4268 3E 17 ld a,17 ;\ ROM2:426A EA C0 CE ld (CEC0),a ;} Play picked up large energy drop sound effect ROM2:426D 18 07 jr 4276 ; Go to BRANCH_4276 ; BRANCH_SMALL_HEALTH ROM2:426F 06 05 ld b,05 ; b = 5 ROM2:4271 3E 0E ld a,0E ;\ ROM2:4273 EA C0 CE ld (CEC0),a ;} Play picked up small energy drop sound effect ; BRANCH_4276 ROM2:4276 21 51 D0 ld hl,D051 ;\ ROM2:4279 7E ld a,(hl) ;| ROM2:427A 80 add a,b ;| ROM2:427B 27 daa ;| ROM2:427C 22 ldi (hl),a ;} Samus health += [b] ROM2:427D 7E ld a,(hl) ;| ROM2:427E CE 00 adc a,00 ;| ROM2:4280 77 ld (hl),a ;/ ROM2:4281 FA 50 D0 ld a,(D050) ;\ ROM2:4284 96 sub (hl) ;} If [Samus energy tanks] < [Samus health] / 100: ROM2:4285 30 04 jr nc,428B ;/ ROM2:4287 35 dec (hl) ;\ ROM2:4288 2B dec hl ;} Samus health = [Samus energy tanks] * 100 + 99 ROM2:4289 36 99 ld (hl),99 ;/ ; BRANCH_428B ROM2:428B CD A6 3C call 3CA6 ROM2:428E 3E 02 ld a,02 ROM2:4290 E0 EF ld (FF00+EF),a ROM2:4292 CD 8F 43 call 438F ROM2:4295 21 66 C4 ld hl,C466 ROM2:4298 3E FF ld a,FF ROM2:429A 22 ldi (hl),a ROM2:429B 22 ldi (hl),a ROM2:429C 22 ldi (hl),a ROM2:429D 77 ld (hl),a ROM2:429E F1 pop af ROM2:429F C3 D8 40 jp 40D8 ; BRANCH_MISSILE ROM2:42A2 3E 0C ld a,0C ;\ ROM2:42A4 EA C0 CE ld (CEC0),a ;} Play picked up missile drop sound effect ROM2:42A7 21 53 D0 ld hl,D053 ;\ ROM2:42AA 7E ld a,(hl) ;| ROM2:42AB C6 05 add a,05 ;| ROM2:42AD 27 daa ;| ROM2:42AE 22 ldi (hl),a ;} Samus missiles += 5 ROM2:42AF 7E ld a,(hl) ;| ROM2:42B0 CE 00 adc a,00 ;| ROM2:42B2 77 ld (hl),a ;/ ROM2:42B3 FA 82 D0 ld a,(D082) ;\ ROM2:42B6 96 sub (hl) ;} If [Samus max missiles high] < [Samus missiles high]: go to BRANCH_CAP_MISSILES ROM2:42B7 38 0B jr c,42C4 ;/ ROM2:42B9 20 D0 jr nz,428B ; If [Samus max missiles high] != [Samus missiles high]: go to BRANCH_428B ROM2:42BB 2B dec hl ;\ ROM2:42BC FA 81 D0 ld a,(D081) ;| ROM2:42BF 96 sub (hl) ;} If [Samus max missiles low] >= [Samus missiles low]: go to BRANCH_428B ROM2:42C0 30 C9 jr nc,428B ;/ ROM2:42C2 18 04 jr 42C8 ; Go to BRANCH_CAP_MISSILES_LOW ; BRANCH_CAP_MISSILES ROM2:42C4 FA 82 D0 ld a,(D082) ;\ ROM2:42C7 32 ldd (hl),a ;} Samus missiles high = Samus max missiles high ; BRANCH_CAP_MISSILES_LOW ROM2:42C8 FA 81 D0 ld a,(D081) ;\ ROM2:42CB 77 ld (hl),a ;} Samus missiles low = Samus max missiles low ROM2:42CC 18 BD jr 428B ; Go to BRANCH_428B ; BRANCH_42CE ROM2:42CE F0 E3 ld a,(FF00+E3) ;\ ROM2:42D0 FE A0 cp A0 ;| ROM2:42D2 38 05 jr c,42D9 ;} If A0h <= [enemy sprite ID] < D0h (metroid species): go to $438F ROM2:42D4 FE D0 cp D0 ;| ROM2:42D6 DA 8F 43 jp c,438F ;/ ROM2:42D9 2B dec hl ROM2:42DA 2B dec hl ROM2:42DB 7E ld a,(hl) ROM2:42DC FE 10 cp 10 ROM2:42DE 28 5B jr z,433B ROM2:42E0 D2 8F 43 jp nc,438F ROM2:42E3 FE 01 cp 01 ROM2:42E5 20 2D jr nz,4314 ROM2:42E7 21 EC FF ld hl,FFEC ROM2:42EA 7E ld a,(hl) ROM2:42EB A7 and a ROM2:42EC 28 5E jr z,434C ROM2:42EE 3C inc a ROM2:42EF 28 54 jr z,4345 ROM2:42F1 3C inc a ROM2:42F2 28 19 jr z,430D ROM2:42F4 CD A9 43 call 43A9 ROM2:42F7 35 dec (hl) ROM2:42F8 28 01 jr z,42FB ROM2:42FA 35 dec (hl) ROM2:42FB 3E 01 ld a,01 ;\ ROM2:42FD EA D5 CE ld (CED5),a ;} Play enemy shot sound effect ROM2:4300 21 E6 FF ld hl,FFE6 ROM2:4303 36 10 ld (hl),10 ROM2:4305 21 EB FF ld hl,FFEB ROM2:4308 36 01 ld (hl),01 ROM2:430A C3 8F 43 jp 438F ROM2:430D 3E 0F ld a,0F ;\ ROM2:430F EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:4312 18 EC jr 4300 ROM2:4314 5F ld e,a ROM2:4315 16 00 ld d,00 ROM2:4317 21 C8 43 ld hl,43C8 ROM2:431A 19 add hl,de ROM2:431B CD A9 43 call 43A9 ROM2:431E F0 EC ld a,(FF00+EC) ROM2:4320 FE FE cp FE ROM2:4322 30 21 jr nc,4345 ROM2:4324 96 sub (hl) ROM2:4325 28 25 jr z,434C ROM2:4327 38 23 jr c,434C ROM2:4329 E0 EC ld (FF00+EC),a ROM2:432B 3E 01 ld a,01 ;\ ROM2:432D EA D5 CE ld (CED5),a ;} Play enemy shot sound effect ROM2:4330 CD 8F 43 call 438F ROM2:4333 3E 11 ld a,11 ROM2:4335 E0 E6 ld (FF00+E6),a ROM2:4337 F1 pop af ROM2:4338 C3 D8 40 jp 40D8 ROM2:433B F0 EC ld a,(FF00+EC) ROM2:433D FE FF cp FF ROM2:433F 28 04 jr z,4345 ROM2:4341 06 20 ld b,20 ROM2:4343 18 09 jr 434E } ;;; $4345: ;;; { ROM2:4345 3E 0F ld a,0F ;\ ROM2:4347 EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:434A 18 43 jr 438F ROM2:434C 06 10 ld b,10 ROM2:434E F0 EF ld a,(FF00+EF) ROM2:4350 FE 06 cp 06 ROM2:4352 28 1A jr z,436E ROM2:4354 E6 0F and 0F ROM2:4356 28 16 jr z,436E ROM2:4358 F0 F5 ld a,(FF00+F5) ROM2:435A FE FD cp FD ROM2:435C 28 16 jr z,4374 ROM2:435E FE FE cp FE ROM2:4360 28 12 jr z,4374 ROM2:4362 CB 47 bit 0,a ROM2:4364 28 0C jr z,4372 ROM2:4366 FE 0A cp 0A ROM2:4368 38 04 jr c,436E ROM2:436A CB C8 set 1,b ROM2:436C 18 06 jr 4374 ROM2:436E CB C0 set 0,b ROM2:4370 18 02 jr 4374 ROM2:4372 CB D0 set 2,b ROM2:4374 78 ld a,b ROM2:4375 E0 EE ld (FF00+EE),a ROM2:4377 AF xor a ROM2:4378 E0 E9 ld (FF00+E9),a ROM2:437A 3E 02 ld a,02 ;\ ROM2:437C EA D5 CE ld (CED5),a ;} Play enemy killed sound effect ROM2:437F CD 8F 43 call 438F ROM2:4382 F1 pop af ROM2:4383 C3 D8 40 jp 40D8 ROM2:4386 CD A6 3C call 3CA6 ROM2:4389 3E FF ld a,FF ROM2:438B E0 EF ld (FF00+EF),a ROM2:438D 18 F0 jr 437F } ;;; $438F: (unit) ;;; { ROM2:438F 21 5D D0 ld hl,D05D ;\ ROM2:4392 2A ldi a,(hl) ;| ROM2:4393 EA 66 C4 ld (C466),a ;| ROM2:4396 2A ldi a,(hl) ;| ROM2:4397 EA 67 C4 ld (C467),a ;} $C466..69 = [$D05D..60] ROM2:439A 2A ldi a,(hl) ;| ROM2:439B EA 68 C4 ld (C468),a ;| ROM2:439E 7E ld a,(hl) ;| ROM2:439F EA 69 C4 ld (C469),a ;/ ROM2:43A2 3E FF ld a,FF ;\ ROM2:43A4 32 ldd (hl),a ;| ROM2:43A5 32 ldd (hl),a ;} $D05D..60 = FFh ROM2:43A6 32 ldd (hl),a ;| ROM2:43A7 77 ld (hl),a ;/ ROM2:43A8 C9 ret } ;;; $43A9: ;;; { ROM2:43A9 FA 5D D0 ld a,(D05D) ROM2:43AC FE 02 cp 02 ROM2:43AE C8 ret z ROM2:43AF 4F ld c,a ROM2:43B0 F0 E8 ld a,(FF00+E8) ROM2:43B2 E6 F0 and F0 ROM2:43B4 C8 ret z ROM2:43B5 CB 37 swap a ROM2:43B7 47 ld b,a ROM2:43B8 FA 60 D0 ld a,(D060) ROM2:43BB CB 08 rrc b ROM2:43BD CB 3F srl a ROM2:43BF 30 FA jr nc,43BB ROM2:43C1 CB 78 bit 7,b ROM2:43C3 C8 ret z ROM2:43C4 F1 pop af ROM2:43C5 C3 45 43 jp 4345 } ;;; $43C8: ;;; { ROM2:43C8 db 01, 02, 04, 08, 1E, 00, 00, 02, 14, 0A } ;;; $43D2: Copy enemy to working enemy ;;; { ROM2:43D2 7D ld a,l ;\ ROM2:43D3 E0 FC ld (FF00+FC),a ;| ROM2:43D5 7C ld a,h ;} $FFFC = [hl] ROM2:43D6 E0 FD ld (FF00+FD),a ;/ ROM2:43D8 06 0F ld b,0F ;\ ROM2:43DA 11 E0 FF ld de,FFE0 ;| ;| ROM2:43DD 2A ldi a,(hl) ;| ROM2:43DE 12 ld (de),a ;} Copy Fh bytes from [$FFFC] to $FFE0 ROM2:43DF 1C inc e ;| ROM2:43E0 05 dec b ;| ROM2:43E1 20 FA jr nz,43DD ;/ ROM2:43E3 2A ldi a,(hl) ;\ ROM2:43E4 E0 F3 ld (FF00+F3),a ;} $FFF3 = [[$FFFC] + Fh] ROM2:43E6 2A ldi a,(hl) ;\ ROM2:43E7 E0 F4 ld (FF00+F4),a ;} $FFF4 = [[$FFFC] + 10h] ROM2:43E9 7E ld a,(hl) ;\ ROM2:43EA E0 F5 ld (FF00+F5),a ;} $FFF5 = [[$FFFC] + 11h] ROM2:43EC F0 FC ld a,(FF00+FC) ;\ ROM2:43EE C6 1C add a,1C ;| ROM2:43F0 6F ld l,a ;| ROM2:43F1 06 04 ld b,04 ;| ;| ROM2:43F3 2A ldi a,(hl) ;} Copy 4 bytes from [$FFFC] + 1Ch to $FFEF ROM2:43F4 12 ld (de),a ;| ROM2:43F5 1C inc e ;| ROM2:43F6 05 dec b ;| ROM2:43F7 20 FA jr nz,43F3 ;/ ROM2:43F9 F0 E1 ld a,(FF00+E1) ;\ ROM2:43FB EA 1E C4 ld (C41E),a ;} $C41E = [enemy Y position] ROM2:43FE F0 E2 ld a,(FF00+E2) ;\ ROM2:4400 EA 1F C4 ld (C41F),a ;} $C41F = [enemy X position] ROM2:4403 F0 E6 ld a,(FF00+E6) ;\ ROM2:4405 FE 11 cp 11 ;} If [$FFE6] < 11h: return ROM2:4407 D8 ret c ;/ ROM2:4408 3C inc a ;\ ROM2:4409 E0 E6 ld (FF00+E6),a ;} Increment $FFE6 ROM2:440B FE 14 cp 14 ;\ ROM2:440D 28 04 jr z,4413 ;} If [$FFE6] != 14h: ROM2:440F F1 pop af ; Pop return address ROM2:4410 C3 D8 40 jp 40D8 ; Go to $40D8 (abruptly finish processing this enemy) ROM2:4413 F0 EB ld a,(FF00+EB) ;\ ROM2:4415 A7 and a ;} If [$FFEB] = 0: ROM2:4416 20 04 jr nz,441C ;/ ROM2:4418 AF xor a ;\ ROM2:4419 E0 E6 ld (FF00+E6),a ;} $FFE6 = 0 ROM2:441B C9 ret ROM2:441C 3E 10 ld a,10 ;\ ROM2:441E E0 E6 ld (FF00+E6),a ;} $FFE6 = 10h ROM2:4420 C9 ret } ;;; $4421: Copy working enemy to enemy (unit) ;;; { ROM2:4421 06 0F ld b,0F ;\ ROM2:4423 11 E0 FF ld de,FFE0 ;| ROM2:4426 F0 FC ld a,(FF00+FC) ;| ROM2:4428 6F ld l,a ;| ROM2:4429 F0 FD ld a,(FF00+FD) ;| ROM2:442B 67 ld h,a ;| ;} [$FFFC]..[$FFFC]+Eh = [$FFE0..EE] ROM2:442C 1A ld a,(de) ;| ROM2:442D 22 ldi (hl),a ;| ROM2:442E 1C inc e ;| ROM2:442F 05 dec b ;| ROM2:4430 20 FA jr nz,442C ;/ ROM2:4432 F0 F3 ld a,(FF00+F3) ;\ ROM2:4434 22 ldi (hl),a ;| ROM2:4435 F0 F4 ld a,(FF00+F4) ;} [$FFFC] + Fh = [$FFF3] ROM2:4437 22 ldi (hl),a ;/ ROM2:4438 F0 FC ld a,(FF00+FC) ;\ ROM2:443A C6 1C add a,1C ;| ROM2:443C 6F ld l,a ;} [$FFFC] + 1Ch = [$FFEF] ROM2:443D 1A ld a,(de) ;| ROM2:443E 22 ldi (hl),a ;/ ROM2:443F 1C inc e ;\ ROM2:4440 1A ld a,(de) ;} [$FFFC] + 1Dh = [$FFF0] ROM2:4441 22 ldi (hl),a ;/ ROM2:4442 47 ld b,a ROM2:4443 F0 F1 ld a,(FF00+F1) ;\ ROM2:4445 22 ldi (hl),a ;| ROM2:4446 F0 F2 ld a,(FF00+F2) ;} [$FFFC] + 1Eh = [$FFF1] ROM2:4448 77 ld (hl),a ;/ ROM2:4449 21 00 C5 ld hl,C500 ;\ ROM2:444C 68 ld l,b ;| ROM2:444D 1D dec e ;} $C500 + [$FFF0] = [$FFEF] ROM2:444E 1A ld a,(de) ;| ROM2:444F 77 ld (hl),a ;/ ROM2:4450 F0 FC ld a,(FF00+FC) ;\ ROM2:4452 6F ld l,a ;| ROM2:4453 F0 FD ld a,(FF00+FD) ;| ROM2:4455 67 ld h,a ;} If [[$FFFC]] != FFh: return ROM2:4456 7E ld a,(hl) ;| ROM2:4457 FE FF cp FF ;| ROM2:4459 C0 ret nz ;/ ROM2:445A 7D ld a,l ;\ ROM2:445B C6 1C add a,1C ;| ROM2:445D 6F ld l,a ;} [$FFFC] + 1Ch = FFh ROM2:445E 36 FF ld (hl),FF ;/ ROM2:4460 2C inc l ;\ ROM2:4461 36 FF ld (hl),FF ;} [$FFFC] + 1Dh = FFh ROM2:4463 C9 ret } ;;; $4464: ;;; { ROM2:4464 21 F3 FF ld hl,FFF3 ROM2:4467 2A ldi a,(hl) ROM2:4468 FE FE cp FE ROM2:446A 28 04 jr z,4470 ROM2:446C FE 03 cp 03 ROM2:446E 20 46 jr nz,44B6 ROM2:4470 21 E0 FF ld hl,FFE0 ROM2:4473 3E FF ld a,FF ROM2:4475 06 0F ld b,0F ROM2:4477 22 ldi (hl),a ROM2:4478 05 dec b ROM2:4479 20 FC jr nz,4477 ROM2:447B 7E ld a,(hl) ROM2:447C FE 02 cp 02 ROM2:447E 28 0E jr z,448E ROM2:4480 FE 04 cp 04 ROM2:4482 20 07 jr nz,448B ROM2:4484 3E FE ld a,FE ROM2:4486 77 ld (hl),a ROM2:4487 3E FF ld a,FF ROM2:4489 18 03 jr 448E ROM2:448B 3E FF ld a,FF ROM2:448D 77 ld (hl),a ROM2:448E 2C inc l ROM2:448F 2C inc l ROM2:4490 22 ldi (hl),a ROM2:4491 22 ldi (hl),a ROM2:4492 22 ldi (hl),a ROM2:4493 77 ld (hl),a ROM2:4494 21 25 C4 ld hl,C425 ROM2:4497 35 dec (hl) ROM2:4498 2C inc l ROM2:4499 2C inc l ROM2:449A 35 dec (hl) ROM2:449B 21 68 C4 ld hl,C468 ROM2:449E 11 FD FF ld de,FFFD ROM2:44A1 1A ld a,(de) ROM2:44A2 BE cp (hl) ROM2:44A3 20 0D jr nz,44B2 ROM2:44A5 1D dec e ROM2:44A6 2D dec l ROM2:44A7 1A ld a,(de) ROM2:44A8 BE cp (hl) ROM2:44A9 20 07 jr nz,44B2 ROM2:44AB 2D dec l ROM2:44AC 3E FF ld a,FF ROM2:44AE 22 ldi (hl),a ROM2:44AF 22 ldi (hl),a ROM2:44B0 22 ldi (hl),a ROM2:44B1 77 ld (hl),a ROM2:44B2 F1 pop af ROM2:44B3 C3 D8 40 jp 40D8 ROM2:44B6 7E ld a,(hl) ROM2:44B7 FE FE cp FE ROM2:44B9 28 B5 jr z,4470 ROM2:44BB FE 03 cp 03 ROM2:44BD C0 ret nz ROM2:44BE 18 B0 jr 4470 } ;;; $44C0: ;;; { ROM2:44C0 21 F3 FF ld hl,FFF3 ROM2:44C3 11 E1 FF ld de,FFE1 ROM2:44C6 7E ld a,(hl) ROM2:44C7 FE FF cp FF ROM2:44C9 28 0E jr z,44D9 ROM2:44CB A7 and a ROM2:44CC 28 13 jr z,44E1 ROM2:44CE 3D dec a ROM2:44CF 20 1D jr nz,44EE ROM2:44D1 1A ld a,(de) ROM2:44D2 FE C0 cp C0 ROM2:44D4 30 18 jr nc,44EE ROM2:44D6 35 dec (hl) ROM2:44D7 18 15 jr 44EE ROM2:44D9 1A ld a,(de) ROM2:44DA FE F0 cp F0 ROM2:44DC 38 10 jr c,44EE ROM2:44DE 34 inc (hl) ROM2:44DF 18 0D jr 44EE ROM2:44E1 1A ld a,(de) ROM2:44E2 FE C0 cp C0 ROM2:44E4 38 08 jr c,44EE ROM2:44E6 FE D8 cp D8 ROM2:44E8 38 F4 jr c,44DE ROM2:44EA FE F0 cp F0 ROM2:44EC 38 E8 jr c,44D6 ROM2:44EE 2C inc l ROM2:44EF 1C inc e ROM2:44F0 7E ld a,(hl) ROM2:44F1 FE FF cp FF ROM2:44F3 28 0E jr z,4503 ROM2:44F5 A7 and a ROM2:44F6 28 13 jr z,450B ROM2:44F8 3D dec a ROM2:44F9 20 1D jr nz,4518 ROM2:44FB 1A ld a,(de) ROM2:44FC FE C0 cp C0 ROM2:44FE 30 18 jr nc,4518 ROM2:4500 35 dec (hl) ROM2:4501 18 15 jr 4518 ROM2:4503 1A ld a,(de) ROM2:4504 FE F0 cp F0 ROM2:4506 38 10 jr c,4518 ROM2:4508 34 inc (hl) ROM2:4509 18 0D jr 4518 ROM2:450B 1A ld a,(de) ROM2:450C FE C0 cp C0 ROM2:450E 38 08 jr c,4518 ROM2:4510 FE D8 cp D8 ROM2:4512 38 F4 jr c,4508 ROM2:4514 FE F0 cp F0 ROM2:4516 38 E8 jr c,4500 ROM2:4518 F0 F3 ld a,(FF00+F3) ROM2:451A 47 ld b,a ROM2:451B F0 F4 ld a,(FF00+F4) ROM2:451D B0 or b ROM2:451E C0 ret nz ROM2:451F 21 E0 FF ld hl,FFE0 ROM2:4522 36 00 ld (hl),00 ROM2:4524 21 26 C4 ld hl,C426 ROM2:4527 34 inc (hl) ROM2:4528 2C inc l ROM2:4529 35 dec (hl) ROM2:452A F1 pop af ROM2:452B C3 D8 40 jp 40D8 } ;;; $452E: ;;; { ROM2:452E AF xor a ROM2:452F EA 79 C4 ld (C479),a ROM2:4532 21 E1 FF ld hl,FFE1 ROM2:4535 2A ldi a,(hl) ROM2:4536 FE C0 cp C0 ROM2:4538 38 17 jr c,4551 ROM2:453A FE D8 cp D8 ROM2:453C 38 0A jr c,4548 ROM2:453E FE F0 cp F0 ROM2:4540 30 0F jr nc,4551 ROM2:4542 3E FF ld a,FF ROM2:4544 E0 F3 ld (FF00+F3),a ROM2:4546 18 04 jr 454C ROM2:4548 3E 01 ld a,01 ROM2:454A E0 F3 ld (FF00+F3),a ROM2:454C 3E 01 ld a,01 ROM2:454E EA 79 C4 ld (C479),a ROM2:4551 7E ld a,(hl) ROM2:4552 FE C0 cp C0 ROM2:4554 38 17 jr c,456D ROM2:4556 FE D8 cp D8 ROM2:4558 38 0A jr c,4564 ROM2:455A FE F0 cp F0 ROM2:455C 30 0F jr nc,456D ROM2:455E 3E FF ld a,FF ROM2:4560 E0 F4 ld (FF00+F4),a ROM2:4562 18 04 jr 4568 ROM2:4564 3E 01 ld a,01 ROM2:4566 E0 F4 ld (FF00+F4),a ROM2:4568 3E 01 ld a,01 ROM2:456A EA 79 C4 ld (C479),a ROM2:456D FA 79 C4 ld a,(C479) ROM2:4570 A7 and a ROM2:4571 C8 ret z ROM2:4572 21 E0 FF ld hl,FFE0 ROM2:4575 36 01 ld (hl),01 ROM2:4577 F0 EF ld a,(FF00+EF) ROM2:4579 FE 02 cp 02 ROM2:457B 28 20 jr z,459D ROM2:457D FE 06 cp 06 ROM2:457F 28 27 jr z,45A8 ROM2:4581 E6 0F and 0F ROM2:4583 28 23 jr z,45A8 ROM2:4585 21 26 C4 ld hl,C426 ROM2:4588 35 dec (hl) ROM2:4589 2C inc l ROM2:458A 34 inc (hl) ROM2:458B F0 EF ld a,(FF00+EF) ROM2:458D FE 03 cp 03 ROM2:458F 28 31 jr z,45C2 ROM2:4591 FE 04 cp 04 ROM2:4593 28 1E jr z,45B3 ROM2:4595 FE 05 cp 05 ROM2:4597 28 1A jr z,45B3 ROM2:4599 F1 pop af ROM2:459A C3 D8 40 jp 40D8 ROM2:459D CD A6 3C call 3CA6 ROM2:45A0 3E 02 ld a,02 ROM2:45A2 E0 EF ld (FF00+EF),a ROM2:45A4 F1 pop af ROM2:45A5 C3 D8 40 jp 40D8 ROM2:45A8 CD A6 3C call 3CA6 ROM2:45AB 3E FF ld a,FF ROM2:45AD E0 EF ld (FF00+EF),a ROM2:45AF F1 pop af ROM2:45B0 C3 D8 40 jp 40D8 ROM2:45B3 3E 04 ld a,04 ROM2:45B5 E0 EF ld (FF00+EF),a ROM2:45B7 AF xor a ROM2:45B8 EA 1B C4 ld (C41B),a ROM2:45BB EA 1C C4 ld (C41C),a ROM2:45BE F1 pop af ROM2:45BF C3 D8 40 jp 40D8 ROM2:45C2 3E 01 ld a,01 ROM2:45C4 E0 EF ld (FF00+EF),a ROM2:45C6 F1 pop af ROM2:45C7 C3 D8 40 jp 40D8 } ;;; $45CA: Update scroll history ;;; { ROM2:45CA 11 0A C4 ld de,C40A ;\ ROM2:45CD 21 08 C4 ld hl,C408 ;| ROM2:45D0 1A ld a,(de) ;| ROM2:45D1 22 ldi (hl),a ;| ROM2:45D2 1C inc e ;| ROM2:45D3 1A ld a,(de) ;| ROM2:45D4 22 ldi (hl),a ;} $C408..0B = [$C40A..0D] ROM2:45D5 1C inc e ;| ROM2:45D6 1A ld a,(de) ;| ROM2:45D7 22 ldi (hl),a ;| ROM2:45D8 1C inc e ;| ROM2:45D9 1A ld a,(de) ;| ROM2:45DA 22 ldi (hl),a ;/ ROM2:45DB 11 05 C2 ld de,C205 ;\ ROM2:45DE 1A ld a,(de) ;} $C40C = [scroll Y] ROM2:45DF 22 ldi (hl),a ;/ ROM2:45E0 1C inc e ;\ ROM2:45E1 1A ld a,(de) ;} $C40D = [scroll X] ROM2:45E2 77 ld (hl),a ;/ ROM2:45E3 C9 ret } ;;; $45E4: (unit) ;;; { ROM2:45E4 FA 3C D0 ld a,(D03C) ;\ ROM2:45E7 47 ld b,a ;| ROM2:45E8 21 E2 FF ld hl,FFE2 ;| ROM2:45EB 7E ld a,(hl) ;} If [$FFE2] < [Samus' X position on screen]: ROM2:45EC B8 cp b ;| ROM2:45ED 30 05 jr nc,45F4 ;/ ROM2:45EF AF xor a ;\ ROM2:45F0 EA 0E C4 ld (C40E),a ;} $C40E = 0 ROM2:45F3 C9 ret ROM2:45F4 3E 02 ld a,02 ;\ ROM2:45F6 EA 0E C4 ld (C40E),a ;} $C40E = 2 ROM2:45F9 C9 ret } ;;; $45FA: (unit) ;;; { ROM2:45FA 21 E5 FF ld hl,FFE5 ROM2:45FD F0 E8 ld a,(FF00+E8) ;\ ROM2:45FF A7 and a ;} If [$FFE8] != 0: ROM2:4600 28 03 jr z,4605 ;/ ROM2:4602 36 00 ld (hl),00 ; $FFE5 = 0 ROM2:4604 C9 ret ROM2:4605 36 20 ld (hl),20 ; $FFE5 = 20h ROM2:4607 C9 ret } ;;; $4608: ;;; { ROM2:4608 3E 11 ld a,11 ROM2:460A EA 02 C4 ld (C402),a ROM2:460D F0 E1 ld a,(FF00+E1) ROM2:460F D6 03 sub 03 ROM2:4611 EA 4D C4 ld (C44D),a ROM2:4614 F0 E2 ld a,(FF00+E2) ROM2:4616 C6 03 add a,03 ROM2:4618 EA 4E C4 ld (C44E),a ROM2:461B CD 50 22 call 2250 ROM2:461E 21 07 C4 ld hl,C407 ROM2:4621 BE cp (hl) ROM2:4622 D8 ret c ROM2:4623 FA 4D C4 ld a,(C44D) ROM2:4626 C6 06 add a,06 ROM2:4628 EA 4D C4 ld (C44D),a ROM2:462B CD 50 22 call 2250 ROM2:462E 21 07 C4 ld hl,C407 ROM2:4631 BE cp (hl) ROM2:4632 D8 ret c ROM2:4633 18 71 jr 46A6 } ;;; $4635: ;;; { ROM2:4635 3E 11 ld a,11 ROM2:4637 EA 02 C4 ld (C402),a ROM2:463A F0 E1 ld a,(FF00+E1) ROM2:463C D6 03 sub 03 ROM2:463E EA 4D C4 ld (C44D),a ROM2:4641 F0 E2 ld a,(FF00+E2) ROM2:4643 C6 07 add a,07 ROM2:4645 EA 4E C4 ld (C44E),a ROM2:4648 CD 50 22 call 2250 ROM2:464B 21 07 C4 ld hl,C407 ROM2:464E BE cp (hl) ROM2:464F D8 ret c ROM2:4650 FA 4D C4 ld a,(C44D) ROM2:4653 C6 06 add a,06 ROM2:4655 EA 4D C4 ld (C44D),a ROM2:4658 CD 50 22 call 2250 ROM2:465B 21 07 C4 ld hl,C407 ROM2:465E BE cp (hl) ROM2:465F D8 ret c ROM2:4660 18 44 jr 46A6 } ;;; $4662: ;;; { ROM2:4662 3E 11 ld a,11 ROM2:4664 EA 02 C4 ld (C402),a ROM2:4667 F0 E1 ld a,(FF00+E1) ROM2:4669 D6 06 sub 06 ROM2:466B EA 4D C4 ld (C44D),a ROM2:466E F0 E2 ld a,(FF00+E2) ROM2:4670 C6 07 add a,07 ROM2:4672 EA 4E C4 ld (C44E),a ROM2:4675 CD 50 22 call 2250 ROM2:4678 EA 17 C4 ld (C417),a ROM2:467B 21 07 C4 ld hl,C407 ROM2:467E BE cp (hl) ROM2:467F D8 ret c ROM2:4680 FA 4D C4 ld a,(C44D) ROM2:4683 C6 06 add a,06 ROM2:4685 EA 4D C4 ld (C44D),a ROM2:4688 CD 50 22 call 2250 ROM2:468B EA 17 C4 ld (C417),a ROM2:468E 21 07 C4 ld hl,C407 ROM2:4691 BE cp (hl) ROM2:4692 D8 ret c ROM2:4693 FA 4D C4 ld a,(C44D) ROM2:4696 C6 06 add a,06 ROM2:4698 EA 4D C4 ld (C44D),a ROM2:469B CD 50 22 call 2250 ROM2:469E EA 17 C4 ld (C417),a ROM2:46A1 21 07 C4 ld hl,C407 ROM2:46A4 BE cp (hl) ROM2:46A5 D8 ret c } ;;; $46A6: $C402 &= FEh ;;; { ROM2:46A6 21 02 C4 ld hl,C402 ROM2:46A9 CB 86 res 0,(hl) ROM2:46AB C9 ret } ;;; $46AC: ;;; { ROM2:46AC 3E 11 ld a,11 ROM2:46AE EA 02 C4 ld (C402),a ROM2:46B1 F0 E1 ld a,(FF00+E1) ROM2:46B3 D6 07 sub 07 ROM2:46B5 EA 4D C4 ld (C44D),a ROM2:46B8 F0 E2 ld a,(FF00+E2) ROM2:46BA C6 0B add a,0B ROM2:46BC EA 4E C4 ld (C44E),a ROM2:46BF CD 50 22 call 2250 ROM2:46C2 21 07 C4 ld hl,C407 ROM2:46C5 BE cp (hl) ROM2:46C6 D8 ret c ROM2:46C7 FA 4D C4 ld a,(C44D) ROM2:46CA C6 07 add a,07 ROM2:46CC EA 4D C4 ld (C44D),a ROM2:46CF CD 50 22 call 2250 ROM2:46D2 21 07 C4 ld hl,C407 ROM2:46D5 BE cp (hl) ROM2:46D6 D8 ret c ROM2:46D7 FA 4D C4 ld a,(C44D) ROM2:46DA C6 07 add a,07 ROM2:46DC EA 4D C4 ld (C44D),a ROM2:46DF CD 50 22 call 2250 ROM2:46E2 21 07 C4 ld hl,C407 ROM2:46E5 BE cp (hl) ROM2:46E6 D8 ret c ROM2:46E7 18 BD jr 46A6 } ;;; $46E9: ;;; { ROM2:46E9 3E 11 ld a,11 ROM2:46EB EA 02 C4 ld (C402),a ROM2:46EE F0 E1 ld a,(FF00+E1) ROM2:46F0 D6 0B sub 0B ROM2:46F2 EA 4D C4 ld (C44D),a ROM2:46F5 F0 E2 ld a,(FF00+E2) ROM2:46F7 C6 07 add a,07 ROM2:46F9 EA 4E C4 ld (C44E),a ROM2:46FC CD 50 22 call 2250 ROM2:46FF 21 07 C4 ld hl,C407 ROM2:4702 BE cp (hl) ROM2:4703 D8 ret c ROM2:4704 FA 4D C4 ld a,(C44D) ROM2:4707 C6 08 add a,08 ROM2:4709 EA 4D C4 ld (C44D),a ROM2:470C CD 50 22 call 2250 ROM2:470F 21 07 C4 ld hl,C407 ROM2:4712 BE cp (hl) ROM2:4713 D8 ret c ROM2:4714 FA 4D C4 ld a,(C44D) ROM2:4717 C6 06 add a,06 ROM2:4719 EA 4D C4 ld (C44D),a ROM2:471C CD 50 22 call 2250 ROM2:471F 21 07 C4 ld hl,C407 ROM2:4722 BE cp (hl) ROM2:4723 D8 ret c ROM2:4724 FA 4D C4 ld a,(C44D) ROM2:4727 C6 08 add a,08 ROM2:4729 EA 4D C4 ld (C44D),a ROM2:472C CD 50 22 call 2250 ROM2:472F 21 07 C4 ld hl,C407 ROM2:4732 BE cp (hl) ROM2:4733 D8 ret c ROM2:4734 18 78 jr 47AE } ;;; $4736: ;;; { ROM2:4736 3E 11 ld a,11 ROM2:4738 EA 02 C4 ld (C402),a ROM2:473B F0 E1 ld a,(FF00+E1) ROM2:473D D6 0B sub 0B ROM2:473F EA 4D C4 ld (C44D),a ROM2:4742 F0 E2 ld a,(FF00+E2) ROM2:4744 C6 0B add a,0B ROM2:4746 EA 4E C4 ld (C44E),a ROM2:4749 CD 50 22 call 2250 ROM2:474C 21 07 C4 ld hl,C407 ROM2:474F BE cp (hl) ROM2:4750 D8 ret c ROM2:4751 FA 4D C4 ld a,(C44D) ROM2:4754 C6 08 add a,08 ROM2:4756 EA 4D C4 ld (C44D),a ROM2:4759 CD 50 22 call 2250 ROM2:475C 21 07 C4 ld hl,C407 ROM2:475F BE cp (hl) ROM2:4760 D8 ret c ROM2:4761 FA 4D C4 ld a,(C44D) ROM2:4764 C6 06 add a,06 ROM2:4766 EA 4D C4 ld (C44D),a ROM2:4769 CD 50 22 call 2250 ROM2:476C 21 07 C4 ld hl,C407 ROM2:476F BE cp (hl) ROM2:4770 D8 ret c ROM2:4771 FA 4D C4 ld a,(C44D) ROM2:4774 C6 08 add a,08 ROM2:4776 EA 4D C4 ld (C44D),a ROM2:4779 CD 50 22 call 2250 ROM2:477C 21 07 C4 ld hl,C407 ROM2:477F BE cp (hl) ROM2:4780 D8 ret c ROM2:4781 18 2B jr 47AE } ;;; $4783: ;;; { ROM2:4783 3E 11 ld a,11 ROM2:4785 EA 02 C4 ld (C402),a ROM2:4788 F0 E1 ld a,(FF00+E1) ROM2:478A D6 08 sub 08 ROM2:478C EA 4D C4 ld (C44D),a ROM2:478F F0 E2 ld a,(FF00+E2) ROM2:4791 C6 07 add a,07 ROM2:4793 EA 4E C4 ld (C44E),a ROM2:4796 CD 50 22 call 2250 ROM2:4799 21 07 C4 ld hl,C407 ROM2:479C BE cp (hl) ROM2:479D D8 ret c ROM2:479E FA 4D C4 ld a,(C44D) ROM2:47A1 C6 0F add a,0F ROM2:47A3 EA 4D C4 ld (C44D),a ROM2:47A6 CD 50 22 call 2250 ROM2:47A9 21 07 C4 ld hl,C407 ROM2:47AC BE cp (hl) ROM2:47AD D8 ret c } ;;; $47AE: $C402 &= FEh ;;; { ROM2:47AE 21 02 C4 ld hl,C402 ROM2:47B1 CB 86 res 0,(hl) ROM2:47B3 C9 ret } ;;; $47B4: ;;; { ROM2:47B4 3E 11 ld a,11 ROM2:47B6 EA 02 C4 ld (C402),a ROM2:47B9 F0 E1 ld a,(FF00+E1) ROM2:47BB D6 07 sub 07 ROM2:47BD EA 4D C4 ld (C44D),a ROM2:47C0 F0 E2 ld a,(FF00+E2) ROM2:47C2 C6 07 add a,07 ROM2:47C4 EA 4E C4 ld (C44E),a ROM2:47C7 CD 50 22 call 2250 ROM2:47CA 21 07 C4 ld hl,C407 ROM2:47CD BE cp (hl) ROM2:47CE D8 ret c ROM2:47CF FA 4D C4 ld a,(C44D) ROM2:47D2 C6 0F add a,0F ROM2:47D4 EA 4D C4 ld (C44D),a ROM2:47D7 CD 50 22 call 2250 ROM2:47DA 21 07 C4 ld hl,C407 ROM2:47DD BE cp (hl) ROM2:47DE D8 ret c ROM2:47DF 18 CD jr 47AE } ;;; $47E1: ;;; { ROM2:47E1 3E 44 ld a,44 ROM2:47E3 EA 02 C4 ld (C402),a ROM2:47E6 F0 E1 ld a,(FF00+E1) ROM2:47E8 D6 03 sub 03 ROM2:47EA EA 4D C4 ld (C44D),a ROM2:47ED F0 E2 ld a,(FF00+E2) ROM2:47EF D6 03 sub 03 ROM2:47F1 EA 4E C4 ld (C44E),a ROM2:47F4 CD 50 22 call 2250 ROM2:47F7 21 07 C4 ld hl,C407 ROM2:47FA BE cp (hl) ROM2:47FB D8 ret c ROM2:47FC FA 4D C4 ld a,(C44D) ROM2:47FF C6 06 add a,06 ROM2:4801 EA 4D C4 ld (C44D),a ROM2:4804 CD 50 22 call 2250 ROM2:4807 21 07 C4 ld hl,C407 ROM2:480A BE cp (hl) ROM2:480B D8 ret c ROM2:480C 18 71 jr 487F } ;;; $480E: ;;; { ROM2:480E 3E 44 ld a,44 ROM2:4810 EA 02 C4 ld (C402),a ROM2:4813 F0 E1 ld a,(FF00+E1) ROM2:4815 D6 03 sub 03 ROM2:4817 EA 4D C4 ld (C44D),a ROM2:481A F0 E2 ld a,(FF00+E2) ROM2:481C D6 07 sub 07 ROM2:481E EA 4E C4 ld (C44E),a ROM2:4821 CD 50 22 call 2250 ROM2:4824 21 07 C4 ld hl,C407 ROM2:4827 BE cp (hl) ROM2:4828 D8 ret c ROM2:4829 FA 4D C4 ld a,(C44D) ROM2:482C C6 06 add a,06 ROM2:482E EA 4D C4 ld (C44D),a ROM2:4831 CD 50 22 call 2250 ROM2:4834 21 07 C4 ld hl,C407 ROM2:4837 BE cp (hl) ROM2:4838 D8 ret c ROM2:4839 18 44 jr 487F } ;;; $483B: ;;; { ROM2:483B 3E 44 ld a,44 ROM2:483D EA 02 C4 ld (C402),a ROM2:4840 F0 E1 ld a,(FF00+E1) ROM2:4842 D6 06 sub 06 ROM2:4844 EA 4D C4 ld (C44D),a ROM2:4847 F0 E2 ld a,(FF00+E2) ROM2:4849 D6 07 sub 07 ROM2:484B EA 4E C4 ld (C44E),a ROM2:484E CD 50 22 call 2250 ROM2:4851 EA 17 C4 ld (C417),a ROM2:4854 21 07 C4 ld hl,C407 ROM2:4857 BE cp (hl) ROM2:4858 D8 ret c ROM2:4859 FA 4D C4 ld a,(C44D) ROM2:485C C6 06 add a,06 ROM2:485E EA 4D C4 ld (C44D),a ROM2:4861 CD 50 22 call 2250 ROM2:4864 EA 17 C4 ld (C417),a ROM2:4867 21 07 C4 ld hl,C407 ROM2:486A BE cp (hl) ROM2:486B D8 ret c ROM2:486C FA 4D C4 ld a,(C44D) ROM2:486F C6 06 add a,06 ROM2:4871 EA 4D C4 ld (C44D),a ROM2:4874 CD 50 22 call 2250 ROM2:4877 EA 17 C4 ld (C417),a ROM2:487A 21 07 C4 ld hl,C407 ROM2:487D BE cp (hl) ROM2:487E D8 ret c } ;;; $487F: $C402 &= FBh ;;; { ROM2:487F 21 02 C4 ld hl,C402 ROM2:4882 CB 96 res 2,(hl) ROM2:4884 C9 ret } ;;; $4885: ;;; { ROM2:4885 3E 44 ld a,44 ROM2:4887 EA 02 C4 ld (C402),a ROM2:488A F0 E1 ld a,(FF00+E1) ROM2:488C D6 07 sub 07 ROM2:488E EA 4D C4 ld (C44D),a ROM2:4891 F0 E2 ld a,(FF00+E2) ROM2:4893 D6 0B sub 0B ROM2:4895 EA 4E C4 ld (C44E),a ROM2:4898 CD 50 22 call 2250 ROM2:489B 21 07 C4 ld hl,C407 ROM2:489E BE cp (hl) ROM2:489F D8 ret c ROM2:48A0 FA 4D C4 ld a,(C44D) ROM2:48A3 C6 07 add a,07 ROM2:48A5 EA 4D C4 ld (C44D),a ROM2:48A8 CD 50 22 call 2250 ROM2:48AB 21 07 C4 ld hl,C407 ROM2:48AE BE cp (hl) ROM2:48AF D8 ret c ROM2:48B0 FA 4D C4 ld a,(C44D) ROM2:48B3 C6 07 add a,07 ROM2:48B5 EA 4D C4 ld (C44D),a ROM2:48B8 CD 50 22 call 2250 ROM2:48BB 21 07 C4 ld hl,C407 ROM2:48BE BE cp (hl) ROM2:48BF D8 ret c ROM2:48C0 18 BD jr 487F } ;;; $48C2: ;;; { ROM2:48C2 3E 44 ld a,44 ROM2:48C4 EA 02 C4 ld (C402),a ROM2:48C7 F0 E1 ld a,(FF00+E1) ROM2:48C9 D6 0B sub 0B ROM2:48CB EA 4D C4 ld (C44D),a ROM2:48CE F0 E2 ld a,(FF00+E2) ROM2:48D0 D6 07 sub 07 ROM2:48D2 EA 4E C4 ld (C44E),a ROM2:48D5 CD 50 22 call 2250 ROM2:48D8 21 07 C4 ld hl,C407 ROM2:48DB BE cp (hl) ROM2:48DC D8 ret c ROM2:48DD FA 4D C4 ld a,(C44D) ROM2:48E0 C6 08 add a,08 ROM2:48E2 EA 4D C4 ld (C44D),a ROM2:48E5 CD 50 22 call 2250 ROM2:48E8 21 07 C4 ld hl,C407 ROM2:48EB BE cp (hl) ROM2:48EC D8 ret c ROM2:48ED FA 4D C4 ld a,(C44D) ROM2:48F0 C6 06 add a,06 ROM2:48F2 EA 4D C4 ld (C44D),a ROM2:48F5 CD 50 22 call 2250 ROM2:48F8 21 07 C4 ld hl,C407 ROM2:48FB BE cp (hl) ROM2:48FC D8 ret c ROM2:48FD FA 4D C4 ld a,(C44D) ROM2:4900 C6 08 add a,08 ROM2:4902 EA 4D C4 ld (C44D),a ROM2:4905 CD 50 22 call 2250 ROM2:4908 21 07 C4 ld hl,C407 ROM2:490B BE cp (hl) ROM2:490C D8 ret c ROM2:490D 18 78 jr 4987 } ;;; $490F: ;;; { ROM2:490F 3E 44 ld a,44 ROM2:4911 EA 02 C4 ld (C402),a ROM2:4914 F0 E1 ld a,(FF00+E1) ROM2:4916 D6 0B sub 0B ROM2:4918 EA 4D C4 ld (C44D),a ROM2:491B F0 E2 ld a,(FF00+E2) ROM2:491D D6 0B sub 0B ROM2:491F EA 4E C4 ld (C44E),a ROM2:4922 CD 50 22 call 2250 ROM2:4925 21 07 C4 ld hl,C407 ROM2:4928 BE cp (hl) ROM2:4929 D8 ret c ROM2:492A FA 4D C4 ld a,(C44D) ROM2:492D C6 08 add a,08 ROM2:492F EA 4D C4 ld (C44D),a ROM2:4932 CD 50 22 call 2250 ROM2:4935 21 07 C4 ld hl,C407 ROM2:4938 BE cp (hl) ROM2:4939 D8 ret c ROM2:493A FA 4D C4 ld a,(C44D) ROM2:493D C6 06 add a,06 ROM2:493F EA 4D C4 ld (C44D),a ROM2:4942 CD 50 22 call 2250 ROM2:4945 21 07 C4 ld hl,C407 ROM2:4948 BE cp (hl) ROM2:4949 D8 ret c ROM2:494A FA 4D C4 ld a,(C44D) ROM2:494D C6 08 add a,08 ROM2:494F EA 4D C4 ld (C44D),a ROM2:4952 CD 50 22 call 2250 ROM2:4955 21 07 C4 ld hl,C407 ROM2:4958 BE cp (hl) ROM2:4959 D8 ret c ROM2:495A 18 2B jr 4987 } ;;; $495C: ;;; { ROM2:495C 3E 44 ld a,44 ROM2:495E EA 02 C4 ld (C402),a ROM2:4961 F0 E1 ld a,(FF00+E1) ROM2:4963 D6 07 sub 07 ROM2:4965 EA 4D C4 ld (C44D),a ROM2:4968 F0 E2 ld a,(FF00+E2) ROM2:496A D6 09 sub 09 ROM2:496C EA 4E C4 ld (C44E),a ROM2:496F CD 50 22 call 2250 ROM2:4972 21 07 C4 ld hl,C407 ROM2:4975 BE cp (hl) ROM2:4976 D8 ret c ROM2:4977 FA 4D C4 ld a,(C44D) ROM2:497A C6 0F add a,0F ROM2:497C EA 4D C4 ld (C44D),a ROM2:497F CD 50 22 call 2250 ROM2:4982 21 07 C4 ld hl,C407 ROM2:4985 BE cp (hl) ROM2:4986 D8 ret c } ;;; $4987: $C402 &= FBh ;;; { ROM2:4987 21 02 C4 ld hl,C402 ROM2:498A CB 96 res 2,(hl) ROM2:498C C9 ret } ;;; $498D: ;;; { ROM2:498D 3E 44 ld a,44 ROM2:498F EA 02 C4 ld (C402),a ROM2:4992 F0 E1 ld a,(FF00+E1) ROM2:4994 D6 08 sub 08 ROM2:4996 EA 4D C4 ld (C44D),a ROM2:4999 F0 E2 ld a,(FF00+E2) ROM2:499B D6 09 sub 09 ROM2:499D EA 4E C4 ld (C44E),a ROM2:49A0 CD 50 22 call 2250 ROM2:49A3 21 07 C4 ld hl,C407 ROM2:49A6 BE cp (hl) ROM2:49A7 D8 ret c ROM2:49A8 FA 4D C4 ld a,(C44D) ROM2:49AB C6 0F add a,0F ROM2:49AD EA 4D C4 ld (C44D),a ROM2:49B0 CD 50 22 call 2250 ROM2:49B3 21 07 C4 ld hl,C407 ROM2:49B6 BE cp (hl) ROM2:49B7 D8 ret c ROM2:49B8 18 CD jr 4987 } ;;; $49BA: ;;; { ROM2:49BA 3E 22 ld a,22 ROM2:49BC EA 02 C4 ld (C402),a ROM2:49BF F0 E1 ld a,(FF00+E1) ROM2:49C1 C6 03 add a,03 ROM2:49C3 EA 4D C4 ld (C44D),a ROM2:49C6 F0 E2 ld a,(FF00+E2) ROM2:49C8 D6 03 sub 03 ROM2:49CA EA 4E C4 ld (C44E),a ROM2:49CD CD 50 22 call 2250 ROM2:49D0 21 07 C4 ld hl,C407 ROM2:49D3 BE cp (hl) ROM2:49D4 D8 ret c ROM2:49D5 FA 4E C4 ld a,(C44E) ROM2:49D8 C6 06 add a,06 ROM2:49DA EA 4E C4 ld (C44E),a ROM2:49DD CD 50 22 call 2250 ROM2:49E0 21 07 C4 ld hl,C407 ROM2:49E3 BE cp (hl) ROM2:49E4 D8 ret c ROM2:49E5 18 3B jr 4A22 } ;;; $49E7: ;;; { ROM2:49E7 3E 22 ld a,22 ROM2:49E9 EA 02 C4 ld (C402),a ROM2:49EC F0 E1 ld a,(FF00+E1) ROM2:49EE C6 03 add a,03 ROM2:49F0 EA 4D C4 ld (C44D),a ROM2:49F3 F0 E2 ld a,(FF00+E2) ROM2:49F5 D6 07 sub 07 ROM2:49F7 EA 4E C4 ld (C44E),a ROM2:49FA CD 50 22 call 2250 ROM2:49FD 21 07 C4 ld hl,C407 ROM2:4A00 BE cp (hl) ROM2:4A01 D8 ret c ROM2:4A02 FA 4E C4 ld a,(C44E) ROM2:4A05 C6 07 add a,07 ROM2:4A07 EA 4E C4 ld (C44E),a ROM2:4A0A CD 50 22 call 2250 ROM2:4A0D 21 07 C4 ld hl,C407 ROM2:4A10 BE cp (hl) ROM2:4A11 D8 ret c ROM2:4A12 FA 4E C4 ld a,(C44E) ROM2:4A15 C6 07 add a,07 ROM2:4A17 EA 4E C4 ld (C44E),a ROM2:4A1A CD 50 22 call 2250 ROM2:4A1D 21 07 C4 ld hl,C407 ROM2:4A20 BE cp (hl) ROM2:4A21 D8 ret c } ;;; $4A22: $C402 &= FDh ;;; { ROM2:4A22 21 02 C4 ld hl,C402 ROM2:4A25 CB 8E res 1,(hl) ROM2:4A27 C9 ret } ;;; $4A28: ;;; { ROM2:4A28 3E 22 ld a,22 ROM2:4A2A EA 02 C4 ld (C402),a ROM2:4A2D F0 E1 ld a,(FF00+E1) ROM2:4A2F C6 07 add a,07 ROM2:4A31 EA 4D C4 ld (C44D),a ROM2:4A34 F0 E2 ld a,(FF00+E2) ROM2:4A36 D6 06 sub 06 ROM2:4A38 EA 4E C4 ld (C44E),a ROM2:4A3B CD 50 22 call 2250 ROM2:4A3E EA 17 C4 ld (C417),a ROM2:4A41 21 07 C4 ld hl,C407 ROM2:4A44 BE cp (hl) ROM2:4A45 D8 ret c ROM2:4A46 FA 4E C4 ld a,(C44E) ROM2:4A49 C6 06 add a,06 ROM2:4A4B EA 4E C4 ld (C44E),a ROM2:4A4E CD 50 22 call 2250 ROM2:4A51 EA 17 C4 ld (C417),a ROM2:4A54 21 07 C4 ld hl,C407 ROM2:4A57 BE cp (hl) ROM2:4A58 D8 ret c ROM2:4A59 FA 4E C4 ld a,(C44E) ROM2:4A5C C6 06 add a,06 ROM2:4A5E EA 4E C4 ld (C44E),a ROM2:4A61 CD 50 22 call 2250 ROM2:4A64 EA 17 C4 ld (C417),a ROM2:4A67 21 07 C4 ld hl,C407 ROM2:4A6A BE cp (hl) ROM2:4A6B D8 ret c ROM2:4A6C 18 B4 jr 4A22 } ;;; $4A6E: ;;; { ROM2:4A6E 3E 22 ld a,22 ROM2:4A70 EA 02 C4 ld (C402),a ROM2:4A73 F0 E1 ld a,(FF00+E1) ROM2:4A75 C6 07 add a,07 ROM2:4A77 EA 4D C4 ld (C44D),a ROM2:4A7A F0 E2 ld a,(FF00+E2) ROM2:4A7C D6 0B sub 0B ROM2:4A7E EA 4E C4 ld (C44E),a ROM2:4A81 CD 50 22 call 2250 ROM2:4A84 21 07 C4 ld hl,C407 ROM2:4A87 BE cp (hl) ROM2:4A88 D8 ret c ROM2:4A89 FA 4E C4 ld a,(C44E) ROM2:4A8C C6 08 add a,08 ROM2:4A8E EA 4E C4 ld (C44E),a ROM2:4A91 CD 50 22 call 2250 ROM2:4A94 21 07 C4 ld hl,C407 ROM2:4A97 BE cp (hl) ROM2:4A98 D8 ret c ROM2:4A99 FA 4E C4 ld a,(C44E) ROM2:4A9C C6 06 add a,06 ROM2:4A9E EA 4E C4 ld (C44E),a ROM2:4AA1 CD 50 22 call 2250 ROM2:4AA4 21 07 C4 ld hl,C407 ROM2:4AA7 BE cp (hl) ROM2:4AA8 D8 ret c ROM2:4AA9 FA 4E C4 ld a,(C44E) ROM2:4AAC C6 08 add a,08 ROM2:4AAE EA 4E C4 ld (C44E),a ROM2:4AB1 CD 50 22 call 2250 ROM2:4AB4 21 07 C4 ld hl,C407 ROM2:4AB7 BE cp (hl) ROM2:4AB8 D8 ret c ROM2:4AB9 18 56 jr 4B11 } ;;; $4ABB: ;;; { ROM2:4ABB 3E 22 ld a,22 ROM2:4ABD EA 02 C4 ld (C402),a ROM2:4AC0 F0 E1 ld a,(FF00+E1) ROM2:4AC2 C6 0B add a,0B ROM2:4AC4 EA 4D C4 ld (C44D),a ROM2:4AC7 F0 E2 ld a,(FF00+E2) ROM2:4AC9 EA 4E C4 ld (C44E),a ROM2:4ACC CD 50 22 call 2250 ROM2:4ACF 21 07 C4 ld hl,C407 ROM2:4AD2 BE cp (hl) ROM2:4AD3 D8 ret c ROM2:4AD4 18 3B jr 4B11 } ;;; $4AD6: ;;; { ROM2:4AD6 3E 22 ld a,22 ROM2:4AD8 EA 02 C4 ld (C402),a ROM2:4ADB F0 E1 ld a,(FF00+E1) ROM2:4ADD C6 0B add a,0B ROM2:4ADF EA 4D C4 ld (C44D),a ROM2:4AE2 F0 E2 ld a,(FF00+E2) ROM2:4AE4 D6 07 sub 07 ROM2:4AE6 EA 4E C4 ld (C44E),a ROM2:4AE9 CD 50 22 call 2250 ROM2:4AEC 21 07 C4 ld hl,C407 ROM2:4AEF BE cp (hl) ROM2:4AF0 D8 ret c ROM2:4AF1 FA 4E C4 ld a,(C44E) ROM2:4AF4 C6 07 add a,07 ROM2:4AF6 EA 4E C4 ld (C44E),a ROM2:4AF9 CD 50 22 call 2250 ROM2:4AFC 21 07 C4 ld hl,C407 ROM2:4AFF BE cp (hl) ROM2:4B00 D8 ret c ROM2:4B01 FA 4E C4 ld a,(C44E) ROM2:4B04 C6 07 add a,07 ROM2:4B06 EA 4E C4 ld (C44E),a ROM2:4B09 CD 50 22 call 2250 ROM2:4B0C 21 07 C4 ld hl,C407 ROM2:4B0F BE cp (hl) ROM2:4B10 D8 ret c } ;;; $4B11: $C402 &= FDh ;;; { ROM2:4B11 21 02 C4 ld hl,C402 ROM2:4B14 CB 8E res 1,(hl) ROM2:4B16 C9 ret } ;;; $4B17: ;;; { ROM2:4B17 3E 22 ld a,22 ROM2:4B19 EA 02 C4 ld (C402),a ROM2:4B1C F0 E1 ld a,(FF00+E1) ROM2:4B1E C6 0B add a,0B ROM2:4B20 EA 4D C4 ld (C44D),a ROM2:4B23 F0 E2 ld a,(FF00+E2) ROM2:4B25 D6 0B sub 0B ROM2:4B27 EA 4E C4 ld (C44E),a ROM2:4B2A CD 50 22 call 2250 ROM2:4B2D 21 07 C4 ld hl,C407 ROM2:4B30 BE cp (hl) ROM2:4B31 D8 ret c ROM2:4B32 FA 4E C4 ld a,(C44E) ROM2:4B35 C6 08 add a,08 ROM2:4B37 EA 4E C4 ld (C44E),a ROM2:4B3A CD 50 22 call 2250 ROM2:4B3D 21 07 C4 ld hl,C407 ROM2:4B40 BE cp (hl) ROM2:4B41 D8 ret c ROM2:4B42 FA 4E C4 ld a,(C44E) ROM2:4B45 C6 06 add a,06 ROM2:4B47 EA 4E C4 ld (C44E),a ROM2:4B4A CD 50 22 call 2250 ROM2:4B4D 21 07 C4 ld hl,C407 ROM2:4B50 BE cp (hl) ROM2:4B51 D8 ret c ROM2:4B52 FA 4E C4 ld a,(C44E) ROM2:4B55 C6 08 add a,08 ROM2:4B57 EA 4E C4 ld (C44E),a ROM2:4B5A CD 50 22 call 2250 ROM2:4B5D 21 07 C4 ld hl,C407 ROM2:4B60 BE cp (hl) ROM2:4B61 D8 ret c ROM2:4B62 18 AD jr 4B11 } ;;; $4B64: ;;; { ROM2:4B64 3E 22 ld a,22 ROM2:4B66 EA 02 C4 ld (C402),a ROM2:4B69 F0 E1 ld a,(FF00+E1) ROM2:4B6B C6 08 add a,08 ROM2:4B6D EA 4D C4 ld (C44D),a ROM2:4B70 F0 E2 ld a,(FF00+E2) ROM2:4B72 D6 08 sub 08 ROM2:4B74 EA 4E C4 ld (C44E),a ROM2:4B77 CD 50 22 call 2250 ROM2:4B7A 21 07 C4 ld hl,C407 ROM2:4B7D BE cp (hl) ROM2:4B7E D8 ret c ROM2:4B7F FA 4E C4 ld a,(C44E) ROM2:4B82 C6 0F add a,0F ROM2:4B84 EA 4E C4 ld (C44E),a ROM2:4B87 CD 50 22 call 2250 ROM2:4B8A 21 07 C4 ld hl,C407 ROM2:4B8D BE cp (hl) ROM2:4B8E D8 ret c ROM2:4B8F 18 2B jr 4BBC } ;;; $4B91: ;;; { ROM2:4B91 3E 22 ld a,22 ROM2:4B93 EA 02 C4 ld (C402),a ROM2:4B96 F0 E1 ld a,(FF00+E1) ROM2:4B98 C6 08 add a,08 ROM2:4B9A EA 4D C4 ld (C44D),a ROM2:4B9D F0 E2 ld a,(FF00+E2) ROM2:4B9F D6 09 sub 09 ROM2:4BA1 EA 4E C4 ld (C44E),a ROM2:4BA4 CD 50 22 call 2250 ROM2:4BA7 21 07 C4 ld hl,C407 ROM2:4BAA BE cp (hl) ROM2:4BAB D8 ret c ROM2:4BAC FA 4E C4 ld a,(C44E) ROM2:4BAF C6 0F add a,0F ROM2:4BB1 EA 4E C4 ld (C44E),a ROM2:4BB4 CD 50 22 call 2250 ROM2:4BB7 21 07 C4 ld hl,C407 ROM2:4BBA BE cp (hl) ROM2:4BBB D8 ret c } ;;; $4BBC: $C402 &= FDh ;;; { ROM2:4BBC 21 02 C4 ld hl,C402 ROM2:4BBF CB 8E res 1,(hl) ROM2:4BC1 C9 ret } ;;; $4BC2: ;;; { ROM2:4BC2 3E 88 ld a,88 ROM2:4BC4 EA 02 C4 ld (C402),a ROM2:4BC7 F0 E1 ld a,(FF00+E1) ROM2:4BC9 D6 03 sub 03 ROM2:4BCB EA 4D C4 ld (C44D),a ROM2:4BCE F0 E2 ld a,(FF00+E2) ROM2:4BD0 D6 03 sub 03 ROM2:4BD2 EA 4E C4 ld (C44E),a ROM2:4BD5 CD 50 22 call 2250 ROM2:4BD8 21 07 C4 ld hl,C407 ROM2:4BDB BE cp (hl) ROM2:4BDC D8 ret c ROM2:4BDD FA 4E C4 ld a,(C44E) ROM2:4BE0 C6 06 add a,06 ROM2:4BE2 EA 4E C4 ld (C44E),a ROM2:4BE5 CD 50 22 call 2250 ROM2:4BE8 21 07 C4 ld hl,C407 ROM2:4BEB BE cp (hl) ROM2:4BEC D8 ret c ROM2:4BED 18 3B jr 4C2A } ;;; $4BEF: ;;; { ROM2:4BEF 3E 88 ld a,88 ROM2:4BF1 EA 02 C4 ld (C402),a ROM2:4BF4 F0 E1 ld a,(FF00+E1) ROM2:4BF6 D6 03 sub 03 ROM2:4BF8 EA 4D C4 ld (C44D),a ROM2:4BFB F0 E2 ld a,(FF00+E2) ROM2:4BFD D6 07 sub 07 ROM2:4BFF EA 4E C4 ld (C44E),a ROM2:4C02 CD 50 22 call 2250 ROM2:4C05 21 07 C4 ld hl,C407 ROM2:4C08 BE cp (hl) ROM2:4C09 D8 ret c ROM2:4C0A FA 4E C4 ld a,(C44E) ROM2:4C0D C6 07 add a,07 ROM2:4C0F EA 4E C4 ld (C44E),a ROM2:4C12 CD 50 22 call 2250 ROM2:4C15 21 07 C4 ld hl,C407 ROM2:4C18 BE cp (hl) ROM2:4C19 D8 ret c ROM2:4C1A FA 4E C4 ld a,(C44E) ROM2:4C1D C6 07 add a,07 ROM2:4C1F EA 4E C4 ld (C44E),a ROM2:4C22 CD 50 22 call 2250 ROM2:4C25 21 07 C4 ld hl,C407 ROM2:4C28 BE cp (hl) ROM2:4C29 D8 ret c } ;;; $4C2A: $C402 &= F7h ;;; { ROM2:4C2A 21 02 C4 ld hl,C402 ROM2:4C2D CB 9E res 3,(hl) ROM2:4C2F C9 ret } ;;; $4C30: ;;; { ROM2:4C30 3E 88 ld a,88 ROM2:4C32 EA 02 C4 ld (C402),a ROM2:4C35 F0 E1 ld a,(FF00+E1) ROM2:4C37 D6 07 sub 07 ROM2:4C39 EA 4D C4 ld (C44D),a ROM2:4C3C F0 E2 ld a,(FF00+E2) ROM2:4C3E D6 06 sub 06 ROM2:4C40 EA 4E C4 ld (C44E),a ROM2:4C43 CD 50 22 call 2250 ROM2:4C46 EA 17 C4 ld (C417),a ROM2:4C49 21 07 C4 ld hl,C407 ROM2:4C4C BE cp (hl) ROM2:4C4D D8 ret c ROM2:4C4E FA 4E C4 ld a,(C44E) ROM2:4C51 C6 06 add a,06 ROM2:4C53 EA 4E C4 ld (C44E),a ROM2:4C56 CD 50 22 call 2250 ROM2:4C59 EA 17 C4 ld (C417),a ROM2:4C5C 21 07 C4 ld hl,C407 ROM2:4C5F BE cp (hl) ROM2:4C60 D8 ret c ROM2:4C61 FA 4E C4 ld a,(C44E) ROM2:4C64 C6 06 add a,06 ROM2:4C66 EA 4E C4 ld (C44E),a ROM2:4C69 CD 50 22 call 2250 ROM2:4C6C EA 17 C4 ld (C417),a ROM2:4C6F 21 07 C4 ld hl,C407 ROM2:4C72 BE cp (hl) ROM2:4C73 D8 ret c ROM2:4C74 18 B4 jr 4C2A } ;;; $4C76: ;;; { ROM2:4C76 3E 88 ld a,88 ROM2:4C78 EA 02 C4 ld (C402),a ROM2:4C7B F0 E1 ld a,(FF00+E1) ROM2:4C7D D6 07 sub 07 ROM2:4C7F EA 4D C4 ld (C44D),a ROM2:4C82 F0 E2 ld a,(FF00+E2) ROM2:4C84 D6 0B sub 0B ROM2:4C86 EA 4E C4 ld (C44E),a ROM2:4C89 CD 50 22 call 2250 ROM2:4C8C 21 07 C4 ld hl,C407 ROM2:4C8F BE cp (hl) ROM2:4C90 D8 ret c ROM2:4C91 FA 4E C4 ld a,(C44E) ROM2:4C94 C6 08 add a,08 ROM2:4C96 EA 4E C4 ld (C44E),a ROM2:4C99 CD 50 22 call 2250 ROM2:4C9C 21 07 C4 ld hl,C407 ROM2:4C9F BE cp (hl) ROM2:4CA0 D8 ret c ROM2:4CA1 FA 4E C4 ld a,(C44E) ROM2:4CA4 C6 06 add a,06 ROM2:4CA6 EA 4E C4 ld (C44E),a ROM2:4CA9 CD 50 22 call 2250 ROM2:4CAC 21 07 C4 ld hl,C407 ROM2:4CAF BE cp (hl) ROM2:4CB0 D8 ret c ROM2:4CB1 FA 4E C4 ld a,(C44E) ROM2:4CB4 C6 08 add a,08 ROM2:4CB6 EA 4E C4 ld (C44E),a ROM2:4CB9 CD 50 22 call 2250 ROM2:4CBC 21 07 C4 ld hl,C407 ROM2:4CBF BE cp (hl) ROM2:4CC0 D8 ret c ROM2:4CC1 18 3B jr 4CFE } ;;; $4CC3: ;;; { ROM2:4CC3 3E 88 ld a,88 ROM2:4CC5 EA 02 C4 ld (C402),a ROM2:4CC8 F0 E1 ld a,(FF00+E1) ROM2:4CCA D6 0B sub 0B ROM2:4CCC EA 4D C4 ld (C44D),a ROM2:4CCF F0 E2 ld a,(FF00+E2) ROM2:4CD1 D6 07 sub 07 ROM2:4CD3 EA 4E C4 ld (C44E),a ROM2:4CD6 CD 50 22 call 2250 ROM2:4CD9 21 07 C4 ld hl,C407 ROM2:4CDC BE cp (hl) ROM2:4CDD D8 ret c ROM2:4CDE FA 4E C4 ld a,(C44E) ROM2:4CE1 C6 07 add a,07 ROM2:4CE3 EA 4E C4 ld (C44E),a ROM2:4CE6 CD 50 22 call 2250 ROM2:4CE9 21 07 C4 ld hl,C407 ROM2:4CEC BE cp (hl) ROM2:4CED D8 ret c ROM2:4CEE FA 4E C4 ld a,(C44E) ROM2:4CF1 C6 07 add a,07 ROM2:4CF3 EA 4E C4 ld (C44E),a ROM2:4CF6 CD 50 22 call 2250 ROM2:4CF9 21 07 C4 ld hl,C407 ROM2:4CFC BE cp (hl) ROM2:4CFD D8 ret c } ;;; $4CFE: $C402 &= $F7h ;;; { ROM2:4CFE 21 02 C4 ld hl,C402 ROM2:4D01 CB 9E res 3,(hl) ROM2:4D03 C9 ret } ;;; $4D04: ;;; { ROM2:4D04 3E 88 ld a,88 ROM2:4D06 EA 02 C4 ld (C402),a ROM2:4D09 F0 E1 ld a,(FF00+E1) ROM2:4D0B D6 0B sub 0B ROM2:4D0D EA 4D C4 ld (C44D),a ROM2:4D10 F0 E2 ld a,(FF00+E2) ROM2:4D12 D6 0B sub 0B ROM2:4D14 EA 4E C4 ld (C44E),a ROM2:4D17 CD 50 22 call 2250 ROM2:4D1A 21 07 C4 ld hl,C407 ROM2:4D1D BE cp (hl) ROM2:4D1E D8 ret c ROM2:4D1F FA 4E C4 ld a,(C44E) ROM2:4D22 C6 08 add a,08 ROM2:4D24 EA 4E C4 ld (C44E),a ROM2:4D27 CD 50 22 call 2250 ROM2:4D2A 21 07 C4 ld hl,C407 ROM2:4D2D BE cp (hl) ROM2:4D2E D8 ret c ROM2:4D2F FA 4E C4 ld a,(C44E) ROM2:4D32 C6 06 add a,06 ROM2:4D34 EA 4E C4 ld (C44E),a ROM2:4D37 CD 50 22 call 2250 ROM2:4D3A 21 07 C4 ld hl,C407 ROM2:4D3D BE cp (hl) ROM2:4D3E D8 ret c ROM2:4D3F FA 4E C4 ld a,(C44E) ROM2:4D42 C6 08 add a,08 ROM2:4D44 EA 4E C4 ld (C44E),a ROM2:4D47 CD 50 22 call 2250 ROM2:4D4A 21 07 C4 ld hl,C407 ROM2:4D4D BE cp (hl) ROM2:4D4E D8 ret c ROM2:4D4F 18 AD jr 4CFE } ;;; $4D51: ;;; { ROM2:4D51 3E 88 ld a,88 ROM2:4D53 EA 02 C4 ld (C402),a ROM2:4D56 F0 E1 ld a,(FF00+E1) ROM2:4D58 D6 08 sub 08 ROM2:4D5A EA 4D C4 ld (C44D),a ROM2:4D5D FA 1F C4 ld a,(C41F) ROM2:4D60 D6 09 sub 09 ROM2:4D62 EA 4E C4 ld (C44E),a ROM2:4D65 CD 50 22 call 2250 ROM2:4D68 21 07 C4 ld hl,C407 ROM2:4D6B BE cp (hl) ROM2:4D6C D8 ret c ROM2:4D6D FA 4E C4 ld a,(C44E) ROM2:4D70 C6 0F add a,0F ROM2:4D72 EA 4E C4 ld (C44E),a ROM2:4D75 CD 50 22 call 2250 ROM2:4D78 21 07 C4 ld hl,C407 ROM2:4D7B BE cp (hl) ROM2:4D7C D8 ret c ROM2:4D7D 18 2C jr 4DAB } ;;; $4D7F: ;;; { ROM2:4D7F 3E 88 ld a,88 ROM2:4D81 EA 02 C4 ld (C402),a ROM2:4D84 F0 E1 ld a,(FF00+E1) ROM2:4D86 D6 08 sub 08 ROM2:4D88 EA 4D C4 ld (C44D),a ROM2:4D8B FA 1F C4 ld a,(C41F) ROM2:4D8E D6 08 sub 08 ROM2:4D90 EA 4E C4 ld (C44E),a ROM2:4D93 CD 50 22 call 2250 ROM2:4D96 21 07 C4 ld hl,C407 ROM2:4D99 BE cp (hl) ROM2:4D9A D8 ret c ROM2:4D9B FA 4E C4 ld a,(C44E) ROM2:4D9E C6 0F add a,0F ROM2:4DA0 EA 4E C4 ld (C44E),a ROM2:4DA3 CD 50 22 call 2250 ROM2:4DA6 21 07 C4 ld hl,C407 ROM2:4DA9 BE cp (hl) ROM2:4DAA D8 ret c } ;;; $4DAB: $C402 &= F7h ;;; { ROM2:4DAB 21 02 C4 ld hl,C402 ROM2:4DAE CB 9E res 3,(hl) ROM2:4DB0 C9 ret } ;;; $4DB1: (unit) ;;; { ROM2:4DB1 21 FE 4F ld hl,4FFE ;\ ROM2:4DB4 11 00 C3 ld de,C300 ;| ROM2:4DB7 06 3E ld b,3E ;| ;| ROM2:4DB9 2A ldi a,(hl) ;} $C300..3D = [$4FFE..503A] ROM2:4DBA 12 ld (de),a ;| ROM2:4DBB 13 inc de ;| ROM2:4DBC 05 dec b ;| ROM2:4DBD 20 FA jr nz,4DB9 ;/ ROM2:4DBF 21 3B 50 ld hl,503B ;\ ROM2:4DC2 11 60 C3 ld de,C360 ;| ROM2:4DC5 06 04 ld b,04 ;| ;| ROM2:4DC7 2A ldi a,(hl) ;} $C360..63 = [$503B..3E] ROM2:4DC8 12 ld (de),a ;| ROM2:4DC9 13 inc de ;| ROM2:4DCA 05 dec b ;| ROM2:4DCB 20 FA jr nz,4DC7 ;/ ROM2:4DCD 3E 00 ld a,00 ;\ ROM2:4DCF EA 80 C3 ld (C380),a ;} $C380 = 0 ROM2:4DD2 C9 ret } ;;; $4DD3: ;;; { ROM2:4DD3 F0 E3 ld a,(FF00+E3) ;\ ROM2:4DD5 CB 47 bit 0,a ;} If [$FFE3] & 1: ROM2:4DD7 28 0D jr z,4DE6 ;/ ROM2:4DD9 FA 97 FF ld a,(FF97) ;\ ROM2:4DDC E6 06 and 06 ;} If [frame counter] & 6 = 0: ROM2:4DDE 20 06 jr nz,4DE6 ;/ ROM2:4DE0 F0 E6 ld a,(FF00+E6) ;\ ROM2:4DE2 EE 10 xor 10 ;} $FFE6 ^= 10h ROM2:4DE4 E0 E6 ld (FF00+E6),a ;/ ROM2:4DE6 CD A0 7D call 7DA0 ; Execute subroutine $7DA0 ROM2:4DE9 FA 6D C4 ld a,(C46D) ROM2:4DEC FE FF cp FF ;\ ROM2:4DEE C8 ret z ;} If [$C46D] = FFh: return ROM2:4DEF 47 ld b,a ROM2:4DF0 EA 6F D0 ld (D06F),a ; $D06F = [$C46D] ROM2:4DF3 F0 FC ld a,(FF00+FC) ;\ ROM2:4DF5 EA 70 D0 ld (D070),a ;} $D070 = [$FFFC] ROM2:4DF8 F0 FD ld a,(FF00+FD) ;\ ROM2:4DFA EA 71 D0 ld (D071),a ;} $D071 = [$FFFD] ROM2:4DFD F0 E3 ld a,(FF00+E3) ROM2:4DFF 4F ld c,a ROM2:4E00 CB 47 bit 0,a ;\ ROM2:4E02 20 18 jr nz,4E1C ;} If [$FFE3] & 1 = 0: ROM2:4E04 78 ld a,b ;\ ROM2:4E05 FE 09 cp 09 ;} If [$C46D] = 9: return ROM2:4E07 C8 ret z ;/ ROM2:4E08 FE 10 cp 10 ;\ ROM2:4E0A C8 ret z ;} If [$C46D] = 10h: return ROM2:4E0B FE 20 cp 20 ;\ ROM2:4E0D C8 ret z ;} If [$C46D] = 20h: return ROM2:4E0E AF xor a ;\ ROM2:4E0F EA C0 CE ld (CEC0),a ;} Tone/sweep channel sound effect to play = 0 ROM2:4E12 3E 02 ld a,02 ;\ ROM2:4E14 EA D5 CE ld (CED5),a ;} Play enemy killed sound effect ROM2:4E17 79 ld a,c ;\ ROM2:4E18 3C inc a ;} Increment $FFE3 ROM2:4E19 E0 E3 ld (FF00+E3),a ;/ ROM2:4E1B C9 ret ROM2:4E1C 78 ld a,b ;\ ROM2:4E1D FE 20 cp 20 ;} If [$C46D] != 20h: ROM2:4E1F 28 08 jr z,4E29 ;/ ROM2:4E21 FE 10 cp 10 ;\ ROM2:4E23 C0 ret nz ;} If [$C46D] != 10h: return ROM2:4E24 3E FF ld a,FF ;\ ROM2:4E26 EA C0 CE ld (CEC0),a ;} Tone/sweep channel sound effect to play = FFh ROM2:4E29 FA 6D D0 ld a,(D06D) ;\ ROM2:4E2C A7 and a ;} If [$D06D] != 0: go to BRANCH_GAMMA ROM2:4E2D 20 51 jr nz,4E80 ;/ ROM2:4E2F 79 ld a,c ;\ ROM2:4E30 FE 9B cp 9B ;} If [$FFE3] = 9Bh: ROM2:4E32 20 12 jr nz,4E46 ;/ ROM2:4E34 FA 51 D0 ld a,(D051) ;\ ROM2:4E37 FE 99 cp 99 ;} If [Samus' health] & FFh != 99h: go to BRANCH_ALPHA ROM2:4E39 20 22 jr nz,4E5D ;/ ROM2:4E3B FA 50 D0 ld a,(D050) ;\ ROM2:4E3E 47 ld b,a ;| ROM2:4E3F FA 52 D0 ld a,(D052) ;} If [Samus' energy tanks] != [Samus' energy / 100h]: go to BRANCH_ALPHA ROM2:4E42 B8 cp b ;| ROM2:4E43 20 18 jr nz,4E5D ;/ ROM2:4E45 C9 ret ROM2:4E46 FE 9D cp 9D ;\ ROM2:4E48 20 13 jr nz,4E5D ;} If [$FFE3] = 9Dh: ROM2:4E4A FA 53 D0 ld a,(D053) ;\ ROM2:4E4D 47 ld b,a ;| ROM2:4E4E FA 81 D0 ld a,(D081) ;| ROM2:4E51 B8 cp b ;| ROM2:4E52 20 09 jr nz,4E5D ;| ROM2:4E54 FA 54 D0 ld a,(D054) ;} If [Samus' missiles] = [Samus' max missiles]: return ROM2:4E57 47 ld b,a ;| ROM2:4E58 FA 82 D0 ld a,(D082) ;| ROM2:4E5B B8 cp b ;| ROM2:4E5C C8 ret z ;/ ; BRANCH_ALPHA ROM2:4E5D 79 ld a,c ;\ ROM2:4E5E EA 88 C3 ld (C388),a ;} $C388 = [$FFE3] (working enemy sprite ID) ROM2:4E61 0E 01 ld c,01 ;\ ;| ROM2:4E63 FE 81 cp 81 ;| ROM2:4E65 28 05 jr z,4E6C ;| ROM2:4E67 D6 02 sub 02 ;| ROM2:4E69 0C inc c ;} Item pickup = ([$C388] - 81h) / 2 + 1 ROM2:4E6A 18 F7 jr 4E63 ;| ;| ROM2:4E6C 79 ld a,c ;| ROM2:4E6D EA 6C D0 ld (D06C),a ;/ ROM2:4E70 F0 E1 ld a,(FF00+E1) ;\ ROM2:4E72 EA 94 D0 ld (D094),a ;| ROM2:4E75 F0 E2 ld a,(FF00+E2) ;} $D094 = [$FFE1] ROM2:4E77 EA 95 D0 ld (D095),a ;/ ROM2:4E7A 3E FF ld a,FF ;\ ROM2:4E7C EA 6D D0 ld (D06D),a ;} $D06D = FFh ROM2:4E7F C9 ret ; BRANCH_GAMMA ROM2:4E80 47 ld b,a ROM2:4E81 AF xor a ;\ ROM2:4E82 EA 6C D0 ld (D06C),a ;} Item pickup = 0 ROM2:4E85 78 ld a,b ;\ ROM2:4E86 FE FF cp FF ;} If [$D06D] = FFh: return ROM2:4E88 C8 ret z ;/ ROM2:4E89 AF xor a ROM2:4E8A EA 6C D0 ld (D06C),a ; Item pickup = 0 ROM2:4E8D EA 6D D0 ld (D06D),a ; $D06D = 0 ROM2:4E90 FA 88 C3 ld a,(C388) ;\ ROM2:4E93 FE 9B cp 9B ;} If [$C388] = 9Bh: return ROM2:4E95 C8 ret z ;/ ROM2:4E96 FE 9D cp 9D ;\ ROM2:4E98 C8 ret z ;} If [$C388] = 9Dh: return ROM2:4E99 CD A6 3C call 3CA6 ; Execute subroutine $3:6AE7 ROM2:4E9C 3E 02 ld a,02 ;\ ROM2:4E9E E0 EF ld (FF00+EF),a ;} $FFEF = 2 ROM2:4EA0 C9 ret } ;;; $4EA1: Enemy AI - enemy 9Ah (blob thrower?) ;;; { ROM2:4EA1 FA 97 FF ld a,(FF97) ;\ ROM2:4EA4 E6 0E and 0E ;} If [frame counter] & Eh != 0: go to BRANCH_4EC6 ROM2:4EA6 20 1E jr nz,4EC6 ;/ ROM2:4EA8 11 04 00 ld de,0004 ROM2:4EAB 06 03 ld b,03 ; b = 3 ROM2:4EAD 21 12 C3 ld hl,C312 ; hl = $C312 ; LOOP_4EB0 ROM2:4EB0 7E ld a,(hl) ;\ ROM2:4EB1 EE 07 xor 07 ;} [[hl]] ^= 7 ROM2:4EB3 77 ld (hl),a ;/ ROM2:4EB4 19 add hl,de ; hl += 4 ROM2:4EB5 05 dec b ;\ ROM2:4EB6 20 F8 jr nz,4EB0 ;} If [--b] != 0: go to LOOP_4EB0 ROM2:4EB8 21 22 C3 ld hl,C322 ;\ ROM2:4EBB 7E ld a,(hl) ;| ROM2:4EBC EE 0D xor 0D ;} [$C322] ^= Dh ROM2:4EBE 77 ld (hl),a ;/ ROM2:4EBF 21 2E C3 ld hl,C32E ;\ ROM2:4EC2 7E ld a,(hl) ;| ROM2:4EC3 EE 0D xor 0D ;} [$C32E] ^= Dh ROM2:4EC5 77 ld (hl),a ;/ ; BRANCH_4EC6 ROM2:4EC6 FA 81 C3 ld a,(C381) ;\ ROM2:4EC9 A7 and a ;} If [$C381] != 0: ROM2:4ECA 28 05 jr z,4ED1 ;/ ROM2:4ECC 3D dec a ;\ ROM2:4ECD EA 81 C3 ld (C381),a ;} Decrement $C381 ROM2:4ED0 C9 ret ROM2:4ED1 FA 82 C3 ld a,(C382) ;\ ROM2:4ED4 A7 and a ;} If [$C382] = 0: go to BRANCH_TYPE_0 ROM2:4ED5 28 0B jr z,4EE2 ;/ ROM2:4ED7 FE 01 cp 01 ;\ ROM2:4ED9 28 65 jr z,4F40 ;} If [$C382] = 1: go to BRANCH_TYPE_1 ROM2:4EDB FE 02 cp 02 ;\ ROM2:4EDD 28 77 jr z,4F56 ;} If [$C382] = 2: go to BRANCH_TYPE_2 ROM2:4EDF C3 B9 4F jp 4FB9 ; Go to $4FB9 ; BRANCH_TYPE_0 ROM2:4EE2 11 00 C3 ld de,C300 ; de = $C300 ROM2:4EE5 21 3F 50 ld hl,503F ; hl = $503F ROM2:4EE8 3E 04 ld a,04 ; a = 4 ROM2:4EEA CD D4 4F call 4FD4 ; Execute $4FD4 ROM2:4EED 21 3F 50 ld hl,503F ; hl = $503F ROM2:4EF0 3E 01 ld a,01 ; a = 1 ROM2:4EF2 CD D4 4F call 4FD4 ; Execute $4FD4 ROM2:4EF5 21 71 50 ld hl,5071 ; hl = $5071 ROM2:4EF8 3E 01 ld a,01 ; a = 1 ROM2:4EFA CD D4 4F call 4FD4 ; Execute $4FD4 ROM2:4EFD 21 A3 50 ld hl,50A3 ; hl = $50A3 ROM2:4F00 3E 01 ld a,01 ; a = 1 ROM2:4F02 CD D4 4F call 4FD4 ; Execute $4FD4 ROM2:4F05 21 3F 50 ld hl,503F ;\ ROM2:4F08 FA 80 C3 ld a,(C380) ;| ROM2:4F0B 5F ld e,a ;| ROM2:4F0C 16 00 ld d,00 ;| ROM2:4F0E 19 add hl,de ;} $C360 += [$503F + [$C380]] ROM2:4F0F 11 60 C3 ld de,C360 ;| ROM2:4F12 1A ld a,(de) ;| ROM2:4F13 86 add a,(hl) ;| ROM2:4F14 12 ld (de),a ;/ ROM2:4F15 FA 80 C3 ld a,(C380) ;\ ROM2:4F18 3C inc a ;} Increment $C380 ROM2:4F19 EA 80 C3 ld (C380),a ;/ ROM2:4F1C FE 15 cp 15 ;\ ROM2:4F1E C0 ret nz ;} If [$C380] != 15h: return ROM2:4F1F 21 02 C3 ld hl,C302 ;\ ROM2:4F22 11 04 00 ld de,0004 ;} $C302 = DFh ROM2:4F25 36 DF ld (hl),DF ;/ ROM2:4F27 19 add hl,de ;\ ROM2:4F28 36 DF ld (hl),DF ;} $C306 = DFh ROM2:4F2A 19 add hl,de ;\ ROM2:4F2B 36 E1 ld (hl),E1 ;} $C30A = E1h ROM2:4F2D 19 add hl,de ;\ ROM2:4F2E 36 E1 ld (hl),E1 ;} $C30E = E1h ROM2:4F30 21 34 C3 ld hl,C334 ;\ ROM2:4F33 36 E8 ld (hl),E8 ;} $C334 = E8h ROM2:4F35 3E 04 ld a,04 ;\ ROM2:4F37 EA 81 C3 ld (C381),a ;} $C381 = 4 ROM2:4F3A 3E 01 ld a,01 ;\ ROM2:4F3C EA 82 C3 ld (C382),a ;} $C382 = 1 ROM2:4F3F C9 ret ; BRANCH_TYPE_1 ROM2:4F40 21 02 C3 ld hl,C302 ;\ ROM2:4F43 11 04 00 ld de,0004 ;} $C302 = E2h ROM2:4F46 36 E2 ld (hl),E2 ;/ ROM2:4F48 19 add hl,de ;\ ROM2:4F49 36 E2 ld (hl),E2 ;} $C306 = E2h ROM2:4F4B 3E 04 ld a,04 ;\ ROM2:4F4D EA 81 C3 ld (C381),a ;} $C381 = 4 ROM2:4F50 3E 02 ld a,02 ;\ ROM2:4F52 EA 82 C3 ld (C382),a ;} $C382 = 2 ROM2:4F55 C9 ret ; BRANCH_TYPE_2 ROM2:4F56 21 02 C3 ld hl,C302 ;\ ROM2:4F59 11 04 00 ld de,0004 ;} $C302 = E3h ROM2:4F5C 36 E3 ld (hl),E3 ;/ ROM2:4F5E 19 add hl,de ;\ ROM2:4F5F 36 E3 ld (hl),E3 ;} $C306 = E3h ROM2:4F61 3E 40 ld a,40 ;\ ROM2:4F63 EA 81 C3 ld (C381),a ;} $C381 = 40h ROM2:4F66 3E 03 ld a,03 ;\ ROM2:4F68 EA 82 C3 ld (C382),a ;} $C382 = 3 ROM2:4F6B CD 87 4F call 4F87 ; Execute $4F87 ROM2:4F6E 11 D5 50 ld de,50D5 ; de = $50D5 ROM2:4F71 CD 97 4F call 4F97 ; Execute $4F97 ROM2:4F74 11 E2 50 ld de,50E2 ; de = $50E2 ROM2:4F77 CD 97 4F call 4F97 ; Execute $4F97 ROM2:4F7A 11 EF 50 ld de,50EF ; de = $50EF ROM2:4F7D CD 97 4F call 4F97 ; Execute $4F97 ROM2:4F80 11 FC 50 ld de,50FC ; de = $50FC ROM2:4F83 CD 97 4F call 4F97 ; Execute $4F97 ROM2:4F86 C9 ret } ;;; $4F87: (unit) ;;; { ; $C386 = [Samus' X position on screen] >= [enemy X position on screen] ROM2:4F87 FA 3C D0 ld a,(D03C) ROM2:4F8A 47 ld b,a ROM2:4F8B F0 E2 ld a,(FF00+E2) ROM2:4F8D B8 cp b ROM2:4F8E 3E 00 ld a,00 ROM2:4F90 38 01 jr c,4F93 ROM2:4F92 3C inc a ROM2:4F93 EA 86 C3 ld (C386),a ROM2:4F96 C9 ret } ;;; $4F97: ;;; { ROM2:4F97 CD F6 3D call 3DF6 ; hl = pointer to end of enemy data ROM2:4F9A 36 00 ld (hl),00 ; [[hl]] = 0 ROM2:4F9C 23 inc hl ;\ ROM2:4F9D F0 E1 ld a,(FF00+E1) ;| ROM2:4F9F D6 20 sub 20 ;} New enemy Y position = [current enemy Y position] - 20h ROM2:4FA1 22 ldi (hl),a ;/ ROM2:4FA2 F0 E2 ld a,(FF00+E2) ;\ ROM2:4FA4 22 ldi (hl),a ;} New enemy X position = [current enemy X position] ROM2:4FA5 3E 06 ld a,06 ;\ ROM2:4FA7 EA 77 C4 ld (C477),a ;} $C477 = 6 ROM2:4FAA E5 push hl ;\ ROM2:4FAB CD 35 72 call 7235 ;} Execute $7235 ROM2:4FAE E1 pop hl ;/ ROM2:4FAF 11 04 00 ld de,0004 ;\ ROM2:4FB2 19 add hl,de ;| ROM2:4FB3 F0 E1 ld a,(FF00+E1) ;} [[hl] + 7] = [current enemy Y position] + 40h ROM2:4FB5 C6 40 add a,40 ;| ROM2:4FB7 77 ld (hl),a ;/ ROM2:4FB8 C9 ret } ;;; $4FB9: (unit) ;;; { ROM2:4FB9 21 02 C3 ld hl,C302 ;\ ROM2:4FBC 11 04 00 ld de,0004 ;} $C302 = 4 ROM2:4FBF 36 DD ld (hl),DD ;/ ROM2:4FC1 19 add hl,de ;\ ROM2:4FC2 36 DD ld (hl),DD ;} $C306 = 4 ROM2:4FC4 19 add hl,de ;\ ROM2:4FC5 36 DE ld (hl),DE ;} $C30A = 4 ROM2:4FC7 19 add hl,de ;\ ROM2:4FC8 36 DE ld (hl),DE ;} $C30E = 4 ROM2:4FCA 21 34 C3 ld hl,C334 ;\ ROM2:4FCD 36 FF ld (hl),FF ;} $C334 = FFh ROM2:4FCF AF xor a ;\ ROM2:4FD0 EA 82 C3 ld (C382),a ;} $C382 = 0 ROM2:4FD3 C9 ret } ;;; $4FD4: (unit) ;;; { ROM2:4FD4 D5 push de ROM2:4FD5 F5 push af ROM2:4FD6 E5 push hl ROM2:4FD7 FA 80 C3 ld a,(C380) ; LOOP_ALPHA ROM2:4FDA 5F ld e,a ;\ ROM2:4FDB 16 00 ld d,00 ;} hl += [$C380] ROM2:4FDD 19 add hl,de ;/ ROM2:4FDE 7E ld a,(hl) ;\ ROM2:4FDF FE 80 cp 80 ;} If [[hl]] = 80h: go to BRANCH_GAMMA ROM2:4FE1 28 0E jr z,4FF1 ;/ ROM2:4FE3 C1 pop bc ROM2:4FE4 C1 pop bc ; b = a-parameter ROM2:4FE5 D1 pop de ; LOOP_BETA ROM2:4FE6 1A ld a,(de) ;\ ROM2:4FE7 86 add a,(hl) ;} [de] += [[hl]] ROM2:4FE8 12 ld (de),a ;/ ROM2:4FE9 13 inc de ;\ ROM2:4FEA 13 inc de ;| ROM2:4FEB 13 inc de ;} de += 4 ROM2:4FEC 13 inc de ;/ ROM2:4FED 05 dec b ;\ ROM2:4FEE 20 F6 jr nz,4FE6 ;} If [--b] != 0: go to LOOP_BETA ROM2:4FF0 C9 ret ; BRANCH_GAMMA ROM2:4FF1 3E 30 ld a,30 ;\ ROM2:4FF3 EA 81 C3 ld (C381),a ;} $C381 = 30h ROM2:4FF6 AF xor a ;\ ROM2:4FF7 EA 80 C3 ld (C380),a ;} $C380 = 0 ROM2:4FFA E1 pop hl ;\ ROM2:4FFB E5 push hl ;} Restore hl-parameter ROM2:4FFC 18 DC jr 4FDA ; Go to LOOP_ALPHA } ROM2:4FFE db F8,00,DD,20,F8,F8,DD,00,00,00,DE,20,00,F8,DE,00, 08,FC,DB,00,08,FC,DB,00,08,FC,DB,00,08,F4,D6,00, 08,FC,DA,00,08,04,D8,00,10,F4,D3,00,10,FC,D9,00, 10,04,D5,00,FF,F0,E0,00,E8,08,E0,20,FF ROM2:503B db FC,18,F8,08 ROM2:503F db 00,FE,FF,FF,FF,FF,FF,FF,FE,FE,FE,FE,FE,FE,FD,FF, 00,00,00,00,00,00,02,01,00,01,01,01,01,00,01,00, 02,01,01,01,01,02,00,00,01,01,01,02,01,00,02,00, 00,80 ROM2:5071 db 00,FF,FF,FF,FF,FF,FF,FF,FF,FE,FF,FF,FF,FE,FF,00, 00,00,00,00,00,00,01,00,01,02,00,00,00,00,00,00, 00,00,00,01,00,01,02,00,02,00,01,01,01,01,01,01, 00,80 ROM2:50A3 db 00,FF,00,FF,00,FF,00,00,FF,00,FF,00,FF,FF,FF,00, 00,00,00,00,00,01,00,00,01,01,00,00,00,00,00,01, 00,00,00,01,00,01,00,00,00,00,01,00,00,00,01,00, 00,80 ROM2:50D5 db 9E,00,00,00,00,00,D7,53,00,02,02,6F,53 ROM2:50E2 db 9E,00,00,00,00,00,08,54,00,02,03,6F,53 ROM2:50EF db 9E,00,00,00,00,00,37,54,00,02,04,6F,53 ROM2:50FC db 9E,00,00,00,00,00,63,54,00,02,05,6F,53 ;;; $5109: Enemy AI - enemy 76h..7Ah / 9Ch (Arachnus / Arachnus orb) ;;; { ROM2:5109 F0 E7 ld a,(FF00+E7) ROM2:510B EF rst 28 ROM2:510C dw 511C, 5152, 51B9, 51CE, 51EC, 51FB, 526E, 5651 } ;;; $511C: ;;; { ROM2:511C 21 90 C3 ld hl,C390 ROM2:511F AF xor a ROM2:5120 06 06 ld b,06 ROM2:5122 22 ldi (hl),a ROM2:5123 05 dec b ROM2:5124 20 FC jr nz,5122 ROM2:5126 3E 06 ld a,06 ROM2:5128 EA 94 C3 ld (C394),a ROM2:512B 3E FF ld a,FF ROM2:512D E0 EC ld (FF00+EC),a ROM2:512F CD A0 7D call 7DA0 ROM2:5132 FA 6D C4 ld a,(C46D) ROM2:5135 FE FF cp FF ROM2:5137 C8 ret z ROM2:5138 FE 09 cp 09 ROM2:513A D0 ret nc ROM2:513B 3E 76 ld a,76 ROM2:513D E0 E3 ld (FF00+E3),a } ;;; $513F: ;;; { ROM2:513F 3E 05 ld a,05 ;\ ROM2:5141 EA 92 C3 ld (C392),a ;} $C392 = 5 } ;;; $5144: ;;; { ROM2:5144 AF xor a ;\ ROM2:5145 EA 90 C3 ld (C390),a ;} $C390 = 0 ROM2:5148 3E 20 ld a,20 ; a = 20h } ;;; $514A: (unit) ;;; { ROM2:514A EA 91 C3 ld (C391),a ; $C391 = [a] ROM2:514D 21 E7 FF ld hl,FFE7 ;\ ROM2:5150 34 inc (hl) ;} Increment $FFE7 ROM2:5151 C9 ret } ;;; $5152: ;;; { ROM2:5152 21 FC 52 ld hl,52FC ROM2:5155 CD 6E 51 call 516E ROM2:5158 20 E5 jr nz,513F ROM2:515A 21 E2 FF ld hl,FFE2 ROM2:515D 7E ld a,(hl) ROM2:515E C6 01 add a,01 ROM2:5160 77 ld (hl),a } ;;; $5161: (unit) ;;; { ROM2:5161 FA 97 FF ld a,(FF97) ;\ ROM2:5164 E6 06 and 06 ;} If [frame counter] & 6: return ROM2:5166 C0 ret nz ;/ ROM2:5167 F0 E3 ld a,(FF00+E3) ;\ ROM2:5169 EE 01 xor 01 ;} $FFE3 ^= 1 ROM2:516B E0 E3 ld (FF00+E3),a ;/ ROM2:516D C9 ret } ;;; $516E: ;;; { ROM2:516E FA 90 C3 ld a,(C390) ROM2:5171 5F ld e,a ROM2:5172 16 00 ld d,00 ROM2:5174 19 add hl,de ROM2:5175 7E ld a,(hl) ROM2:5176 47 ld b,a ROM2:5177 FE 80 cp 80 ROM2:5179 20 05 jr nz,5180 ROM2:517B 01 80 03 ld bc,0380 ROM2:517E 18 10 jr 5190 ROM2:5180 FE 81 cp 81 ROM2:5182 20 05 jr nz,5189 ROM2:5184 01 81 03 ld bc,0381 ROM2:5187 18 07 jr 5190 ROM2:5189 1C inc e ROM2:518A 7B ld a,e ROM2:518B EA 90 C3 ld (C390),a ROM2:518E 0E 00 ld c,00 ROM2:5190 F0 E1 ld a,(FF00+E1) ROM2:5192 80 add a,b ROM2:5193 E0 E1 ld (FF00+E1),a ROM2:5195 79 ld a,c ROM2:5196 EA 93 C3 ld (C393),a ROM2:5199 CD 28 4A call 4A28 ROM2:519C FA 02 C4 ld a,(C402) ROM2:519F E6 02 and 02 ROM2:51A1 C8 ret z ROM2:51A2 FA 93 C3 ld a,(C393) ROM2:51A5 A7 and a ROM2:51A6 28 0E jr z,51B6 ROM2:51A8 FE 81 cp 81 ROM2:51AA 28 0A jr z,51B6 ROM2:51AC FA 90 C3 ld a,(C390) ROM2:51AF 3C inc a ROM2:51B0 EA 90 C3 ld (C390),a ROM2:51B3 AF xor a ROM2:51B4 A7 and a ROM2:51B5 C9 ret ROM2:51B6 3C inc a ROM2:51B7 A7 and a ROM2:51B8 C9 ret } ;;; $51B9: ;;; { ROM2:51B9 21 56 53 ld hl,5356 ROM2:51BC CD 6E 51 call 516E ROM2:51BF 20 02 jr nz,51C3 ROM2:51C1 18 9E jr 5161 ROM2:51C3 3E 04 ld a,04 ROM2:51C5 EA 91 C3 ld (C391),a ROM2:51C8 21 E7 FF ld hl,FFE7 ROM2:51CB 36 03 ld (hl),03 ROM2:51CD C9 ret } ;;; $51CE: ;;; { ROM2:51CE FA 91 C3 ld a,(C391) ROM2:51D1 A7 and a ROM2:51D2 28 06 jr z,51DA ROM2:51D4 3D dec a ROM2:51D5 EA 91 C3 ld (C391),a ROM2:51D8 18 87 jr 5161 ROM2:51DA CD 9A 52 call 529A ROM2:51DD F0 E1 ld a,(FF00+E1) ROM2:51DF D6 08 sub 08 ROM2:51E1 E0 E1 ld (FF00+E1),a ROM2:51E3 3E 78 ld a,78 } ;;; $51E5: ;;; { ROM2:51E5 E0 E3 ld (FF00+E3),a ROM2:51E7 3E 04 ld a,04 ROM2:51E9 C3 4A 51 jp 514A } ;;; $51EC: ;;; { ROM2:51EC FA 91 C3 ld a,(C391) ROM2:51EF A7 and a ROM2:51F0 28 05 jr z,51F7 ROM2:51F2 3D dec a ROM2:51F3 EA 91 C3 ld (C391),a ROM2:51F6 C9 ret ROM2:51F7 3E 7A ld a,7A ROM2:51F9 18 EA jr 51E5 } ;;; $51FB: ;;; { ROM2:51FB CD A0 7D call 7DA0 ROM2:51FE FA 6D C4 ld a,(C46D) ROM2:5201 FE FF cp FF ROM2:5203 28 16 jr z,521B ROM2:5205 FE 09 cp 09 ROM2:5207 20 12 jr nz,521B ROM2:5209 3E 05 ld a,05 ;\ ROM2:520B EA D5 CE ld (CED5),a ;} Play metroid hurt sound effect ROM2:520E 3E 11 ld a,11 ROM2:5210 E0 E6 ld (FF00+E6),a ROM2:5212 FA 94 C3 ld a,(C394) ROM2:5215 3D dec a ROM2:5216 EA 94 C3 ld (C394),a ROM2:5219 28 3B jr z,5256 ROM2:521B FA 80 FF ld a,(FF80) ROM2:521E E6 02 and 02 ROM2:5220 20 27 jr nz,5249 ROM2:5222 CD 9A 52 call 529A ROM2:5225 FA 91 C3 ld a,(C391) ROM2:5228 A7 and a ROM2:5229 28 05 jr z,5230 ROM2:522B 3D dec a ROM2:522C EA 91 C3 ld (C391),a ROM2:522F C9 ret ROM2:5230 3E 7A ld a,7A ROM2:5232 E0 E3 ld (FF00+E3),a ROM2:5234 F0 EF ld a,(FF00+EF) ROM2:5236 FE 01 cp 01 ROM2:5238 C0 ret nz ROM2:5239 11 D2 52 ld de,52D2 ROM2:523C CD A6 52 call 52A6 ROM2:523F 3E 79 ld a,79 ROM2:5241 E0 E3 ld (FF00+E3),a ROM2:5243 3E 10 ld a,10 ROM2:5245 EA 91 C3 ld (C391),a ROM2:5248 C9 ret ROM2:5249 F0 E1 ld a,(FF00+E1) ROM2:524B C6 08 add a,08 ROM2:524D E0 E1 ld (FF00+E1),a ROM2:524F 3E 76 ld a,76 ROM2:5251 E0 E3 ld (FF00+E3),a ROM2:5253 C3 44 51 jp 5144 ROM2:5256 3E 0D ld a,0D ;\ ROM2:5258 EA D5 CE ld (CED5),a ;} Play metroid killed sound effect ROM2:525B 21 EC FF ld hl,FFEC ROM2:525E 36 FF ld (hl),FF ROM2:5260 3E 95 ld a,95 ROM2:5262 E0 E3 ld (FF00+E3),a ROM2:5264 21 F1 FF ld hl,FFF1 ROM2:5267 11 D3 4D ld de,4DD3 ROM2:526A 73 ld (hl),e ROM2:526B 2C inc l ROM2:526C 72 ld (hl),d ROM2:526D C9 ret } ;;; $526E: ;;; { ROM2:526E F0 E5 ld a,(FF00+E5) ROM2:5270 A7 and a ROM2:5271 28 19 jr z,528C ROM2:5273 CD 62 46 call 4662 ROM2:5276 06 01 ld b,01 ROM2:5278 FA 02 C4 ld a,(C402) ROM2:527B E6 01 and 01 ROM2:527D 28 02 jr z,5281 ROM2:527F 18 05 jr 5286 ROM2:5281 F0 E2 ld a,(FF00+E2) ROM2:5283 80 add a,b ROM2:5284 E0 E2 ld (FF00+E2),a ROM2:5286 21 2E 53 ld hl,532E ROM2:5289 C3 BC 51 jp 51BC ROM2:528C CD 3B 48 call 483B ROM2:528F 06 FF ld b,FF ROM2:5291 FA 02 C4 ld a,(C402) ROM2:5294 E6 04 and 04 ROM2:5296 28 E9 jr z,5281 ROM2:5298 18 EC jr 5286 } ;;; $529A: ;;; { ROM2:529A CD 87 4F call 4F87 ROM2:529D A7 and a ROM2:529E 3E 20 ld a,20 ROM2:52A0 28 01 jr z,52A3 ROM2:52A2 AF xor a ROM2:52A3 E0 E5 ld (FF00+E5),a ROM2:52A5 C9 ret } ;;; $52A6: ;;; { ROM2:52A6 CD F6 3D call 3DF6 ROM2:52A9 36 00 ld (hl),00 ROM2:52AB 23 inc hl ROM2:52AC F0 E1 ld a,(FF00+E1) ROM2:52AE C6 FD add a,FD ROM2:52B0 22 ldi (hl),a ROM2:52B1 F0 E5 ld a,(FF00+E5) ROM2:52B3 06 18 ld b,18 ROM2:52B5 A7 and a ROM2:52B6 20 02 jr nz,52BA ROM2:52B8 06 E8 ld b,E8 ROM2:52BA F0 E2 ld a,(FF00+E2) ROM2:52BC 80 add a,b ROM2:52BD 22 ldi (hl),a ROM2:52BE E5 push hl ROM2:52BF CD 21 6B call 6B21 ROM2:52C2 CD 35 72 call 7235 ROM2:52C5 E1 pop hl ROM2:52C6 11 04 00 ld de,0004 ROM2:52C9 19 add hl,de ROM2:52CA F0 E5 ld a,(FF00+E5) ROM2:52CC 77 ld (hl),a ROM2:52CD 3E 03 ld a,03 ROM2:52CF E0 EF ld (FF00+EF),a ROM2:52D1 C9 ret } ROM2:52D2 db 7B,00,00,00,00,00,00,00,00,02,02,DF,52 ;;; $52DF: ;;; { ROM2:52DF 21 E2 FF ld hl,FFE2 ROM2:52E2 F0 E7 ld a,(FF00+E7) ROM2:52E4 A7 and a ROM2:52E5 06 03 ld b,03 ROM2:52E7 20 02 jr nz,52EB ROM2:52E9 06 FD ld b,FD ROM2:52EB 7E ld a,(hl) ROM2:52EC 80 add a,b ROM2:52ED 77 ld (hl),a ROM2:52EE FA 97 FF ld a,(FF97) ROM2:52F1 E6 06 and 06 ROM2:52F3 C0 ret nz ROM2:52F4 F0 E3 ld a,(FF00+E3) ROM2:52F6 EE 07 xor 07 ROM2:52F8 E0 E3 ld (FF00+E3),a ROM2:52FA C9 ret } ;;; $52FB: ;;; { ROM2:52FB C9 ret } ROM2:52FC db FF,FE,FE,FE,FF,FF,FE,FF,FE,FE,FE,FF,FF,FF,00,00, 00,00,01,00,01,01,00,01,01,01,01,01,01,01,01,01, 01,02,02,02,02,02,02,02,02,03,03,03,03,03,03,03, 00,80 ROM2:532E db FC,FD,FD,FD,FE,FE,FD,FE,FE,FE,FE,FF,FE,FF,FE,FF, FF,00,00,00,00,01,01,02,01,02,01,02,02,02,02,03, 02,02,03,03,03,04,00,80 ROM2:5356 db FD,FE,FE,FE,FF,FF,00,FF,FF,00,FF,00,00,01,00,01, 01,00,01,01,02,02,02,03,81 ;;; $536F: ;;; { ROM2:536F F0 FE ld a,(FF00+FE) ROM2:5371 47 ld b,a ROM2:5372 E6 01 and 01 ROM2:5374 C0 ret nz ROM2:5375 78 ld a,b ROM2:5376 E6 01 and 01 ROM2:5378 20 06 jr nz,5380 ROM2:537A F0 E3 ld a,(FF00+E3) ROM2:537C EE 01 xor 01 ROM2:537E E0 E3 ld (FF00+E3),a ROM2:5380 21 E9 FF ld hl,FFE9 ROM2:5383 5E ld e,(hl) ROM2:5384 2C inc l ROM2:5385 56 ld d,(hl) ROM2:5386 1A ld a,(de) ROM2:5387 FE 80 cp 80 ROM2:5389 28 33 jr z,53BE ROM2:538B 1A ld a,(de) ROM2:538C E6 F0 and F0 ROM2:538E CB 37 swap a ROM2:5390 CB 5F bit 3,a ROM2:5392 28 04 jr z,5398 ROM2:5394 E6 07 and 07 ROM2:5396 2F cpl ROM2:5397 3C inc a ROM2:5398 47 ld b,a ROM2:5399 FA 86 C3 ld a,(C386) ROM2:539C A7 and a ROM2:539D 28 04 jr z,53A3 ROM2:539F 78 ld a,b ROM2:53A0 2F cpl ROM2:53A1 3C inc a ROM2:53A2 47 ld b,a ROM2:53A3 F0 E2 ld a,(FF00+E2) ROM2:53A5 80 add a,b ROM2:53A6 E0 E2 ld (FF00+E2),a ROM2:53A8 1A ld a,(de) ROM2:53A9 E6 0F and 0F ROM2:53AB CB 5F bit 3,a ROM2:53AD 28 04 jr z,53B3 ROM2:53AF E6 07 and 07 ROM2:53B1 2F cpl ROM2:53B2 3C inc a ROM2:53B3 47 ld b,a ROM2:53B4 F0 E1 ld a,(FF00+E1) ROM2:53B6 80 add a,b ROM2:53B7 E0 E1 ld (FF00+E1),a ROM2:53B9 13 inc de ROM2:53BA 72 ld (hl),d ROM2:53BB 2D dec l ROM2:53BC 73 ld (hl),e ROM2:53BD C9 ret ROM2:53BE AF xor a ROM2:53BF EA 87 C3 ld (C387),a ROM2:53C2 F0 E7 ld a,(FF00+E7) ROM2:53C4 47 ld b,a ROM2:53C5 F0 E1 ld a,(FF00+E1) ROM2:53C7 B8 cp b ROM2:53C8 30 05 jr nc,53CF ROM2:53CA 3C inc a ROM2:53CB 3C inc a ROM2:53CC E0 E1 ld (FF00+E1),a ROM2:53CE C9 ret ROM2:53CF CD A6 3C call 3CA6 ROM2:53D2 3E FF ld a,FF ROM2:53D4 E0 EF ld (FF00+EF),a ROM2:53D6 C9 ret } ROM2:53D7 db 19,1A,1A,29,28,31,32,32,33,34,34,25,89,9B,9B,A9, A8,B1,B2,C2,C3,D4,D4,C5,09,1B,1B,29,28,31,32,42, 43,54,54,45,89,9B,9B,A9,A8,B1,B2,C2,C3,D4,D4,C5, 80,09,1A,1A,2A,3A,3A,4A,49,58,51,89,9B,9B,A9,A8, B1,B2,C2,C3,D4,D4,C5,09,1B,1B,29,28,31,32,42,43, 54,54,45,89,9B,9B,A9,A8,B1,B2,C2,C3,D4,D4,C5,80, 19,1A,2B,4B,4A,5A,59,09,1B,1B,29,28,31,32,42,43, 54,54,45,89,9B,9B,A9,A8,B1,B2,C2,C3,D4,D4,C5,09, 1B,1B,29,28,31,32,42,43,54,54,45,80,29,39,3A,4A, 4B,5B,58,6B,09,1B,1B,29,28,31,32,42,43,54,54,45, 89,9B,9B,A9,A8,B1,B2,C2,C3,D4,D4,C5,09,1B,1B,29, 28,31,32,42,43,54,54,45,EB,FA,FA,E9,E9,D8,D8,C1, C1,B2,B2,A3,A3,94,94,85,85,80 ;;; $54A1: Enemy AI - enemy 2Ch (glow fly) ;;; { ROM2:54A1 F0 EA ld a,(FF00+EA) ROM2:54A3 A7 and a ROM2:54A4 20 21 jr nz,54C7 ROM2:54A6 21 E9 FF ld hl,FFE9 ROM2:54A9 34 inc (hl) ROM2:54AA 7E ld a,(hl) ROM2:54AB FE 50 cp 50 ROM2:54AD 28 0D jr z,54BC ROM2:54AF FE 45 cp 45 ROM2:54B1 28 04 jr z,54B7 ROM2:54B3 CD 24 55 call 5524 ROM2:54B6 C9 ret ROM2:54B7 3E 2E ld a,2E ROM2:54B9 E0 E3 ld (FF00+E3),a ROM2:54BB C9 ret ROM2:54BC 3E 2E ld a,2E ROM2:54BE E0 E3 ld (FF00+E3),a ROM2:54C0 36 00 ld (hl),00 ROM2:54C2 3E 01 ld a,01 ROM2:54C4 E0 EA ld (FF00+EA),a ROM2:54C6 C9 ret ROM2:54C7 3E 2F ld a,2F ROM2:54C9 E0 E3 ld (FF00+E3),a ROM2:54CB CD D2 54 call 54D2 ROM2:54CE CD E4 54 call 54E4 ROM2:54D1 C9 ret } ;;; $54D2: (unit) ;;; { ROM2:54D2 21 E2 FF ld hl,FFE2 ROM2:54D5 F0 E8 ld a,(FF00+E8) ;\ ROM2:54D7 A7 and a ;} If [$FFE8] = 0: ROM2:54D8 20 05 jr nz,54DF ;/ ROM2:54DA 7E ld a,(hl) ;\ ROM2:54DB C6 03 add a,03 ;} $FFE2 += 3 ROM2:54DD 77 ld (hl),a ;/ ROM2:54DE C9 ret ROM2:54DF 7E ld a,(hl) ;\ ROM2:54E0 D6 03 sub 03 ;} $FFE2 -= 3 ROM2:54E2 77 ld (hl),a ;/ ROM2:54E3 C9 ret } ;;; $54E4: ;;; { ROM2:54E4 F0 E8 ld a,(FF00+E8) ROM2:54E6 A7 and a ROM2:54E7 20 1F jr nz,5508 ROM2:54E9 CD 08 46 call 4608 ROM2:54EC FA 02 C4 ld a,(C402) ROM2:54EF CB 47 bit 0,a ROM2:54F1 C8 ret z ROM2:54F2 3E 2C ld a,2C ROM2:54F4 E0 E3 ld (FF00+E3),a ROM2:54F6 21 E5 FF ld hl,FFE5 ROM2:54F9 7E ld a,(hl) ROM2:54FA EE 20 xor 20 ROM2:54FC 77 ld (hl),a ROM2:54FD 21 E8 FF ld hl,FFE8 ROM2:5500 7E ld a,(hl) ROM2:5501 EE 01 xor 01 ROM2:5503 77 ld (hl),a ROM2:5504 AF xor a ROM2:5505 E0 EA ld (FF00+EA),a ROM2:5507 C9 ret ROM2:5508 CD E1 47 call 47E1 ROM2:550B FA 02 C4 ld a,(C402) ROM2:550E CB 57 bit 2,a ROM2:5510 C8 ret z ROM2:5511 18 DF jr 54F2 } ;;; $5513: (unit) ;;; { ROM2:5513 36 00 ld (hl),00 ; [hl] = 0 ROM2:5515 21 E8 FF ld hl,FFE8 ;\ ROM2:5518 7E ld a,(hl) ;| ROM2:5519 EE 01 xor 01 ;} $FFE8 ^= 1 ROM2:551B 77 ld (hl),a ;/ ROM2:551C 21 E5 FF ld hl,FFE5 ;\ ROM2:551F 7E ld a,(hl) ;| ROM2:5520 EE 20 xor 20 ;} $FFE5 ^= 20h ROM2:5522 77 ld (hl),a ;/ ROM2:5523 C9 ret } ;;; $5524: (unit) ;;; { ROM2:5524 F0 FE ld a,(FF00+FE) ;\ ROM2:5526 E6 07 and 07 ;} If [enemy frame counter] % 8 != 0: return ROM2:5528 C0 ret nz ;/ ROM2:5529 F0 E3 ld a,(FF00+E3) ;\ ROM2:552B FE 2C cp 2C ;} If [$FFE3] = 2Ch: ROM2:552D 20 04 jr nz,5533 ;/ ROM2:552F 3C inc a ;\ ROM2:5530 E0 E3 ld (FF00+E3),a ;} $FFE3 = 2Dh ROM2:5532 C9 ret ROM2:5533 F0 E3 ld a,(FF00+E3) ;\ ROM2:5535 FE 2D cp 2D ;} If [$FFE3] = 2Dh: ROM2:5537 20 04 jr nz,553D ;/ ROM2:5539 3D dec a ;\ ROM2:553A E0 E3 ld (FF00+E3),a ;} $FFE3 = 2Ch ROM2:553C C9 ret ROM2:553D 3E 2C ld a,2C ;\ ROM2:553F E0 E3 ld (FF00+E3),a ;} $FFE3 = 2Ch ROM2:5541 C9 ret } ;;; $5542: Enemy AI - enemy 34h (rock icicle) ;;; { ROM2:5542 F0 EA ld a,(FF00+EA) ROM2:5544 FE 00 cp 00 ROM2:5546 CA 63 55 jp z,5563 ROM2:5549 FE 01 cp 01 ROM2:554B CA 7F 55 jp z,557F ROM2:554E FE 02 cp 02 ROM2:5550 CA 93 55 jp z,5593 ROM2:5553 FE 03 cp 03 ROM2:5555 CA CD 55 jp z,55CD ROM2:5558 FE 04 cp 04 ROM2:555A CA BA 55 jp z,55BA ROM2:555D FE 05 cp 05 ROM2:555F CA DB 55 jp z,55DB ROM2:5562 C9 ret ROM2:5563 3E 34 ld a,34 ROM2:5565 E0 E3 ld (FF00+E3),a ROM2:5567 21 E9 FF ld hl,FFE9 ROM2:556A 34 inc (hl) ROM2:556B 7E ld a,(hl) ROM2:556C FE 0B cp 0B ROM2:556E D8 ret c ROM2:556F F0 EA ld a,(FF00+EA) ROM2:5571 3C inc a ROM2:5572 E0 EA ld (FF00+EA),a ROM2:5574 3E 35 ld a,35 ROM2:5576 E0 E3 ld (FF00+E3),a ROM2:5578 21 E9 FF ld hl,FFE9 ROM2:557B 7E ld a,(hl) ROM2:557C AF xor a ROM2:557D 77 ld (hl),a ROM2:557E C9 ret ROM2:557F 21 E9 FF ld hl,FFE9 ROM2:5582 34 inc (hl) ROM2:5583 7E ld a,(hl) ROM2:5584 FE 07 cp 07 ROM2:5586 D8 ret c ROM2:5587 F0 EA ld a,(FF00+EA) ROM2:5589 3C inc a ROM2:558A E0 EA ld (FF00+EA),a ROM2:558C 21 E9 FF ld hl,FFE9 ROM2:558F 7E ld a,(hl) ROM2:5590 AF xor a ROM2:5591 77 ld (hl),a ROM2:5592 C9 ret ROM2:5593 F0 FE ld a,(FF00+FE) ROM2:5595 E6 03 and 03 ROM2:5597 C0 ret nz ROM2:5598 CD 12 56 call 5612 ROM2:559B CD AC 55 call 55AC ROM2:559E FE 04 cp 04 ROM2:55A0 C0 ret nz ROM2:55A1 3E 36 ld a,36 ROM2:55A3 E0 E3 ld (FF00+E3),a ROM2:55A5 F0 EA ld a,(FF00+EA) ROM2:55A7 3C inc a ROM2:55A8 E0 EA ld (FF00+EA),a ROM2:55AA C9 ret } ;;; $55AB: ret ;;; { ROM2:55AB C9 ret } ;;; $55AC: (unit) ;;; { ROM2:55AC 21 E1 FF ld hl,FFE1 ;\ ROM2:55AF 7E ld a,(hl) ;| ROM2:55B0 3C inc a ;} Increment $FFE1 ROM2:55B1 77 ld (hl),a ;/ ROM2:55B2 F0 E7 ld a,(FF00+E7) ;\ ROM2:55B4 3C inc a ;} Increment $FFE7 ROM2:55B5 E0 E7 ld (FF00+E7),a ;/ ROM2:55B7 F0 E7 ld a,(FF00+E7) ROM2:55B9 C9 ret } ;;; $55BA: ;;; { ROM2:55BA CD 12 56 call 5612 ROM2:55BD 21 E9 FF ld hl,FFE9 ROM2:55C0 34 inc (hl) ROM2:55C1 7E ld a,(hl) ROM2:55C2 FE 10 cp 10 ROM2:55C4 C0 ret nz ROM2:55C5 AF xor a ROM2:55C6 77 ld (hl),a ROM2:55C7 F0 EA ld a,(FF00+EA) ROM2:55C9 3C inc a ROM2:55CA E0 EA ld (FF00+EA),a ROM2:55CC C9 ret } ;;; $55CD: ;;; { ROM2:55CD CD 12 56 call 5612 ROM2:55D0 F0 FE ld a,(FF00+FE) ROM2:55D2 E6 05 and 05 ROM2:55D4 C0 ret nz ROM2:55D5 F0 EA ld a,(FF00+EA) ROM2:55D7 3C inc a ROM2:55D8 E0 EA ld (FF00+EA),a ROM2:55DA C9 ret } ;;; $55DB: ;;; { ROM2:55DB CD 12 56 call 5612 ROM2:55DE 21 E1 FF ld hl,FFE1 ROM2:55E1 7E ld a,(hl) ROM2:55E2 C6 04 add a,04 ROM2:55E4 77 ld (hl),a ROM2:55E5 F0 E7 ld a,(FF00+E7) ROM2:55E7 C6 04 add a,04 ROM2:55E9 E0 E7 ld (FF00+E7),a ROM2:55EB CD BA 49 call 49BA ROM2:55EE FA 02 C4 ld a,(C402) ROM2:55F1 CB 4F bit 1,a ROM2:55F3 20 05 jr nz,55FA ROM2:55F5 F0 E1 ld a,(FF00+E1) ROM2:55F7 FE A0 cp A0 ROM2:55F9 D8 ret c ROM2:55FA 3E 11 ld a,11 ;\ ROM2:55FC EA D5 CE ld (CED5),a ;} Play sound effect 11h ROM2:55FF 21 E7 FF ld hl,FFE7 ROM2:5602 11 E1 FF ld de,FFE1 ROM2:5605 1A ld a,(de) ROM2:5606 96 sub (hl) ROM2:5607 12 ld (de),a ROM2:5608 AF xor a ROM2:5609 E0 E7 ld (FF00+E7),a ROM2:560B E0 EA ld (FF00+EA),a ROM2:560D 3E 34 ld a,34 ROM2:560F E0 E3 ld (FF00+E3),a ROM2:5611 C9 ret } ;;; $5612: (unit) ;;; { ROM2:5612 F0 FE ld a,(FF00+FE) ;\ ROM2:5614 E6 01 and 01 ;} If [frame counter] % 2 != 0: return ROM2:5616 C0 ret nz ;/ ROM2:5617 F0 E3 ld a,(FF00+E3) ;\ ROM2:5619 FE 36 cp 36 ;} If [$FFE3] = 36h: ROM2:561B 20 04 jr nz,5621 ;/ ROM2:561D 3C inc a ;\ ROM2:561E E0 E3 ld (FF00+E3),a ;} $FFE3 = 37h ROM2:5620 C9 ret ROM2:5621 F0 E3 ld a,(FF00+E3) ;\ ROM2:5623 FE 37 cp 37 ;} If [$FFE3] = 37h: ROM2:5625 20 04 jr nz,562B ;/ ROM2:5627 3D dec a ;\ ROM2:5628 E0 E3 ld (FF00+E3),a ;} $FFE2 = 36h ROM2:562A C9 ret ROM2:562B 3E 36 ld a,36 ;\ ROM2:562D E0 E3 ld (FF00+E3),a ;} $FFE3 = 36h ROM2:562F C9 ret } ;;; $5630: ;;; { ROM2:5630 F0 ED ld a,(FF00+ED) ROM2:5632 A7 and a ROM2:5633 20 5D jr nz,5692 ROM2:5635 F0 EE ld a,(FF00+EE) ROM2:5637 A7 and a ROM2:5638 C2 BF 56 jp nz,56BF ROM2:563B F0 EB ld a,(FF00+EB) ROM2:563D A7 and a ROM2:563E 20 12 jr nz,5652 ROM2:5640 FA 1C C4 ld a,(C41C) ROM2:5643 FE 80 cp 80 ROM2:5645 CA 32 57 jp z,5732 } ;;; $5648: Jump to [$FFF1] ;;; { ROM2:5648 01 F2 FF ld bc,FFF2 ROM2:564B 0A ld a,(bc) ROM2:564C 67 ld h,a ROM2:564D 0D dec c ROM2:564E 0A ld a,(bc) ROM2:564F 6F ld l,a ROM2:5650 E9 jp hl } ;;; $5651: ret ;;; { ROM2:5651 C9 ret } ;;; $5652: ;;; { ROM2:5652 F0 E3 ld a,(FF00+E3) ROM2:5654 FE A0 cp A0 ROM2:5656 28 F0 jr z,5648 ROM2:5658 D6 CE sub CE ROM2:565A 28 EC jr z,5648 ROM2:565C 3D dec a ROM2:565D 28 E9 jr z,5648 } ;;; $565F: ;;; { ROM2:565F F0 FE ld a,(FF00+FE) ROM2:5661 E6 01 and 01 ROM2:5663 C0 ret nz ROM2:5664 21 EB FF ld hl,FFEB ROM2:5667 7E ld a,(hl) ROM2:5668 FE C4 cp C4 ROM2:566A 34 inc (hl) ROM2:566B 34 inc (hl) ROM2:566C D8 ret c ROM2:566D FE D0 cp D0 ROM2:566F 30 08 jr nc,5679 ROM2:5671 21 E0 FF ld hl,FFE0 ROM2:5674 7E ld a,(hl) ROM2:5675 EE 80 xor 80 ROM2:5677 77 ld (hl),a ROM2:5678 C9 ret ROM2:5679 AF xor a ROM2:567A 22 ldi (hl),a ROM2:567B 7E ld a,(hl) ROM2:567C A7 and a ROM2:567D 28 06 jr z,5685 ROM2:567F AF xor a ROM2:5680 E0 E6 ld (FF00+E6),a ROM2:5682 E0 E0 ld (FF00+E0),a ROM2:5684 C9 ret ROM2:5685 3E 02 ld a,02 ;\ ROM2:5687 EA D5 CE ld (CED5),a ;} Play enemy killed sound effect ROM2:568A CD A6 3C call 3CA6 ROM2:568D 3E 02 ld a,02 ROM2:568F E0 EF ld (FF00+EF),a ROM2:5691 C9 ret } ;;; $5692: ;;; { ROM2:5692 21 E9 FF ld hl,FFE9 ROM2:5695 7E ld a,(hl) ROM2:5696 34 inc (hl) ROM2:5697 FE B0 cp B0 ROM2:5699 28 18 jr z,56B3 ROM2:569B FE 80 cp 80 ROM2:569D 30 07 jr nc,56A6 ROM2:569F F0 FE ld a,(FF00+FE) ROM2:56A1 E6 03 and 03 ROM2:56A3 C0 ret nz ROM2:56A4 18 05 jr 56AB ROM2:56A6 F0 FE ld a,(FF00+FE) ROM2:56A8 E6 01 and 01 ROM2:56AA C0 ret nz ROM2:56AB 21 E3 FF ld hl,FFE3 ROM2:56AE 7E ld a,(hl) ROM2:56AF EE 01 xor 01 ROM2:56B1 77 ld (hl),a ROM2:56B2 C9 ret ROM2:56B3 AF xor a ROM2:56B4 77 ld (hl),a ROM2:56B5 E0 ED ld (FF00+ED),a ROM2:56B7 CD A6 3C call 3CA6 ROM2:56BA 3E 02 ld a,02 ROM2:56BC E0 EF ld (FF00+EF),a ROM2:56BE C9 ret } ;;; $56BF: ;;; { ROM2:56BF CB 6F bit 5,a ROM2:56C1 20 09 jr nz,56CC ROM2:56C3 06 03 ld b,03 ROM2:56C5 FE 11 cp 11 ROM2:56C7 28 11 jr z,56DA ROM2:56C9 04 inc b ROM2:56CA 18 0E jr 56DA ROM2:56CC 21 E9 FF ld hl,FFE9 ROM2:56CF 7E ld a,(hl) ROM2:56D0 34 inc (hl) ROM2:56D1 FE 06 cp 06 ROM2:56D3 28 12 jr z,56E7 ROM2:56D5 C6 E2 add a,E2 ROM2:56D7 E0 E3 ld (FF00+E3),a ROM2:56D9 C9 ret ROM2:56DA 21 E9 FF ld hl,FFE9 ROM2:56DD 7E ld a,(hl) ROM2:56DE 34 inc (hl) ROM2:56DF B8 cp b ROM2:56E0 28 05 jr z,56E7 ROM2:56E2 C6 E8 add a,E8 ROM2:56E4 E0 E3 ld (FF00+E3),a ROM2:56E6 C9 ret ROM2:56E7 F0 F5 ld a,(FF00+F5) ROM2:56E9 FE FD cp FD ROM2:56EB 28 3A jr z,5727 ROM2:56ED FA 04 FF ld a,(FF04) ;div ROM2:56F0 E6 01 and 01 ROM2:56F2 20 2B jr nz,571F ROM2:56F4 F0 EE ld a,(FF00+EE) ROM2:56F6 E6 0F and 0F ROM2:56F8 28 25 jr z,571F ROM2:56FA 3D dec a ROM2:56FB 28 08 jr z,5705 ROM2:56FD 3D dec a ROM2:56FE 28 0A jr z,570A ROM2:5700 01 EE 04 ld bc,04EE ROM2:5703 18 0A jr 570F ROM2:5705 01 E0 01 ld bc,01E0 ROM2:5708 18 05 jr 570F ROM2:570A 01 EC 02 ld bc,02EC ROM2:570D 18 00 jr 570F ROM2:570F 78 ld a,b ROM2:5710 E0 ED ld (FF00+ED),a ROM2:5712 79 ld a,c ROM2:5713 E0 E3 ld (FF00+E3),a ROM2:5715 AF xor a ROM2:5716 E0 E6 ld (FF00+E6),a ROM2:5718 E0 EB ld (FF00+EB),a ROM2:571A E0 E9 ld (FF00+E9),a ROM2:571C E0 EE ld (FF00+EE),a ROM2:571E C9 ret ROM2:571F CD A6 3C call 3CA6 ROM2:5722 3E 02 ld a,02 ROM2:5724 E0 EF ld (FF00+EF),a ROM2:5726 C9 ret ROM2:5727 AF xor a ROM2:5728 E0 E6 ld (FF00+E6),a ROM2:572A E0 EB ld (FF00+EB),a ROM2:572C E0 EE ld (FF00+EE),a ROM2:572E 3C inc a ROM2:572F E0 E9 ld (FF00+E9),a ROM2:5731 C9 ret } ;;; $5732: ;;; { ROM2:5732 F0 EF ld a,(FF00+EF) ROM2:5734 FE 06 cp 06 ROM2:5736 28 73 jr z,57AB ROM2:5738 F0 E3 ld a,(FF00+E3) ROM2:573A FE E2 cp E2 ROM2:573C DA 48 56 jp c,5648 ROM2:573F FE E8 cp E8 ROM2:5741 D2 48 56 jp nc,5648 ROM2:5744 21 63 C4 ld hl,C463 ROM2:5747 7E ld a,(hl) ROM2:5748 A7 and a ROM2:5749 20 05 jr nz,5750 ROM2:574B 36 01 ld (hl),01 ROM2:574D CD B3 57 call 57B3 ROM2:5750 21 E9 FF ld hl,FFE9 ROM2:5753 7E ld a,(hl) ROM2:5754 FE 06 cp 06 ROM2:5756 28 06 jr z,575E ROM2:5758 C6 E2 add a,E2 ROM2:575A E0 E3 ld (FF00+E3),a ROM2:575C 34 inc (hl) ROM2:575D C9 ret ROM2:575E 36 00 ld (hl),00 ROM2:5760 21 EA FF ld hl,FFEA ROM2:5763 34 inc (hl) ROM2:5764 7E ld a,(hl) ROM2:5765 3D dec a ROM2:5766 28 1D jr z,5785 ROM2:5768 3D dec a ROM2:5769 28 25 jr z,5790 ROM2:576B 3D dec a ROM2:576C 28 34 jr z,57A2 ROM2:576E 3E FF ld a,FF ROM2:5770 21 66 C4 ld hl,C466 ROM2:5773 22 ldi (hl),a ROM2:5774 22 ldi (hl),a ROM2:5775 77 ld (hl),a ROM2:5776 CD A6 3C call 3CA6 ROM2:5779 3E 02 ld a,02 ROM2:577B E0 EF ld (FF00+EF),a ROM2:577D AF xor a ROM2:577E EA 1C C4 ld (C41C),a ROM2:5781 EA 63 C4 ld (C463),a ROM2:5784 C9 ret ROM2:5785 21 E2 FF ld hl,FFE2 ROM2:5788 7E ld a,(hl) ROM2:5789 D6 10 sub 10 ROM2:578B 77 ld (hl),a ROM2:578C CD B3 57 call 57B3 ROM2:578F C9 ret ROM2:5790 21 E1 FF ld hl,FFE1 ROM2:5793 7E ld a,(hl) ROM2:5794 D6 10 sub 10 ROM2:5796 77 ld (hl),a ROM2:5797 21 E2 FF ld hl,FFE2 ROM2:579A 7E ld a,(hl) ROM2:579B C6 10 add a,10 ROM2:579D 77 ld (hl),a ROM2:579E CD B3 57 call 57B3 ROM2:57A1 C9 ret ROM2:57A2 21 E1 FF ld hl,FFE1 ROM2:57A5 7E ld a,(hl) ROM2:57A6 C6 10 add a,10 ROM2:57A8 77 ld (hl),a ROM2:57A9 18 EC jr 5797 ROM2:57AB CD A6 3C call 3CA6 ROM2:57AE 3E FF ld a,FF ROM2:57B0 E0 EF ld (FF00+EF),a ROM2:57B2 C9 ret } ;;; $57B3: ;;; { ROM2:57B3 21 E1 FF ld hl,FFE1 ROM2:57B6 7E ld a,(hl) ROM2:57B7 FE F0 cp F0 ROM2:57B9 30 1C jr nc,57D7 ROM2:57BB FE A0 cp A0 ROM2:57BD 30 14 jr nc,57D3 ROM2:57BF FE 0A cp 0A ROM2:57C1 38 14 jr c,57D7 ROM2:57C3 2C inc l ROM2:57C4 7E ld a,(hl) ROM2:57C5 FE F0 cp F0 ROM2:57C7 30 07 jr nc,57D0 ROM2:57C9 FE A0 cp A0 ROM2:57CB 30 0E jr nc,57DB ROM2:57CD FE 0A cp 0A ROM2:57CF D0 ret nc ROM2:57D0 36 18 ld (hl),18 ROM2:57D2 C9 ret ROM2:57D3 36 98 ld (hl),98 ROM2:57D5 18 EC jr 57C3 ROM2:57D7 36 18 ld (hl),18 ROM2:57D9 18 E8 jr 57C3 ROM2:57DB 36 98 ld (hl),98 ROM2:57DD C9 ret } ;;; $57DE: Enemy AI - enemy 0/20h/30h (tsumari / needler / moheek, facing right) ;;; { ROM2:57DE 18 58 jr 5838 } ;;; $57E0: ;;; { ROM2:57E0 3E FF ld a,FF ROM2:57E2 E0 E9 ld (FF00+E9),a ROM2:57E4 18 0F jr 57F5 } ;;; $57E6: ;;; { ROM2:57E6 CD 7E 58 call 587E ROM2:57E9 F0 FE ld a,(FF00+FE) ROM2:57EB E6 01 and 01 ROM2:57ED C0 ret nz ROM2:57EE 21 E3 FF ld hl,FFE3 ROM2:57F1 CD 3F 6B call 6B3F ROM2:57F4 C9 ret } ;;; $57F5: ;;; { ROM2:57F5 F0 E8 ld a,(FF00+E8) ROM2:57F7 A7 and a ROM2:57F8 28 14 jr z,580E ROM2:57FA 3D dec a ROM2:57FB 28 1F jr z,581C ROM2:57FD 3D dec a ROM2:57FE 28 2A jr z,582A ROM2:5800 CD 51 4D call 4D51 ROM2:5803 FA 02 C4 ld a,(C402) ROM2:5806 CB 5F bit 3,a ROM2:5808 28 DC jr z,57E6 ROM2:580A CD B8 58 call 58B8 ROM2:580D C9 ret ROM2:580E CD 83 47 call 4783 ROM2:5811 FA 02 C4 ld a,(C402) ROM2:5814 CB 47 bit 0,a ROM2:5816 28 CE jr z,57E6 ROM2:5818 CD CC 58 call 58CC ROM2:581B C9 ret ROM2:581C CD 64 4B call 4B64 ROM2:581F FA 02 C4 ld a,(C402) ROM2:5822 CB 4F bit 1,a ROM2:5824 28 C0 jr z,57E6 ROM2:5826 CD 95 58 call 5895 ROM2:5829 C9 ret ROM2:582A CD 5C 49 call 495C ROM2:582D FA 02 C4 ld a,(C402) ROM2:5830 CB 57 bit 2,a ROM2:5832 28 B2 jr z,57E6 ROM2:5834 CD A7 58 call 58A7 ROM2:5837 C9 ret } ;;; $5838: Tsumari / needler / moheek AI, facing right ;;; { ROM2:5838 F0 E8 ld a,(FF00+E8) ROM2:583A A7 and a ROM2:583B 28 14 jr z,5851 ROM2:583D 3D dec a ROM2:583E 28 20 jr z,5860 ROM2:5840 3D dec a ROM2:5841 28 2C jr z,586F ROM2:5843 CD 83 47 call 4783 ROM2:5846 FA 02 C4 ld a,(C402) ROM2:5849 CB 47 bit 0,a ROM2:584B 20 93 jr nz,57E0 ROM2:584D CD 95 58 call 5895 ROM2:5850 C9 ret ROM2:5851 CD 64 4B call 4B64 ROM2:5854 FA 02 C4 ld a,(C402) ROM2:5857 CB 4F bit 1,a ROM2:5859 C2 E0 57 jp nz,57E0 ROM2:585C CD A7 58 call 58A7 ROM2:585F C9 ret ROM2:5860 CD 5C 49 call 495C ROM2:5863 FA 02 C4 ld a,(C402) ROM2:5866 CB 57 bit 2,a ROM2:5868 C2 E0 57 jp nz,57E0 ROM2:586B CD B8 58 call 58B8 ROM2:586E C9 ret ROM2:586F CD 51 4D call 4D51 ROM2:5872 FA 02 C4 ld a,(C402) ROM2:5875 CB 5F bit 3,a ROM2:5877 C2 E0 57 jp nz,57E0 ROM2:587A CD CC 58 call 58CC ROM2:587D C9 ret } ;;; $587E: (unit) ;;; { ROM2:587E 21 E1 FF ld hl,FFE1 ; hl = $FFE1 ROM2:5881 F0 E8 ld a,(FF00+E8) ;\ ROM2:5883 E6 0F and 0F ;| ROM2:5885 FE 01 cp 01 ;} If [$FFE8] & Fh = 1: go to BRANCH_INCREMENT ROM2:5887 28 0A jr z,5893 ;/ ROM2:5889 FE 03 cp 03 ;\ ROM2:588B 28 04 jr z,5891 ;} If [$FFE8] & Fh = 3: go to BRANCH_DECREMENT ROM2:588D 2C inc l ; hl = $FFE2 ROM2:588E A7 and a ;\ ROM2:588F 28 02 jr z,5893 ;} If [$FFE8] & Fh = 0: go to BRANCH_INCREMENT ; BRANCH_DECREMENT ROM2:5891 35 dec (hl) ; Decrement [hl] ROM2:5892 C9 ret ; BRANCH_INCREMENT ROM2:5893 34 inc (hl) ; Increment [hl] ROM2:5894 C9 ret } ;;; $5895: ;;; { ROM2:5895 F0 E8 ld a,(FF00+E8) ;\ ROM2:5897 E6 F0 and F0 ;} $FFE8 &= F0h ROM2:5899 E0 E8 ld (FF00+E8),a ;/ ROM2:589B 21 E3 FF ld hl,FFE3 ;\ ROM2:589E 7E ld a,(hl) ;| ROM2:589F E6 F0 and F0 ;} $FFE3 &= F0h } ;;; $58A1: (unit) ;;; { ROM2:58A1 22 ldi (hl),a ; [hl] = [a] ROM2:58A2 2C inc l ;\ ROM2:58A3 3E 20 ld a,20 ;} [hl] + 1 = 20h ROM2:58A5 77 ld (hl),a ;/ ROM2:58A6 C9 ret } ;;; $58A7: ;;; { ROM2:58A7 F0 E8 ld a,(FF00+E8) ;\ ROM2:58A9 E6 F0 and F0 ;| ROM2:58AB 3C inc a ;} $FFE8 = [$FFE8] & F0h | 1 ROM2:58AC E0 E8 ld (FF00+E8),a ;/ ROM2:58AE 21 E3 FF ld hl,FFE3 ; hl = $FFE3 ROM2:58B1 7E ld a,(hl) ;\ ROM2:58B2 E6 F0 and F0 ;} a = [$FFE3] & F0h | 2 ROM2:58B4 C6 02 add a,02 ;/ ROM2:58B6 18 E9 jr 58A1 ; Go to $58A1 } ;;; $58B8: ;;; { ROM2:58B8 F0 E8 ld a,(FF00+E8) ;\ ROM2:58BA E6 F0 and F0 ;| ROM2:58BC C6 02 add a,02 ;} $FFE8 = [$FFE8] & F0h | 2 ROM2:58BE E0 E8 ld (FF00+E8),a ;/ ROM2:58C0 21 E3 FF ld hl,FFE3 ; hl = $FFE3 ROM2:58C3 7E ld a,(hl) ;\ ROM2:58C4 E6 F0 and F0 ;} a = [$FFE3] & F0h } ;;; $58C6: (unit) ;;; { ROM2:58C6 22 ldi (hl),a ; [hl] = [a] ROM2:58C7 2C inc l ;\ ROM2:58C8 3E 40 ld a,40 ;} [hl] + 1 = 40h ROM2:58CA 77 ld (hl),a ;/ ROM2:58CB C9 ret } ;;; $58CC: ;;; { ROM2:58CC F0 E8 ld a,(FF00+E8) ROM2:58CE E6 F0 and F0 ROM2:58D0 C6 03 add a,03 ROM2:58D2 E0 E8 ld (FF00+E8),a ROM2:58D4 21 E3 FF ld hl,FFE3 ROM2:58D7 7E ld a,(hl) ROM2:58D8 E6 F0 and F0 ROM2:58DA C6 02 add a,02 ROM2:58DC 18 E8 jr 58C6 } ;;; $58DE: Enemy AI - enemy 1/21h/31h (tsumari / needler / moheek, facing left) ;;; { ROM2:58DE 18 6B jr 594B } ;;; $58E0: ;;; { ROM2:58E0 3E FF ld a,FF ROM2:58E2 E0 E9 ld (FF00+E9),a ROM2:58E4 18 0C jr 58F2 } ;;; $58E6: ;;; { ROM2:58E6 CD 7E 58 call 587E ROM2:58E9 F0 FE ld a,(FF00+FE) ROM2:58EB E6 01 and 01 ROM2:58ED C0 ret nz ROM2:58EE CD 3F 6B call 6B3F ROM2:58F1 C9 ret } ;;; $58F2: ;;; { ROM2:58F2 F0 E8 ld a,(FF00+E8) ROM2:58F4 A7 and a ROM2:58F5 28 1B jr z,5912 ROM2:58F7 3D dec a ROM2:58F8 CA 25 59 jp z,5925 ROM2:58FB 3D dec a ROM2:58FC CA 38 59 jp z,5938 ROM2:58FF CD 7F 4D call 4D7F ROM2:5902 FA 02 C4 ld a,(C402) ROM2:5905 CB 5F bit 3,a ROM2:5907 28 DD jr z,58E6 ROM2:5909 CD 95 58 call 5895 ROM2:590C 21 E5 FF ld hl,FFE5 ROM2:590F CB F6 set 6,(hl) ROM2:5911 C9 ret ROM2:5912 CD B4 47 call 47B4 ROM2:5915 FA 02 C4 ld a,(C402) ROM2:5918 CB 47 bit 0,a ROM2:591A 28 CA jr z,58E6 ROM2:591C CD A7 58 call 58A7 ROM2:591F 21 E5 FF ld hl,FFE5 ROM2:5922 CB AE res 5,(hl) ROM2:5924 C9 ret ROM2:5925 CD 91 4B call 4B91 ROM2:5928 FA 02 C4 ld a,(C402) ROM2:592B CB 4F bit 1,a ROM2:592D 28 B7 jr z,58E6 ROM2:592F CD B8 58 call 58B8 ROM2:5932 21 E5 FF ld hl,FFE5 ROM2:5935 CB B6 res 6,(hl) ROM2:5937 C9 ret ROM2:5938 CD 8D 49 call 498D ROM2:593B FA 02 C4 ld a,(C402) ROM2:593E CB 57 bit 2,a ROM2:5940 28 A4 jr z,58E6 ROM2:5942 CD CC 58 call 58CC ROM2:5945 21 E5 FF ld hl,FFE5 ROM2:5948 CB EE set 5,(hl) ROM2:594A C9 ret } ;;; $594B: Tsumari / needler / moheek AI, facing left ;;; { ROM2:594B F0 E8 ld a,(FF00+E8) ROM2:594D A7 and a ROM2:594E 28 1A jr z,596A ROM2:5950 3D dec a ROM2:5951 28 2B jr z,597E ROM2:5953 3D dec a ROM2:5954 28 3C jr z,5992 ROM2:5956 CD 8D 49 call 498D ROM2:5959 FA 02 C4 ld a,(C402) ROM2:595C CB 57 bit 2,a ROM2:595E C2 E0 58 jp nz,58E0 ROM2:5961 CD B8 58 call 58B8 ROM2:5964 21 E5 FF ld hl,FFE5 ROM2:5967 CB B6 res 6,(hl) ROM2:5969 C9 ret ROM2:596A CD 7F 4D call 4D7F ROM2:596D FA 02 C4 ld a,(C402) ROM2:5970 CB 5F bit 3,a ROM2:5972 C2 E0 58 jp nz,58E0 ROM2:5975 CD CC 58 call 58CC ROM2:5978 21 E5 FF ld hl,FFE5 ROM2:597B CB EE set 5,(hl) ROM2:597D C9 ret ROM2:597E CD B4 47 call 47B4 ROM2:5981 FA 02 C4 ld a,(C402) ROM2:5984 CB 47 bit 0,a ROM2:5986 C2 E0 58 jp nz,58E0 ROM2:5989 CD 95 58 call 5895 ROM2:598C 21 E5 FF ld hl,FFE5 ROM2:598F CB F6 set 6,(hl) ROM2:5991 C9 ret ROM2:5992 CD 91 4B call 4B91 ROM2:5995 FA 02 C4 ld a,(C402) ROM2:5998 CB 4F bit 1,a ROM2:599A C2 E0 58 jp nz,58E0 ROM2:599D CD A7 58 call 58A7 ROM2:59A0 21 E5 FF ld hl,FFE5 ROM2:59A3 CB AE res 5,(hl) ROM2:59A5 C9 ret } ;;; $59A6: ;;; { ROM2:59A6 21 E9 FF ld hl,FFE9 ROM2:59A9 35 dec (hl) ROM2:59AA 28 13 jr z,59BF ROM2:59AC 21 E2 FF ld hl,FFE2 ROM2:59AF 06 02 ld b,02 ROM2:59B1 F0 E5 ld a,(FF00+E5) ROM2:59B3 CB 6F bit 5,a ROM2:59B5 20 04 jr nz,59BB ROM2:59B7 7E ld a,(hl) ROM2:59B8 90 sub b ROM2:59B9 77 ld (hl),a ROM2:59BA C9 ret ROM2:59BB 7E ld a,(hl) ROM2:59BC 80 add a,b ROM2:59BD 77 ld (hl),a ROM2:59BE C9 ret ROM2:59BF CD A6 3C call 3CA6 ROM2:59C2 3E FF ld a,FF ROM2:59C4 E0 EF ld (FF00+EF),a ROM2:59C6 C9 ret } ;;; $59C7: Enemy AI - enemy 4 (skreek) ;;; { ROM2:59C7 F0 EF ld a,(FF00+EF) ROM2:59C9 E6 0F and 0F ROM2:59CB 28 D9 jr z,59A6 ROM2:59CD CD A8 5A call 5AA8 ROM2:59D0 F0 E9 ld a,(FF00+E9) ROM2:59D2 3D dec a ROM2:59D3 28 53 jr z,5A28 ROM2:59D5 3D dec a ROM2:59D6 28 29 jr z,5A01 ROM2:59D8 3D dec a ROM2:59D9 28 34 jr z,5A0F ROM2:59DB 21 EA FF ld hl,FFEA ROM2:59DE 34 inc (hl) ROM2:59DF 7E ld a,(hl) ROM2:59E0 FE 10 cp 10 ROM2:59E2 C0 ret nz ROM2:59E3 36 00 ld (hl),00 ROM2:59E5 0E 00 ld c,00 ROM2:59E7 FA 3C D0 ld a,(D03C) ROM2:59EA 47 ld b,a ROM2:59EB 21 E2 FF ld hl,FFE2 ROM2:59EE 7E ld a,(hl) ROM2:59EF 90 sub b ROM2:59F0 30 04 jr nc,59F6 ROM2:59F2 2F cpl ROM2:59F3 3C inc a ROM2:59F4 0E 20 ld c,20 ROM2:59F6 FE 30 cp 30 ROM2:59F8 D0 ret nc ROM2:59F9 79 ld a,c ROM2:59FA E0 E5 ld (FF00+E5),a ROM2:59FC 3E 01 ld a,01 ROM2:59FE E0 E9 ld (FF00+E9),a ROM2:5A00 C9 ret ROM2:5A01 F0 EF ld a,(FF00+EF) ROM2:5A03 FE 03 cp 03 ROM2:5A05 C8 ret z ROM2:5A06 3E 04 ld a,04 ROM2:5A08 E0 E3 ld (FF00+E3),a ROM2:5A0A 3E 03 ld a,03 ROM2:5A0C E0 E9 ld (FF00+E9),a ROM2:5A0E C9 ret ROM2:5A0F 21 EA FF ld hl,FFEA ROM2:5A12 35 dec (hl) ROM2:5A13 28 0F jr z,5A24 ROM2:5A15 5E ld e,(hl) ROM2:5A16 16 00 ld d,00 ROM2:5A18 21 7D 5A ld hl,5A7D ROM2:5A1B 19 add hl,de ROM2:5A1C 46 ld b,(hl) ROM2:5A1D 21 E1 FF ld hl,FFE1 ROM2:5A20 7E ld a,(hl) ROM2:5A21 80 add a,b ROM2:5A22 77 ld (hl),a ROM2:5A23 C9 ret ROM2:5A24 AF xor a ROM2:5A25 E0 E9 ld (FF00+E9),a ROM2:5A27 C9 ret ROM2:5A28 21 EA FF ld hl,FFEA ROM2:5A2B 7E ld a,(hl) ROM2:5A2C FE 21 cp 21 ROM2:5A2E 28 10 jr z,5A40 ROM2:5A30 5F ld e,a ROM2:5A31 16 00 ld d,00 ROM2:5A33 34 inc (hl) ROM2:5A34 21 7D 5A ld hl,5A7D ROM2:5A37 19 add hl,de ROM2:5A38 46 ld b,(hl) ROM2:5A39 21 E1 FF ld hl,FFE1 ROM2:5A3C 7E ld a,(hl) ROM2:5A3D 90 sub b ROM2:5A3E 77 ld (hl),a ROM2:5A3F C9 ret ROM2:5A40 3E 02 ld a,02 ROM2:5A42 E0 E9 ld (FF00+E9),a ROM2:5A44 CD F6 3D call 3DF6 ROM2:5A47 AF xor a ROM2:5A48 22 ldi (hl),a ROM2:5A49 F0 E1 ld a,(FF00+E1) ROM2:5A4B 22 ldi (hl),a ROM2:5A4C F0 E5 ld a,(FF00+E5) ROM2:5A4E 47 ld b,a ROM2:5A4F CB 6F bit 5,a ROM2:5A51 20 06 jr nz,5A59 ROM2:5A53 F0 E2 ld a,(FF00+E2) ROM2:5A55 D6 04 sub 04 ROM2:5A57 18 04 jr 5A5D ROM2:5A59 F0 E2 ld a,(FF00+E2) ROM2:5A5B C6 04 add a,04 ROM2:5A5D 22 ldi (hl),a ROM2:5A5E 3E 08 ld a,08 ROM2:5A60 22 ldi (hl),a ROM2:5A61 3E 80 ld a,80 ROM2:5A63 22 ldi (hl),a ROM2:5A64 78 ld a,b ROM2:5A65 22 ldi (hl),a ROM2:5A66 11 9E 5A ld de,5A9E ROM2:5A69 CD 21 6B call 6B21 ROM2:5A6C CD 31 72 call 7231 ROM2:5A6F 3E 03 ld a,03 ROM2:5A71 E0 EF ld (FF00+EF),a ROM2:5A73 3E 07 ld a,07 ROM2:5A75 E0 E3 ld (FF00+E3),a ROM2:5A77 3E 12 ld a,12 ;\ ROM2:5A79 EA D5 CE ld (CED5),a ;} Play sound effect 12h ROM2:5A7C C9 ret } ROM2:5A7D db 00,05,05,05,04,05,03,03,02,03,03,03,02,03,03,02, 02,03,02,02,00,01,01,01,00,01,01,00,00,01,00,00, 00 ROM2:5A9E db 00,00,00,10,00,00,FF,07,C7,59 ;;; $5AA8: (unit) ;;; { ROM2:5AA8 F0 EF ld a,(FF00+EF) ;\ ROM2:5AAA FE 03 cp 03 ;} If [$FFEF] = 3: return ROM2:5AAC C8 ret z ;/ ROM2:5AAD F0 FE ld a,(FF00+FE) ;\ ROM2:5AAF E6 03 and 03 ;} If [enemy frame counter] % 4 != 0: return ROM2:5AB1 C0 ret nz ;/ ROM2:5AB2 21 E3 FF ld hl,FFE3 ;\ ROM2:5AB5 7E ld a,(hl) ;| ROM2:5AB6 FE 06 cp 06 ;} If [$FFE3] != 6: ROM2:5AB8 28 02 jr z,5ABC ;/ ROM2:5ABA 34 inc (hl) ; Increment $FFE3 ROM2:5ABB C9 ret ROM2:5ABC 36 04 ld (hl),04 ; $FFE3 = 4 ROM2:5ABE C9 ret } ;;; $5ABF: Enemy AI - enemy 12h (yumbo) ;;; { ROM2:5ABF CD 3F 6B call 6B3F ROM2:5AC2 CD C6 5A call 5AC6 ROM2:5AC5 C9 ret } ;;; $5AC6: ;;; { ROM2:5AC6 21 E9 FF ld hl,FFE9 ROM2:5AC9 34 inc (hl) ROM2:5ACA 7E ld a,(hl) ROM2:5ACB FE 40 cp 40 ROM2:5ACD 28 0D jr z,5ADC ROM2:5ACF 21 E2 FF ld hl,FFE2 ROM2:5AD2 F0 E5 ld a,(FF00+E5) ROM2:5AD4 CB 6F bit 5,a ROM2:5AD6 20 02 jr nz,5ADA ROM2:5AD8 35 dec (hl) ROM2:5AD9 C9 ret ROM2:5ADA 34 inc (hl) ROM2:5ADB C9 ret ROM2:5ADC 36 00 ld (hl),00 ROM2:5ADE CD 67 6B call 6B67 ROM2:5AE1 C9 ret } ;;; $5AE2: Enemy AI - enemy 9 (drivel) ;;; { ROM2:5AE2 CD B5 5B call 5BB5 ROM2:5AE5 F0 EA ld a,(FF00+EA) ROM2:5AE7 A7 and a ROM2:5AE8 20 51 jr nz,5B3B ROM2:5AEA FA 04 FF ld a,(FF04) ;div ROM2:5AED E6 0F and 0F ROM2:5AEF 28 46 jr z,5B37 ROM2:5AF1 11 E1 FF ld de,FFE1 ROM2:5AF4 21 79 5B ld hl,5B79 ROM2:5AF7 F0 E9 ld a,(FF00+E9) ROM2:5AF9 4F ld c,a ROM2:5AFA 06 00 ld b,00 ROM2:5AFC 09 add hl,bc ROM2:5AFD 7E ld a,(hl) ROM2:5AFE FE 80 cp 80 ROM2:5B00 28 23 jr z,5B25 ROM2:5B02 CB 7E bit 7,(hl) ROM2:5B04 20 04 jr nz,5B0A ROM2:5B06 1A ld a,(de) ROM2:5B07 86 add a,(hl) ROM2:5B08 18 08 jr 5B12 ROM2:5B0A 7E ld a,(hl) ROM2:5B0B 2F cpl ROM2:5B0C 3C inc a ROM2:5B0D 47 ld b,a ROM2:5B0E 1A ld a,(de) ROM2:5B0F 90 sub b ROM2:5B10 06 00 ld b,00 ROM2:5B12 12 ld (de),a ROM2:5B13 1C inc e ROM2:5B14 21 97 5B ld hl,5B97 ROM2:5B17 09 add hl,bc ROM2:5B18 F0 E8 ld a,(FF00+E8) ROM2:5B1A A7 and a ROM2:5B1B 20 12 jr nz,5B2F ROM2:5B1D 1A ld a,(de) ROM2:5B1E 86 add a,(hl) ROM2:5B1F 12 ld (de),a ROM2:5B20 21 E9 FF ld hl,FFE9 ROM2:5B23 34 inc (hl) ROM2:5B24 C9 ret ROM2:5B25 F0 E8 ld a,(FF00+E8) ROM2:5B27 EE 02 xor 02 ROM2:5B29 E0 E8 ld (FF00+E8),a ROM2:5B2B AF xor a ROM2:5B2C E0 E9 ld (FF00+E9),a ROM2:5B2E C9 ret ROM2:5B2F 1A ld a,(de) ROM2:5B30 96 sub (hl) ROM2:5B31 12 ld (de),a ROM2:5B32 21 E9 FF ld hl,FFE9 ROM2:5B35 34 inc (hl) ROM2:5B36 C9 ret ROM2:5B37 3E 01 ld a,01 ROM2:5B39 E0 EA ld (FF00+EA),a ROM2:5B3B FA 3C D0 ld a,(D03C) ROM2:5B3E 47 ld b,a ROM2:5B3F 21 E2 FF ld hl,FFE2 ROM2:5B42 7E ld a,(hl) ROM2:5B43 90 sub b ROM2:5B44 30 02 jr nc,5B48 ROM2:5B46 2F cpl ROM2:5B47 3C inc a ROM2:5B48 FE 30 cp 30 ROM2:5B4A 30 A5 jr nc,5AF1 ROM2:5B4C 21 EA FF ld hl,FFEA ROM2:5B4F 36 00 ld (hl),00 ROM2:5B51 CD F6 3D call 3DF6 ROM2:5B54 AF xor a ROM2:5B55 22 ldi (hl),a ROM2:5B56 F0 E1 ld a,(FF00+E1) ROM2:5B58 C6 08 add a,08 ROM2:5B5A 22 ldi (hl),a ROM2:5B5B F0 E2 ld a,(FF00+E2) ROM2:5B5D 22 ldi (hl),a ROM2:5B5E 11 6C 5B ld de,5B6C ROM2:5B61 CD 21 6B call 6B21 ROM2:5B64 CD 35 72 call 7235 ROM2:5B67 3E 03 ld a,03 ROM2:5B69 E0 EF ld (FF00+EF),a ROM2:5B6B C9 ret } ROM2:5B6C db 0C,80,00,00,00,00,00,00,00,01,00,D4,5B ROM2:5B79 db 01,01,01,02,03,03,03,03,03,02,02,02,02,01,01,00, 00,FF,FE,FD,FC,FA,FD,FE,FE,FE,FE,FE,FF,80, ROM2:5B97 db 00,01,00,01,01,02,01,02,02,03,02,03,04,03,03,02, 04,02,05,04,05,04,01,02,01,01,00,01,00,80 ;;; $5BB5: (unit) ;;; { ROM2:5BB5 F0 EF ld a,(FF00+EF) ;\ ROM2:5BB7 21 E3 FF ld hl,FFE3 ;| ROM2:5BBA FE 03 cp 03 ;} If [$FFEF] = 3: go to BRANCH_POP ROM2:5BBC 28 09 jr z,5BC7 ;/ ROM2:5BBE F0 E9 ld a,(FF00+E9) ;\ ROM2:5BC0 FE 0C cp 0C ;} If [$FFE9] < Ch: go to BRANCH_BETA ROM2:5BC2 30 04 jr nc,5BC8 ;/ ; BRANCH_ALPHA ROM2:5BC4 36 09 ld (hl),09 ; $FFE3 = 9 ROM2:5BC6 C9 ret ; BRANCH_POP ROM2:5BC7 F1 pop af ; ?! ; BRANCH_BETA ROM2:5BC8 F0 FE ld a,(FF00+FE) ;\ ROM2:5BCA E6 01 and 01 ;} If [enemy frame counter] % 2 != 0: return ROM2:5BCC C0 ret nz ;/ ROM2:5BCD 7E ld a,(hl) ;\ ROM2:5BCE FE 0B cp 0B ;} If [$FFE3] = Bh: go to BRANCH_ALPHA ROM2:5BD0 28 F2 jr z,5BC4 ;/ ROM2:5BD2 34 inc (hl) ; Increment $FFE3 ROM2:5BD3 C9 ret } ;;; $5BD4: ;;; { ROM2:5BD4 21 E3 FF ld hl,FFE3 ROM2:5BD7 7E ld a,(hl) ROM2:5BD8 FE 0E cp 0E ROM2:5BDA 28 09 jr z,5BE5 ROM2:5BDC 30 21 jr nc,5BFF ROM2:5BDE F0 FE ld a,(FF00+FE) ROM2:5BE0 E6 03 and 03 ROM2:5BE2 C0 ret nz ROM2:5BE3 34 inc (hl) ROM2:5BE4 C9 ret ROM2:5BE5 21 E1 FF ld hl,FFE1 ROM2:5BE8 34 inc (hl) ROM2:5BE9 CD 7B 6A call 6A7B ROM2:5BEC CD BA 49 call 49BA ROM2:5BEF FA 02 C4 ld a,(C402) ROM2:5BF2 CB 4F bit 1,a ROM2:5BF4 C8 ret z ROM2:5BF5 3E 0F ld a,0F ROM2:5BF7 E0 E3 ld (FF00+E3),a ROM2:5BF9 3E 11 ld a,11 ;\ ROM2:5BFB EA D5 CE ld (CED5),a ;} Play sound effect 11h ROM2:5BFE C9 ret ROM2:5BFF F0 FE ld a,(FF00+FE) ROM2:5C01 E6 03 and 03 ROM2:5C03 C0 ret nz ROM2:5C04 34 inc (hl) ROM2:5C05 7E ld a,(hl) ROM2:5C06 FE 12 cp 12 ROM2:5C08 D8 ret c ROM2:5C09 26 C6 ld h,C6 ROM2:5C0B F0 EF ld a,(FF00+EF) ROM2:5C0D CB 67 bit 4,a ROM2:5C0F 20 05 jr nz,5C16 ROM2:5C11 C6 1C add a,1C ROM2:5C13 6F ld l,a ROM2:5C14 18 04 jr 5C1A ROM2:5C16 C6 0C add a,0C ROM2:5C18 6F ld l,a ROM2:5C19 24 inc h ROM2:5C1A 7E ld a,(hl) ROM2:5C1B FE 03 cp 03 ROM2:5C1D 20 0A jr nz,5C29 ROM2:5C1F 3E 01 ld a,01 ROM2:5C21 22 ldi (hl),a ROM2:5C22 7E ld a,(hl) ROM2:5C23 21 00 C5 ld hl,C500 ROM2:5C26 6F ld l,a ROM2:5C27 36 01 ld (hl),01 ROM2:5C29 CD A6 3C call 3CA6 ROM2:5C2C 3E 03 ld a,03 ;\ ROM2:5C2E EA D5 CE ld (CED5),a ;} Play sound effect 3 ROM2:5C31 3E FF ld a,FF ROM2:5C33 E0 EF ld (FF00+EF),a ROM2:5C35 C9 ret } ;;; $5C36: Enemy AI - enemy 16h/63h (senjoo / shirk) ;;; { ROM2:5C36 CD C7 5C call 5CC7 ROM2:5C39 FA 3C D0 ld a,(D03C) ROM2:5C3C 47 ld b,a ROM2:5C3D 21 E2 FF ld hl,FFE2 ROM2:5C40 7E ld a,(hl) ROM2:5C41 90 sub b ROM2:5C42 30 02 jr nc,5C46 ROM2:5C44 2F cpl ROM2:5C45 3C inc a ROM2:5C46 21 E7 FF ld hl,FFE7 ROM2:5C49 FE 50 cp 50 ROM2:5C4B 38 28 jr c,5C75 ROM2:5C4D F0 FE ld a,(FF00+FE) ROM2:5C4F E6 01 and 01 ROM2:5C51 C0 ret nz ROM2:5C52 7E ld a,(hl) ROM2:5C53 FE 0C cp 0C ROM2:5C55 28 16 jr z,5C6D ROM2:5C57 FE 08 cp 08 ROM2:5C59 30 09 jr nc,5C64 ROM2:5C5B 34 inc (hl) ROM2:5C5C 21 E1 FF ld hl,FFE1 ROM2:5C5F 7E ld a,(hl) ROM2:5C60 C6 02 add a,02 ROM2:5C62 77 ld (hl),a ROM2:5C63 C9 ret ROM2:5C64 34 inc (hl) ROM2:5C65 21 E1 FF ld hl,FFE1 ROM2:5C68 7E ld a,(hl) ROM2:5C69 D6 04 sub 04 ROM2:5C6B 77 ld (hl),a ROM2:5C6C C9 ret ROM2:5C6D F0 FE ld a,(FF00+FE) ROM2:5C6F E6 03 and 03 ROM2:5C71 C0 ret nz ROM2:5C72 36 00 ld (hl),00 ROM2:5C74 C9 ret ROM2:5C75 06 10 ld b,10 ROM2:5C77 21 EA FF ld hl,FFEA ROM2:5C7A 3A ldd a,(hl) ROM2:5C7B A7 and a ROM2:5C7C 28 19 jr z,5C97 ROM2:5C7E 3D dec a ROM2:5C7F 28 2A jr z,5CAB ROM2:5C81 3D dec a ROM2:5C82 28 35 jr z,5CB9 ROM2:5C84 7E ld a,(hl) ROM2:5C85 B8 cp b ROM2:5C86 28 0A jr z,5C92 ROM2:5C88 34 inc (hl) ROM2:5C89 21 E1 FF ld hl,FFE1 ROM2:5C8C 35 dec (hl) ROM2:5C8D 35 dec (hl) ROM2:5C8E 2C inc l ROM2:5C8F 35 dec (hl) ROM2:5C90 35 dec (hl) ROM2:5C91 C9 ret ROM2:5C92 AF xor a ROM2:5C93 22 ldi (hl),a ROM2:5C94 AF xor a ROM2:5C95 77 ld (hl),a ROM2:5C96 C9 ret ROM2:5C97 7E ld a,(hl) ROM2:5C98 B8 cp b ROM2:5C99 28 0A jr z,5CA5 ROM2:5C9B 34 inc (hl) ROM2:5C9C 21 E1 FF ld hl,FFE1 ROM2:5C9F 34 inc (hl) ROM2:5CA0 34 inc (hl) ROM2:5CA1 2C inc l ROM2:5CA2 35 dec (hl) ROM2:5CA3 35 dec (hl) ROM2:5CA4 C9 ret ROM2:5CA5 AF xor a ROM2:5CA6 22 ldi (hl),a ROM2:5CA7 7E ld a,(hl) ROM2:5CA8 3C inc a ROM2:5CA9 77 ld (hl),a ROM2:5CAA C9 ret ROM2:5CAB 7E ld a,(hl) ROM2:5CAC B8 cp b ROM2:5CAD 28 F6 jr z,5CA5 ROM2:5CAF 34 inc (hl) ROM2:5CB0 21 E1 FF ld hl,FFE1 ROM2:5CB3 34 inc (hl) ROM2:5CB4 34 inc (hl) ROM2:5CB5 2C inc l ROM2:5CB6 34 inc (hl) ROM2:5CB7 34 inc (hl) ROM2:5CB8 C9 ret ROM2:5CB9 7E ld a,(hl) ROM2:5CBA B8 cp b ROM2:5CBB 28 E8 jr z,5CA5 ROM2:5CBD 34 inc (hl) ROM2:5CBE 21 E1 FF ld hl,FFE1 ROM2:5CC1 35 dec (hl) ROM2:5CC2 35 dec (hl) ROM2:5CC3 2C inc l ROM2:5CC4 34 inc (hl) ROM2:5CC5 34 inc (hl) ROM2:5CC6 C9 ret } ;;; $5CC7: (unit) ;;; { ROM2:5CC7 F0 FE ld a,(FF00+FE) ROM2:5CC9 E6 01 and 01 ROM2:5CCB C0 ret nz ROM2:5CCC 21 E3 FF ld hl,FFE3 ROM2:5CCF 7E ld a,(hl) ROM2:5CD0 FE 63 cp 63 ROM2:5CD2 30 08 jr nc,5CDC ROM2:5CD4 21 E5 FF ld hl,FFE5 ROM2:5CD7 7E ld a,(hl) ROM2:5CD8 EE 20 xor 20 ROM2:5CDA 77 ld (hl),a ROM2:5CDB C9 ret ROM2:5CDC EE 07 xor 07 ROM2:5CDE 77 ld (hl),a ROM2:5CDF C9 ret } ;;; $5CE0: Enemy AI - enemy D8h (gullugg) ;;; { ROM2:5CE0 CD FE 5D call 5DFE ROM2:5CE3 21 E9 FF ld hl,FFE9 ROM2:5CE6 4E ld c,(hl) ROM2:5CE7 06 00 ld b,00 ROM2:5CE9 21 85 5D ld hl,5D85 ROM2:5CEC 09 add hl,bc ROM2:5CED 7E ld a,(hl) ROM2:5CEE FE 80 cp 80 ROM2:5CF0 20 07 jr nz,5CF9 ROM2:5CF2 0E 00 ld c,00 ROM2:5CF4 AF xor a ROM2:5CF5 E0 E9 ld (FF00+E9),a ROM2:5CF7 18 F0 jr 5CE9 ROM2:5CF9 F0 E1 ld a,(FF00+E1) ROM2:5CFB 86 add a,(hl) ROM2:5CFC E0 E1 ld (FF00+E1),a ROM2:5CFE 21 C2 5D ld hl,5DC2 ROM2:5D01 09 add hl,bc ROM2:5D02 F0 E2 ld a,(FF00+E2) ROM2:5D04 86 add a,(hl) ROM2:5D05 E0 E2 ld (FF00+E2),a ROM2:5D07 21 E9 FF ld hl,FFE9 ROM2:5D0A 34 inc (hl) ROM2:5D0B C9 ret } ROM2:5D0C db 01,00,01,02,01,02,03,02,03,03,04,03,04,04,03,04, 04,04,03,03,04,03,02,03,02,01,02,01,00,00,00,00, FF,FE,FF,FE,FD,FE,FD,FC,FD,FD,FC,FC,FC,FD,FC,FC, FD,FC,FD,FD,FE,FD,FE,FF,FE,FF,00,FF,80,FD,FC,FC, FD,FC,FD,FD,FE,FD,FE,FF,FE,FF,00,FF,01,00,01,02, 01,02,03,02,03,03,04,03,04,04,03,04,04,04,03,03, 04,03,02,03,02,01,02,01,00,00,00,00,FF,FE,FF,FE, FD,FE,FD,FC,FD,FD,FC,FC,FC,01,00,01,01,01,02,02, 02,02,02,03,03,03,03,02,03,03,03,03,02,03,02,02, 02,02,01,01,01,00,00,00,00,FF,FF,FF,FE,FE,FE,FE, FD,FE,FD,FD,FD,FD,FE,FD,FD,FD,FD,FE,FE,FE,FE,FE, FF,FF,FF,00,FF,80,02,03,03,03,03,02,02,02,02,02, 01,01,01,00,01,FF,00,FF,FF,FF,FE,FE,FE,FE,FE,FD, FD,FD,FD,FE,FD,FD,FD,FD,FE,FD,FE,FE,FE,FE,FF,FF, FF,00,00,00,00,01,01,01,02,02,02,02,03,02,03,03, 03,03 ;;; $5DFE: (unit) ;;; { ROM2:5DFE 21 E3 FF ld hl,FFE3 ROM2:5E01 7E ld a,(hl) ROM2:5E02 FE DA cp DA ROM2:5E04 28 02 jr z,5E08 ROM2:5E06 34 inc (hl) ROM2:5E07 C9 ret ROM2:5E08 36 D8 ld (hl),D8 ROM2:5E0A C9 ret } ;;; $5E0B: Enemy AI - enemy 1Bh/40h (chute leech / octroll) ;;; { ROM2:5E0B F0 EA ld a,(FF00+EA) ROM2:5E0D 3D dec a ROM2:5E0E 28 28 jr z,5E38 ROM2:5E10 3D dec a ROM2:5E11 28 53 jr z,5E66 ROM2:5E13 FA 3C D0 ld a,(D03C) ROM2:5E16 47 ld b,a ROM2:5E17 21 E2 FF ld hl,FFE2 ROM2:5E1A 7E ld a,(hl) ROM2:5E1B 90 sub b ROM2:5E1C 30 02 jr nc,5E20 ROM2:5E1E 2F cpl ROM2:5E1F 3C inc a ROM2:5E20 FE 50 cp 50 ROM2:5E22 D0 ret nc ROM2:5E23 3E 01 ld a,01 ROM2:5E25 E0 EA ld (FF00+EA),a ROM2:5E27 AF xor a ROM2:5E28 E0 E5 ld (FF00+E5),a ROM2:5E2A 21 E3 FF ld hl,FFE3 ROM2:5E2D 7E ld a,(hl) ROM2:5E2E FE 3E cp 3E ROM2:5E30 30 03 jr nc,5E35 ROM2:5E32 36 1C ld (hl),1C ROM2:5E34 C9 ret ROM2:5E35 36 3E ld (hl),3E ROM2:5E37 C9 ret ROM2:5E38 F0 E3 ld a,(FF00+E3) ROM2:5E3A FE 3E cp 3E ROM2:5E3C D4 33 6B call nc,6B33 ROM2:5E3F F0 E9 ld a,(FF00+E9) ROM2:5E41 FE 16 cp 16 ROM2:5E43 28 0C jr z,5E51 ROM2:5E45 21 E1 FF ld hl,FFE1 ROM2:5E48 7E ld a,(hl) ROM2:5E49 D6 04 sub 04 ROM2:5E4B 77 ld (hl),a ROM2:5E4C 21 E9 FF ld hl,FFE9 ROM2:5E4F 34 inc (hl) ROM2:5E50 C9 ret ROM2:5E51 AF xor a ROM2:5E52 E0 E9 ld (FF00+E9),a ROM2:5E54 3E 02 ld a,02 ROM2:5E56 E0 EA ld (FF00+EA),a ROM2:5E58 21 E3 FF ld hl,FFE3 ROM2:5E5B 7E ld a,(hl) ROM2:5E5C FE 3E cp 3E ROM2:5E5E 30 03 jr nc,5E63 ROM2:5E60 36 1D ld (hl),1D ROM2:5E62 C9 ret ROM2:5E63 36 40 ld (hl),40 ROM2:5E65 C9 ret ROM2:5E66 21 E9 FF ld hl,FFE9 ROM2:5E69 4E ld c,(hl) ROM2:5E6A 06 00 ld b,00 ROM2:5E6C 21 C8 5E ld hl,5EC8 ROM2:5E6F 09 add hl,bc ROM2:5E70 7E ld a,(hl) ROM2:5E71 FE 80 cp 80 ROM2:5E73 20 0F jr nz,5E84 ROM2:5E75 AF xor a ROM2:5E76 E0 E9 ld (FF00+E9),a ROM2:5E78 E0 EA ld (FF00+EA),a ROM2:5E7A 21 E3 FF ld hl,FFE3 ROM2:5E7D 7E ld a,(hl) ROM2:5E7E FE 3E cp 3E ROM2:5E80 D0 ret nc ROM2:5E81 36 1B ld (hl),1B ROM2:5E83 C9 ret ROM2:5E84 F0 E5 ld a,(FF00+E5) ROM2:5E86 A7 and a ROM2:5E87 20 17 jr nz,5EA0 ROM2:5E89 CB 7E bit 7,(hl) ROM2:5E8B 20 28 jr nz,5EB5 ROM2:5E8D F0 E7 ld a,(FF00+E7) ROM2:5E8F 3C inc a ROM2:5E90 E0 E7 ld (FF00+E7),a ROM2:5E92 FE 04 cp 04 ROM2:5E94 C0 ret nz ROM2:5E95 AF xor a ROM2:5E96 E0 E7 ld (FF00+E7),a ROM2:5E98 F0 E5 ld a,(FF00+E5) ROM2:5E9A EE 20 xor 20 ROM2:5E9C E0 E5 ld (FF00+E5),a ROM2:5E9E 18 15 jr 5EB5 ROM2:5EA0 CB 7E bit 7,(hl) ROM2:5EA2 28 11 jr z,5EB5 ROM2:5EA4 F0 E7 ld a,(FF00+E7) ROM2:5EA6 3C inc a ROM2:5EA7 E0 E7 ld (FF00+E7),a ROM2:5EA9 FE 04 cp 04 ROM2:5EAB C0 ret nz ROM2:5EAC AF xor a ROM2:5EAD E0 E7 ld (FF00+E7),a ROM2:5EAF F0 E5 ld a,(FF00+E5) ROM2:5EB1 EE 20 xor 20 ROM2:5EB3 E0 E5 ld (FF00+E5),a ROM2:5EB5 F0 E2 ld a,(FF00+E2) ROM2:5EB7 86 add a,(hl) ROM2:5EB8 E0 E2 ld (FF00+E2),a ROM2:5EBA 21 18 5F ld hl,5F18 ROM2:5EBD 09 add hl,bc ROM2:5EBE F0 E1 ld a,(FF00+E1) ROM2:5EC0 86 add a,(hl) ROM2:5EC1 E0 E1 ld (FF00+E1),a ROM2:5EC3 21 E9 FF ld hl,FFE9 ROM2:5EC6 34 inc (hl) ROM2:5EC7 C9 ret } ROM2:5EC8 db FF,FF,FE,FE,FF,FF,02,02,02,02,03,03,02,04,02,02, FE,FE,FE,FE,FE,FD,FD,FD,FD,FD,FD,FC,FD,FD,FE,02, 03,02,03,03,03,03,03,03,03,03,03,03,03,04,03,04, 03,02,FE,FD,FD,FD,FD,FC,FC,FC,FC,FD,FB,FD,FC,FB, FC,FC,FD,FD,03,03,03,02,04,03,03,03,04,02,02,80, 02,02,02,01,01,00,02,01,01,01,01,01,00,01,00,00, 02,02,01,02,01,02,01,01,01,01,00,01,00,01,00,02, 01,02,01,01,01,01,01,01,01,01,00,01,00,01,00,01, 00,00,02,03,02,02,01,02,02,01,01,02,02,01,01,00, 01,01,00,00,03,02,02,01,02,02,01,01,01,01,00 ;;; $5F67: Enemy AI - enemy 19h/1Ah/3Ch/3Dh (gawron/yumee spawner) ;;; { ROM2:5F67 F0 EF ld a,(FF00+EF) ROM2:5F69 FE 03 cp 03 ROM2:5F6B C8 ret z ROM2:5F6C FE 01 cp 01 ROM2:5F6E C2 0A 60 jp nz,600A ROM2:5F71 21 E9 FF ld hl,FFE9 ROM2:5F74 34 inc (hl) ROM2:5F75 7E ld a,(hl) ROM2:5F76 FE 18 cp 18 ROM2:5F78 D8 ret c ROM2:5F79 36 00 ld (hl),00 ROM2:5F7B 21 E7 FF ld hl,FFE7 ROM2:5F7E 7E ld a,(hl) ROM2:5F7F FE 0A cp 0A ROM2:5F81 38 0D jr c,5F90 ROM2:5F83 CD A6 3C call 3CA6 ROM2:5F86 3E 14 ld a,14 ;\ ROM2:5F88 EA C0 CE ld (CEC0),a ;} Play option select / missile select sound effect ROM2:5F8B 3E 02 ld a,02 ROM2:5F8D E0 EF ld (FF00+EF),a ROM2:5F8F C9 ret ROM2:5F90 34 inc (hl) ROM2:5F91 CD F6 3D call 3DF6 ROM2:5F94 AF xor a ROM2:5F95 22 ldi (hl),a ROM2:5F96 F0 E1 ld a,(FF00+E1) ROM2:5F98 22 ldi (hl),a ROM2:5F99 F0 E2 ld a,(FF00+E2) ROM2:5F9B 22 ldi (hl),a ROM2:5F9C F0 E3 ld a,(FF00+E3) ROM2:5F9E FE 3C cp 3C ROM2:5FA0 30 04 jr nc,5FA6 ROM2:5FA2 3E 17 ld a,17 ROM2:5FA4 18 02 jr 5FA8 ROM2:5FA6 3E 38 ld a,38 ROM2:5FA8 22 ldi (hl),a ROM2:5FA9 11 FF 5F ld de,5FFF ROM2:5FAC 06 09 ld b,09 ROM2:5FAE 1A ld a,(de) ROM2:5FAF 22 ldi (hl),a ROM2:5FB0 13 inc de ROM2:5FB1 05 dec b ROM2:5FB2 20 FA jr nz,5FAE ROM2:5FB4 4F ld c,a ROM2:5FB5 AF xor a ROM2:5FB6 06 04 ld b,04 ROM2:5FB8 22 ldi (hl),a ROM2:5FB9 05 dec b ROM2:5FBA 20 FC jr nz,5FB8 ROM2:5FBC 71 ld (hl),c ROM2:5FBD 7D ld a,l ROM2:5FBE C6 0B add a,0B ROM2:5FC0 6F ld l,a ROM2:5FC1 F0 FD ld a,(FF00+FD) ROM2:5FC3 FE C6 cp C6 ROM2:5FC5 20 04 jr nz,5FCB ROM2:5FC7 F0 FC ld a,(FF00+FC) ROM2:5FC9 18 04 jr 5FCF ROM2:5FCB F0 FC ld a,(FF00+FC) ROM2:5FCD C6 10 add a,10 ROM2:5FCF 22 ldi (hl),a ROM2:5FD0 EA 77 C4 ld (C477),a ROM2:5FD3 F0 E3 ld a,(FF00+E3) ROM2:5FD5 CB 47 bit 0,a ROM2:5FD7 20 03 jr nz,5FDC ROM2:5FD9 AF xor a ROM2:5FDA 18 02 jr 5FDE ROM2:5FDC 3E 01 ld a,01 ROM2:5FDE 22 ldi (hl),a ROM2:5FDF 06 02 ld b,02 ROM2:5FE1 1A ld a,(de) ROM2:5FE2 22 ldi (hl),a ROM2:5FE3 1C inc e ROM2:5FE4 05 dec b ROM2:5FE5 20 FA jr nz,5FE1 ROM2:5FE7 2D dec l ROM2:5FE8 2D dec l ROM2:5FE9 2D dec l ROM2:5FEA 7E ld a,(hl) ROM2:5FEB 21 00 C5 ld hl,C500 ROM2:5FEE 6F ld l,a ROM2:5FEF FA 77 C4 ld a,(C477) ROM2:5FF2 77 ld (hl),a ROM2:5FF3 21 25 C4 ld hl,C425 ROM2:5FF6 34 inc (hl) ROM2:5FF7 2C inc l ROM2:5FF8 34 inc (hl) ROM2:5FF9 21 EF FF ld hl,FFEF ROM2:5FFC 36 03 ld (hl),03 ROM2:5FFE C9 ret ROM2:5FFF db 80, 00, 00, 00, 00, 00, 00, 00, 01, 67, 5F ROM2:600A CD 9B 60 call 609B ROM2:600D F0 EA ld a,(FF00+EA) ROM2:600F A7 and a ROM2:6010 28 05 jr z,6017 ROM2:6012 3D dec a ROM2:6013 28 29 jr z,603E ROM2:6015 18 43 jr 605A ROM2:6017 0E 02 ld c,02 ROM2:6019 FA 3C D0 ld a,(D03C) ROM2:601C 47 ld b,a ROM2:601D 21 E2 FF ld hl,FFE2 ROM2:6020 7E ld a,(hl) ROM2:6021 90 sub b ROM2:6022 30 04 jr nc,6028 ROM2:6024 2F cpl ROM2:6025 3C inc a ROM2:6026 0E 00 ld c,00 ROM2:6028 FE 50 cp 50 ROM2:602A D0 ret nc ROM2:602B 79 ld a,c ROM2:602C E0 E8 ld (FF00+E8),a ROM2:602E A7 and a ROM2:602F 28 05 jr z,6036 ROM2:6031 AF xor a ROM2:6032 E0 E5 ld (FF00+E5),a ROM2:6034 18 04 jr 603A ROM2:6036 3E 20 ld a,20 ROM2:6038 E0 E5 ld (FF00+E5),a ROM2:603A 3E 01 ld a,01 ROM2:603C E0 EA ld (FF00+EA),a ROM2:603E 21 E1 FF ld hl,FFE1 ROM2:6041 7E ld a,(hl) ROM2:6042 D6 04 sub 04 ROM2:6044 77 ld (hl),a ROM2:6045 FA 3B D0 ld a,(D03B) ROM2:6048 C6 05 add a,05 ROM2:604A BE cp (hl) ROM2:604B D8 ret c ROM2:604C 21 EA FF ld hl,FFEA ROM2:604F 34 inc (hl) ROM2:6050 21 E3 FF ld hl,FFE3 ROM2:6053 7E ld a,(hl) ROM2:6054 FE 38 cp 38 ROM2:6056 D8 ret c ROM2:6057 36 3A ld (hl),3A ROM2:6059 C9 ret ROM2:605A 21 E2 FF ld hl,FFE2 ROM2:605D 7E ld a,(hl) ROM2:605E FE A8 cp A8 ROM2:6060 30 11 jr nc,6073 ROM2:6062 F0 E8 ld a,(FF00+E8) ROM2:6064 A7 and a ROM2:6065 28 06 jr z,606D ROM2:6067 35 dec (hl) ROM2:6068 35 dec (hl) ROM2:6069 CD AE 6A call 6AAE ROM2:606C C9 ret ROM2:606D 34 inc (hl) ROM2:606E 34 inc (hl) ROM2:606F CD 7B 6A call 6A7B ROM2:6072 C9 ret ROM2:6073 26 C6 ld h,C6 ROM2:6075 F0 EF ld a,(FF00+EF) ROM2:6077 CB 67 bit 4,a ROM2:6079 20 05 jr nz,6080 ROM2:607B C6 1C add a,1C ROM2:607D 6F ld l,a ROM2:607E 18 04 jr 6084 ROM2:6080 C6 0C add a,0C ROM2:6082 6F ld l,a ROM2:6083 24 inc h ROM2:6084 7E ld a,(hl) ROM2:6085 FE 03 cp 03 ROM2:6087 20 0A jr nz,6093 ROM2:6089 3E 01 ld a,01 ROM2:608B 22 ldi (hl),a ROM2:608C 7E ld a,(hl) ROM2:608D 21 00 C5 ld hl,C500 ROM2:6090 6F ld l,a ROM2:6091 36 01 ld (hl),01 ROM2:6093 CD A6 3C call 3CA6 ROM2:6096 3E FF ld a,FF ROM2:6098 E0 EF ld (FF00+EF),a ROM2:609A C9 ret } ;;; $609B: (unit) ;;; { ROM2:609B 21 E3 FF ld hl,FFE3 ROM2:609E 7E ld a,(hl) ROM2:609F FE 38 cp 38 ROM2:60A1 30 04 jr nc,60A7 ROM2:60A3 EE 0F xor 0F ROM2:60A5 18 02 jr 60A9 ROM2:60A7 EE 01 xor 01 ROM2:60A9 77 ld (hl),a ROM2:60AA C9 ret } ;;; $60AB: Enemy AI - enemy 28h/29h (skorp) ;;; { ROM2:60AB 21 EA FF ld hl,FFEA ROM2:60AE 3A ldd a,(hl) ROM2:60AF 3D dec a ROM2:60B0 28 20 jr z,60D2 ROM2:60B2 3D dec a ROM2:60B3 28 24 jr z,60D9 ROM2:60B5 3D dec a ROM2:60B6 28 37 jr z,60EF ROM2:60B8 34 inc (hl) ROM2:60B9 7E ld a,(hl) ROM2:60BA FE 20 cp 20 ROM2:60BC 28 10 jr z,60CE ROM2:60BE CD 5B 6B call 6B5B ROM2:60C1 21 E1 FF ld hl,FFE1 ROM2:60C4 F0 E5 ld a,(FF00+E5) ROM2:60C6 CB 77 bit 6,a ROM2:60C8 20 02 jr nz,60CC ROM2:60CA 35 dec (hl) ROM2:60CB C9 ret ROM2:60CC 34 inc (hl) ROM2:60CD C9 ret ROM2:60CE AF xor a ROM2:60CF 22 ldi (hl),a ROM2:60D0 34 inc (hl) ROM2:60D1 C9 ret ROM2:60D2 34 inc (hl) ROM2:60D3 7E ld a,(hl) ROM2:60D4 FE 08 cp 08 ROM2:60D6 28 F6 jr z,60CE ROM2:60D8 C9 ret ROM2:60D9 34 inc (hl) ROM2:60DA 7E ld a,(hl) ROM2:60DB FE 20 cp 20 ROM2:60DD 28 EF jr z,60CE ROM2:60DF CD 5B 6B call 6B5B ROM2:60E2 21 E1 FF ld hl,FFE1 ROM2:60E5 F0 E5 ld a,(FF00+E5) ROM2:60E7 CB 77 bit 6,a ROM2:60E9 20 02 jr nz,60ED ROM2:60EB 34 inc (hl) ROM2:60EC C9 ret ROM2:60ED 35 dec (hl) ROM2:60EE C9 ret ROM2:60EF 34 inc (hl) ROM2:60F0 7E ld a,(hl) ROM2:60F1 FE 08 cp 08 ROM2:60F3 C0 ret nz ROM2:60F4 AF xor a ROM2:60F5 22 ldi (hl),a ROM2:60F6 77 ld (hl),a ROM2:60F7 C9 ret } ;;; $60F8: Enemy AI - enemy 2Ah/2Bh (skorp) ;;; { ROM2:60F8 21 EA FF ld hl,FFEA ROM2:60FB 3A ldd a,(hl) ROM2:60FC 3D dec a ROM2:60FD 28 20 jr z,611F ROM2:60FF 3D dec a ROM2:6100 28 24 jr z,6126 ROM2:6102 3D dec a ROM2:6103 28 37 jr z,613C ROM2:6105 34 inc (hl) ROM2:6106 7E ld a,(hl) ROM2:6107 FE 20 cp 20 ROM2:6109 28 10 jr z,611B ROM2:610B CD 6F 6B call 6B6F ROM2:610E 21 E2 FF ld hl,FFE2 ROM2:6111 F0 E5 ld a,(FF00+E5) ROM2:6113 CB 6F bit 5,a ROM2:6115 28 02 jr z,6119 ROM2:6117 35 dec (hl) ROM2:6118 C9 ret ROM2:6119 34 inc (hl) ROM2:611A C9 ret ROM2:611B AF xor a ROM2:611C 22 ldi (hl),a ROM2:611D 34 inc (hl) ROM2:611E C9 ret ROM2:611F 34 inc (hl) ROM2:6120 7E ld a,(hl) ROM2:6121 FE 08 cp 08 ROM2:6123 28 F6 jr z,611B ROM2:6125 C9 ret ROM2:6126 34 inc (hl) ROM2:6127 7E ld a,(hl) ROM2:6128 FE 20 cp 20 ROM2:612A 28 EF jr z,611B ROM2:612C CD 6F 6B call 6B6F ROM2:612F 21 E2 FF ld hl,FFE2 ROM2:6132 F0 E5 ld a,(FF00+E5) ROM2:6134 CB 6F bit 5,a ROM2:6136 28 02 jr z,613A ROM2:6138 34 inc (hl) ROM2:6139 C9 ret ROM2:613A 35 dec (hl) ROM2:613B C9 ret ROM2:613C 34 inc (hl) ROM2:613D 7E ld a,(hl) ROM2:613E FE 08 cp 08 ROM2:6140 C0 ret nz ROM2:6141 AF xor a ROM2:6142 22 ldi (hl),a ROM2:6143 77 ld (hl),a ROM2:6144 C9 ret } ;;; $6145: Enemy AI - enemy 1Eh/41h (??? / autrack) ;;; { ROM2:6145 21 E3 FF ld hl,FFE3 ROM2:6148 7E ld a,(hl) ROM2:6149 FE 1E cp 1E ROM2:614B 20 02 jr nz,614F ROM2:614D 36 41 ld (hl),41 ROM2:614F F0 EF ld a,(FF00+EF) ROM2:6151 FE 06 cp 06 ROM2:6153 28 69 jr z,61BE ROM2:6155 21 E3 FF ld hl,FFE3 ROM2:6158 F0 E8 ld a,(FF00+E8) ROM2:615A CB 4F bit 1,a ROM2:615C 20 07 jr nz,6165 ROM2:615E 7E ld a,(hl) ROM2:615F FE 43 cp 43 ROM2:6161 28 09 jr z,616C ROM2:6163 34 inc (hl) ROM2:6164 C9 ret ROM2:6165 7E ld a,(hl) ROM2:6166 FE 41 cp 41 ROM2:6168 28 3F jr z,61A9 ROM2:616A 35 dec (hl) ROM2:616B C9 ret ROM2:616C F0 FE ld a,(FF00+FE) ROM2:616E E6 0F and 0F ROM2:6170 C0 ret nz ROM2:6171 CD F6 3D call 3DF6 ROM2:6174 AF xor a ROM2:6175 22 ldi (hl),a ROM2:6176 F0 E1 ld a,(FF00+E1) ROM2:6178 D6 14 sub 14 ROM2:617A 22 ldi (hl),a ROM2:617B F0 E5 ld a,(FF00+E5) ROM2:617D 47 ld b,a ROM2:617E CB 6F bit 5,a ROM2:6180 20 06 jr nz,6188 ROM2:6182 F0 E2 ld a,(FF00+E2) ROM2:6184 D6 08 sub 08 ROM2:6186 18 04 jr 618C ROM2:6188 F0 E2 ld a,(FF00+E2) ROM2:618A C6 08 add a,08 ROM2:618C 22 ldi (hl),a ROM2:618D 3E 45 ld a,45 ROM2:618F 22 ldi (hl),a ROM2:6190 3E 00 ld a,00 ROM2:6192 22 ldi (hl),a ROM2:6193 78 ld a,b ROM2:6194 22 ldi (hl),a ROM2:6195 11 D1 61 ld de,61D1 ROM2:6198 3E 06 ld a,06 ROM2:619A EA 77 C4 ld (C477),a ROM2:619D CD 31 72 call 7231 ROM2:61A0 3E 44 ld a,44 ROM2:61A2 E0 E3 ld (FF00+E3),a ROM2:61A4 3E 13 ld a,13 ;\ ROM2:61A6 EA D5 CE ld (CED5),a ;} Play sound effect 13h ROM2:61A9 F0 FE ld a,(FF00+FE) ROM2:61AB E6 0F and 0F ROM2:61AD C0 ret nz ROM2:61AE 21 E8 FF ld hl,FFE8 ROM2:61B1 7E ld a,(hl) ROM2:61B2 EE 0A xor 0A ROM2:61B4 77 ld (hl),a ROM2:61B5 FE 08 cp 08 ROM2:61B7 C0 ret nz ROM2:61B8 3E 18 ld a,18 ;\ ROM2:61BA EA D5 CE ld (CED5),a ;} Play sound effect 18h ROM2:61BD C9 ret ROM2:61BE 21 E2 FF ld hl,FFE2 ROM2:61C1 F0 E5 ld a,(FF00+E5) ROM2:61C3 CB 6F bit 5,a ROM2:61C5 20 05 jr nz,61CC ROM2:61C7 7E ld a,(hl) ROM2:61C8 D6 05 sub 05 ROM2:61CA 77 ld (hl),a ROM2:61CB C9 ret ROM2:61CC 7E ld a,(hl) ROM2:61CD C6 05 add a,05 ROM2:61CF 77 ld (hl),a ROM2:61D0 C9 ret } ROM2:61D1 db 00,00,00,00,00,00,FE,00,45,61 ;;; $61DB: Enemy AI - enemy 14h/46h/6Bh (hornoad / autoad / ramulken) ;;; { ROM2:61DB 01 E1 FF ld bc,FFE1 ROM2:61DE F0 EA ld a,(FF00+EA) ROM2:61E0 3D dec a ROM2:61E1 28 46 jr z,6229 ROM2:61E3 3D dec a ROM2:61E4 CA 87 62 jp z,6287 ROM2:61E7 F0 E9 ld a,(FF00+E9) ROM2:61E9 FE 10 cp 10 ROM2:61EB 20 0B jr nz,61F8 ROM2:61ED AF xor a ROM2:61EE E0 E9 ld (FF00+E9),a ROM2:61F0 3C inc a ROM2:61F1 E0 EA ld (FF00+EA),a ROM2:61F3 21 E3 FF ld hl,FFE3 ROM2:61F6 35 dec (hl) ROM2:61F7 C9 ret ROM2:61F8 5F ld e,a ROM2:61F9 16 00 ld d,00 ROM2:61FB 21 94 62 ld hl,6294 ROM2:61FE 19 add hl,de ROM2:61FF 0A ld a,(bc) ROM2:6200 96 sub (hl) ROM2:6201 02 ld (bc),a ROM2:6202 0C inc c ROM2:6203 21 A4 62 ld hl,62A4 ROM2:6206 19 add hl,de ROM2:6207 F0 E5 ld a,(FF00+E5) ROM2:6209 A7 and a ROM2:620A 28 04 jr z,6210 ROM2:620C 0A ld a,(bc) ROM2:620D 86 add a,(hl) ROM2:620E 18 02 jr 6212 ROM2:6210 0A ld a,(bc) ROM2:6211 96 sub (hl) ROM2:6212 02 ld (bc),a ROM2:6213 21 E9 FF ld hl,FFE9 ROM2:6216 34 inc (hl) ROM2:6217 7E ld a,(hl) ROM2:6218 FE 05 cp 05 ROM2:621A C0 ret nz ROM2:621B 21 E3 FF ld hl,FFE3 ROM2:621E 34 inc (hl) ROM2:621F 7E ld a,(hl) ROM2:6220 FE 47 cp 47 ROM2:6222 C0 ret nz ROM2:6223 3E 1A ld a,1A ;\ ROM2:6225 EA D5 CE ld (CED5),a ;} Play sound effect 1Ah ROM2:6228 C9 ret ROM2:6229 F0 E9 ld a,(FF00+E9) ROM2:622B FE 10 cp 10 ROM2:622D 20 26 jr nz,6255 ROM2:622F CD 28 4A call 4A28 ROM2:6232 FA 02 C4 ld a,(C402) ROM2:6235 CB 4F bit 1,a ROM2:6237 20 09 jr nz,6242 ROM2:6239 3E 0F ld a,0F ROM2:623B E0 E9 ld (FF00+E9),a ROM2:623D 01 E1 FF ld bc,FFE1 ROM2:6240 18 13 jr 6255 ROM2:6242 AF xor a ROM2:6243 E0 E9 ld (FF00+E9),a ROM2:6245 E0 EA ld (FF00+EA),a ROM2:6247 21 E7 FF ld hl,FFE7 ROM2:624A 34 inc (hl) ROM2:624B 7E ld a,(hl) ROM2:624C FE 03 cp 03 ROM2:624E C0 ret nz ROM2:624F 36 00 ld (hl),00 ROM2:6251 CD 67 6B call 6B67 ROM2:6254 C9 ret ROM2:6255 5F ld e,a ROM2:6256 3E 0F ld a,0F ROM2:6258 93 sub e ROM2:6259 5F ld e,a ROM2:625A 16 00 ld d,00 ROM2:625C 21 94 62 ld hl,6294 ROM2:625F 19 add hl,de ROM2:6260 0A ld a,(bc) ROM2:6261 86 add a,(hl) ROM2:6262 02 ld (bc),a ROM2:6263 D5 push de ROM2:6264 CD 28 4A call 4A28 ROM2:6267 D1 pop de ROM2:6268 FA 02 C4 ld a,(C402) ROM2:626B CB 4F bit 1,a ROM2:626D 20 D3 jr nz,6242 ROM2:626F 01 E2 FF ld bc,FFE2 ROM2:6272 21 A4 62 ld hl,62A4 ROM2:6275 19 add hl,de ROM2:6276 F0 E5 ld a,(FF00+E5) ROM2:6278 A7 and a ROM2:6279 28 04 jr z,627F ROM2:627B 0A ld a,(bc) ROM2:627C 86 add a,(hl) ROM2:627D 18 02 jr 6281 ROM2:627F 0A ld a,(bc) ROM2:6280 96 sub (hl) ROM2:6281 02 ld (bc),a ROM2:6282 21 E9 FF ld hl,FFE9 ROM2:6285 34 inc (hl) ROM2:6286 C9 ret ROM2:6287 F0 E2 ld a,(FF00+E2) ROM2:6289 FE C8 cp C8 ROM2:628B 30 03 jr nc,6290 ROM2:628D CD 67 6B call 6B67 ROM2:6290 AF xor a ROM2:6291 E0 EA ld (FF00+EA),a ROM2:6293 C9 ret } ROM2:6294 db 04,03,04,03,03,02,03,02,02,02,01,01,01,01,00,00, 00,01,01,01,01,01,02,01,01,01,01,01,01,01,01,01 ;;; $62B4: Enemy AI - enemy 1Fh / 4Ah (??? / wallfire) ;;; { ROM2:62B4 21 E3 FF ld hl,FFE3 ROM2:62B7 7E ld a,(hl) ROM2:62B8 FE 1F cp 1F ROM2:62BA 20 02 jr nz,62BE ROM2:62BC 36 4A ld (hl),4A ROM2:62BE CD A0 7D call 7DA0 ROM2:62C1 F0 EF ld a,(FF00+EF) ROM2:62C3 FE 06 cp 06 ROM2:62C5 28 73 jr z,633A ROM2:62C7 21 E3 FF ld hl,FFE3 ROM2:62CA 7E ld a,(hl) ROM2:62CB FE 4C cp 4C ROM2:62CD C8 ret z ROM2:62CE FA 6D C4 ld a,(C46D) ROM2:62D1 FE 20 cp 20 ROM2:62D3 30 0E jr nc,62E3 ROM2:62D5 3E 4C ld a,4C ROM2:62D7 77 ld (hl),a ROM2:62D8 3E FF ld a,FF ROM2:62DA EA C0 CE ld (CEC0),a ROM2:62DD 3E 02 ld a,02 ;\ ROM2:62DF EA D5 CE ld (CED5),a ;} Play enemy killed sound effect ROM2:62E2 C9 ret ROM2:62E3 7E ld a,(hl) ROM2:62E4 FE 4B cp 4B ROM2:62E6 28 43 jr z,632B ROM2:62E8 21 E9 FF ld hl,FFE9 ROM2:62EB 34 inc (hl) ROM2:62EC 7E ld a,(hl) ROM2:62ED FE 50 cp 50 ROM2:62EF C0 ret nz ROM2:62F0 36 00 ld (hl),00 ROM2:62F2 CD F6 3D call 3DF6 ROM2:62F5 AF xor a ROM2:62F6 22 ldi (hl),a ROM2:62F7 F0 E1 ld a,(FF00+E1) ROM2:62F9 D6 04 sub 04 ROM2:62FB 22 ldi (hl),a ROM2:62FC F0 E5 ld a,(FF00+E5) ROM2:62FE 47 ld b,a ROM2:62FF CB 6F bit 5,a ROM2:6301 20 06 jr nz,6309 ROM2:6303 F0 E2 ld a,(FF00+E2) ROM2:6305 C6 08 add a,08 ROM2:6307 18 04 jr 630D ROM2:6309 F0 E2 ld a,(FF00+E2) ROM2:630B D6 08 sub 08 ROM2:630D 22 ldi (hl),a ROM2:630E 3E 4D ld a,4D ROM2:6310 22 ldi (hl),a ROM2:6311 3E 00 ld a,00 ROM2:6313 22 ldi (hl),a ROM2:6314 78 ld a,b ROM2:6315 22 ldi (hl),a ROM2:6316 11 82 63 ld de,6382 ROM2:6319 3E 06 ld a,06 ROM2:631B EA 77 C4 ld (C477),a ROM2:631E CD 31 72 call 7231 ROM2:6321 3E 4B ld a,4B ROM2:6323 E0 E3 ld (FF00+E3),a ROM2:6325 3E 12 ld a,12 ;\ ROM2:6327 EA D5 CE ld (CED5),a ;} Play sound effect 12h ROM2:632A C9 ret ROM2:632B 21 E9 FF ld hl,FFE9 ROM2:632E 34 inc (hl) ROM2:632F 7E ld a,(hl) ROM2:6330 FE 08 cp 08 ROM2:6332 C0 ret nz ROM2:6333 36 00 ld (hl),00 ROM2:6335 3E 4A ld a,4A ROM2:6337 E0 E3 ld (FF00+E3),a ROM2:6339 C9 ret ROM2:633A 21 E3 FF ld hl,FFE3 ROM2:633D 7E ld a,(hl) ROM2:633E FE 4F cp 4F ROM2:6340 30 32 jr nc,6374 ROM2:6342 CD 4E 6B call 6B4E ROM2:6345 21 E2 FF ld hl,FFE2 ROM2:6348 F0 E5 ld a,(FF00+E5) ROM2:634A CB 6F bit 5,a ROM2:634C 20 17 jr nz,6365 ROM2:634E 7E ld a,(hl) ROM2:634F C6 04 add a,04 ROM2:6351 77 ld (hl),a ROM2:6352 CD 08 46 call 4608 ROM2:6355 FA 02 C4 ld a,(C402) ROM2:6358 CB 47 bit 0,a ROM2:635A C8 ret z ROM2:635B 3E 4F ld a,4F ROM2:635D E0 E3 ld (FF00+E3),a ROM2:635F 3E 03 ld a,03 ;\ ROM2:6361 EA D5 CE ld (CED5),a ;} Play sound effect 3 ROM2:6364 C9 ret ROM2:6365 7E ld a,(hl) ROM2:6366 D6 04 sub 04 ROM2:6368 77 ld (hl),a ROM2:6369 CD E1 47 call 47E1 ROM2:636C FA 02 C4 ld a,(C402) ROM2:636F CB 57 bit 2,a ROM2:6371 C8 ret z ROM2:6372 18 E7 jr 635B ROM2:6374 FE 50 cp 50 ROM2:6376 28 02 jr z,637A ROM2:6378 34 inc (hl) ROM2:6379 C9 ret ROM2:637A CD A6 3C call 3CA6 ROM2:637D 3E FF ld a,FF ROM2:637F E0 EF ld (FF00+EF),a ROM2:6381 C9 ret } ROM2:6382 db 00,00,00,00,00,00,FE,01,B4,62 ;;; $638C: Enemy AI - enemy 51h (gunzoo) ;;; { ROM2:638C F0 EF ld a,(FF00+EF) ROM2:638E FE 06 cp 06 ROM2:6390 CA A7 64 jp z,64A7 ROM2:6393 F0 E8 ld a,(FF00+E8) ROM2:6395 CB 47 bit 0,a ROM2:6397 CA 41 64 jp z,6441 ROM2:639A 21 E3 FF ld hl,FFE3 ROM2:639D 7E ld a,(hl) ROM2:639E FE 51 cp 51 ROM2:63A0 C4 38 65 call nz,6538 ROM2:63A3 F0 EA ld a,(FF00+EA) ROM2:63A5 3D dec a ROM2:63A6 28 61 jr z,6409 ROM2:63A8 3D dec a ROM2:63A9 28 09 jr z,63B4 ROM2:63AB FA 04 FF ld a,(FF04) ;div ROM2:63AE E6 1F and 1F ROM2:63B0 28 2F jr z,63E1 ROM2:63B2 18 00 jr 63B4 ROM2:63B4 11 E1 FF ld de,FFE1 ROM2:63B7 21 E9 FF ld hl,FFE9 ROM2:63BA F0 E8 ld a,(FF00+E8) ROM2:63BC CB 4F bit 1,a ROM2:63BE 20 19 jr nz,63D9 ROM2:63C0 34 inc (hl) ROM2:63C1 7E ld a,(hl) ROM2:63C2 FE 20 cp 20 ROM2:63C4 28 0B jr z,63D1 ROM2:63C6 1A ld a,(de) ROM2:63C7 C6 02 add a,02 ROM2:63C9 12 ld (de),a ROM2:63CA C9 ret ROM2:63CB F0 EA ld a,(FF00+EA) ROM2:63CD FE 02 cp 02 ROM2:63CF 28 64 jr z,6435 ROM2:63D1 21 E8 FF ld hl,FFE8 ROM2:63D4 7E ld a,(hl) ROM2:63D5 EE 02 xor 02 ROM2:63D7 77 ld (hl),a ROM2:63D8 C9 ret ROM2:63D9 35 dec (hl) ROM2:63DA 28 EF jr z,63CB ROM2:63DC 1A ld a,(de) ROM2:63DD D6 02 sub 02 ROM2:63DF 12 ld (de),a ROM2:63E0 C9 ret ROM2:63E1 CD F6 3D call 3DF6 ROM2:63E4 AF xor a ROM2:63E5 22 ldi (hl),a ROM2:63E6 F0 E1 ld a,(FF00+E1) ROM2:63E8 D6 08 sub 08 ROM2:63EA 22 ldi (hl),a ROM2:63EB F0 E2 ld a,(FF00+E2) ROM2:63ED D6 10 sub 10 ROM2:63EF 22 ldi (hl),a ROM2:63F0 3E 06 ld a,06 ROM2:63F2 EA 77 C4 ld (C477),a ROM2:63F5 11 11 65 ld de,6511 ROM2:63F8 CD 35 72 call 7235 ROM2:63FB 21 E3 FF ld hl,FFE3 ROM2:63FE 34 inc (hl) ROM2:63FF 21 EA FF ld hl,FFEA ROM2:6402 34 inc (hl) ROM2:6403 3E 12 ld a,12 ;\ ROM2:6405 EA D5 CE ld (CED5),a ;} Play sound effect 12h ROM2:6408 C9 ret ROM2:6409 F0 FE ld a,(FF00+FE) ROM2:640B E6 1F and 1F ROM2:640D 20 A5 jr nz,63B4 ROM2:640F CD F6 3D call 3DF6 ROM2:6412 AF xor a ROM2:6413 22 ldi (hl),a ROM2:6414 F0 E1 ld a,(FF00+E1) ROM2:6416 22 ldi (hl),a ROM2:6417 F0 E2 ld a,(FF00+E2) ROM2:6419 D6 10 sub 10 ROM2:641B 22 ldi (hl),a ROM2:641C 3E 06 ld a,06 ROM2:641E EA 77 C4 ld (C477),a ROM2:6421 11 1E 65 ld de,651E ROM2:6424 CD 35 72 call 7235 ROM2:6427 3E 53 ld a,53 ROM2:6429 E0 E3 ld (FF00+E3),a ROM2:642B 21 EA FF ld hl,FFEA ROM2:642E 34 inc (hl) ROM2:642F 3E 12 ld a,12 ;\ ROM2:6431 EA D5 CE ld (CED5),a ;} Play sound effect 12h ROM2:6434 C9 ret ROM2:6435 3E 51 ld a,51 ROM2:6437 E0 E3 ld (FF00+E3),a ROM2:6439 AF xor a ROM2:643A E0 E8 ld (FF00+E8),a ROM2:643C E0 E9 ld (FF00+E9),a ROM2:643E E0 EA ld (FF00+EA),a ROM2:6440 C9 ret ROM2:6441 F0 EA ld a,(FF00+EA) ROM2:6443 A7 and a ROM2:6444 20 07 jr nz,644D ROM2:6446 FA 04 FF ld a,(FF04) ;div ROM2:6449 E6 1F and 1F ROM2:644B 28 36 jr z,6483 ROM2:644D 11 E2 FF ld de,FFE2 ROM2:6450 21 E9 FF ld hl,FFE9 ROM2:6453 F0 E8 ld a,(FF00+E8) ROM2:6455 CB 4F bit 1,a ROM2:6457 20 22 jr nz,647B ROM2:6459 34 inc (hl) ROM2:645A 7E ld a,(hl) ROM2:645B FE 20 cp 20 ROM2:645D 28 0A jr z,6469 ROM2:645F 1A ld a,(de) ROM2:6460 C6 02 add a,02 ROM2:6462 12 ld (de),a ROM2:6463 C9 ret ROM2:6464 F0 EA ld a,(FF00+EA) ROM2:6466 A7 and a ROM2:6467 20 08 jr nz,6471 ROM2:6469 21 E8 FF ld hl,FFE8 ROM2:646C 7E ld a,(hl) ROM2:646D EE 02 xor 02 ROM2:646F 77 ld (hl),a ROM2:6470 C9 ret ROM2:6471 AF xor a ROM2:6472 E0 E9 ld (FF00+E9),a ROM2:6474 E0 EA ld (FF00+EA),a ROM2:6476 3E 01 ld a,01 ROM2:6478 E0 E8 ld (FF00+E8),a ROM2:647A C9 ret ROM2:647B 35 dec (hl) ROM2:647C 28 E6 jr z,6464 ROM2:647E 1A ld a,(de) ROM2:647F D6 02 sub 02 ROM2:6481 12 ld (de),a ROM2:6482 C9 ret ROM2:6483 CD F6 3D call 3DF6 ROM2:6486 AF xor a ROM2:6487 22 ldi (hl),a ROM2:6488 F0 E1 ld a,(FF00+E1) ROM2:648A C6 08 add a,08 ROM2:648C 22 ldi (hl),a ROM2:648D F0 E2 ld a,(FF00+E2) ROM2:648F D6 08 sub 08 ROM2:6491 22 ldi (hl),a ROM2:6492 3E 06 ld a,06 ROM2:6494 EA 77 C4 ld (C477),a ROM2:6497 11 2B 65 ld de,652B ROM2:649A CD 35 72 call 7235 ROM2:649D 3E 01 ld a,01 ROM2:649F E0 EA ld (FF00+EA),a ROM2:64A1 3E 12 ld a,12 ;\ ROM2:64A3 EA D5 CE ld (CED5),a ;} Play sound effect 12h ROM2:64A6 C9 ret ROM2:64A7 21 E3 FF ld hl,FFE3 ROM2:64AA 7E ld a,(hl) ROM2:64AB FE 57 cp 57 ROM2:64AD 30 3E jr nc,64ED ROM2:64AF D6 55 sub 55 ROM2:64B1 28 28 jr z,64DB ROM2:64B3 3D dec a ROM2:64B4 28 2F jr z,64E5 ROM2:64B6 21 E1 FF ld hl,FFE1 ROM2:64B9 7E ld a,(hl) ROM2:64BA C6 02 add a,02 ROM2:64BC 22 ldi (hl),a ROM2:64BD 7E ld a,(hl) ROM2:64BE D6 02 sub 02 ROM2:64C0 77 ld (hl),a ROM2:64C1 CD BA 49 call 49BA ROM2:64C4 FA 02 C4 ld a,(C402) ROM2:64C7 CB 4F bit 1,a ROM2:64C9 C8 ret z ROM2:64CA 3E 55 ld a,55 ROM2:64CC E0 E3 ld (FF00+E3),a ROM2:64CE 21 E1 FF ld hl,FFE1 ROM2:64D1 7E ld a,(hl) ROM2:64D2 D6 04 sub 04 ROM2:64D4 77 ld (hl),a ROM2:64D5 3E 03 ld a,03 ;\ ROM2:64D7 EA D5 CE ld (CED5),a ;} Play sound effect 3 ROM2:64DA C9 ret ROM2:64DB 36 56 ld (hl),56 ROM2:64DD 21 E1 FF ld hl,FFE1 ROM2:64E0 7E ld a,(hl) ROM2:64E1 D6 08 sub 08 ROM2:64E3 77 ld (hl),a ROM2:64E4 C9 ret ROM2:64E5 CD A6 3C call 3CA6 ROM2:64E8 3E FF ld a,FF ROM2:64EA E0 EF ld (FF00+EF),a ROM2:64EC C9 ret ROM2:64ED FE 5B cp 5B ROM2:64EF 28 F4 jr z,64E5 ROM2:64F1 FE 59 cp 59 ROM2:64F3 30 1A jr nc,650F ROM2:64F5 21 E2 FF ld hl,FFE2 ROM2:64F8 7E ld a,(hl) ROM2:64F9 D6 03 sub 03 ROM2:64FB 77 ld (hl),a ROM2:64FC CD E1 47 call 47E1 ROM2:64FF FA 02 C4 ld a,(C402) ROM2:6502 CB 57 bit 2,a ROM2:6504 C8 ret z ROM2:6505 3E 59 ld a,59 ROM2:6507 E0 E3 ld (FF00+E3),a ROM2:6509 3E 03 ld a,03 ;\ ROM2:650B EA D5 CE ld (CED5),a ;} Play sound effect 3 ROM2:650E C9 ret ROM2:650F 34 inc (hl) ROM2:6510 C9 ret } ROM2:6511 db 57,00,00,00,00,00,00,00,00,FE,01,8C,63,57,00,00, 00,00,00,00,00,00,FE,02,8C,63,54,00,00,00,00,00, 00,00,00,FE,03,8C,63 ;;; $6538: (unit) ;;; { ROM2:6538 F0 FE ld a,(FF00+FE) ROM2:653A E6 07 and 07 ROM2:653C C0 ret nz ROM2:653D 36 51 ld (hl),51 ROM2:653F C9 ret } ;;; $6540: Enemy AI - enemy 5Ch (autom) ;;; { ROM2:6540 F0 EF ld a,(FF00+EF) ROM2:6542 FE 03 cp 03 ROM2:6544 C8 ret z ROM2:6545 E6 0F and 0F ROM2:6547 28 52 jr z,659B ROM2:6549 FA 04 FF ld a,(FF04) ;div ROM2:654C E6 1F and 1F ROM2:654E 28 2A jr z,657A ROM2:6550 3E 5C ld a,5C ROM2:6552 E0 E3 ld (FF00+E3),a ROM2:6554 11 E2 FF ld de,FFE2 ROM2:6557 21 E9 FF ld hl,FFE9 ROM2:655A F0 EA ld a,(FF00+EA) ROM2:655C A7 and a ROM2:655D 20 13 jr nz,6572 ROM2:655F 34 inc (hl) ROM2:6560 7E ld a,(hl) ROM2:6561 FE 20 cp 20 ROM2:6563 28 05 jr z,656A ROM2:6565 1A ld a,(de) ROM2:6566 C6 03 add a,03 ROM2:6568 12 ld (de),a ROM2:6569 C9 ret ROM2:656A 21 EA FF ld hl,FFEA ROM2:656D 7E ld a,(hl) ROM2:656E EE 01 xor 01 ROM2:6570 77 ld (hl),a ROM2:6571 C9 ret ROM2:6572 35 dec (hl) ROM2:6573 28 F5 jr z,656A ROM2:6575 1A ld a,(de) ROM2:6576 D6 03 sub 03 ROM2:6578 12 ld (de),a ROM2:6579 C9 ret ROM2:657A CD F6 3D call 3DF6 ROM2:657D AF xor a ROM2:657E 22 ldi (hl),a ROM2:657F F0 E1 ld a,(FF00+E1) ROM2:6581 C6 10 add a,10 ROM2:6583 22 ldi (hl),a ROM2:6584 F0 E2 ld a,(FF00+E2) ROM2:6586 3C inc a ROM2:6587 22 ldi (hl),a ROM2:6588 CD 21 6B call 6B21 ROM2:658B 11 C8 65 ld de,65C8 ROM2:658E CD 35 72 call 7235 ROM2:6591 21 E3 FF ld hl,FFE3 ROM2:6594 36 5D ld (hl),5D ROM2:6596 3E 03 ld a,03 ROM2:6598 E0 EF ld (FF00+EF),a ROM2:659A C9 ret ROM2:659B 3E 07 ld a,07 ;\ ROM2:659D EA C7 CE ld (CEC7),a ;} Play sound effect 7 ROM2:65A0 21 E3 FF ld hl,FFE3 ROM2:65A3 7E ld a,(hl) ROM2:65A4 FE 60 cp 60 ROM2:65A6 28 0B jr z,65B3 ROM2:65A8 30 0B jr nc,65B5 ROM2:65AA 34 inc (hl) ROM2:65AB 21 E1 FF ld hl,FFE1 ROM2:65AE 7E ld a,(hl) ROM2:65AF C6 08 add a,08 ROM2:65B1 77 ld (hl),a ROM2:65B2 C9 ret ROM2:65B3 34 inc (hl) ROM2:65B4 C9 ret ROM2:65B5 CD 47 6B call 6B47 ROM2:65B8 21 E9 FF ld hl,FFE9 ROM2:65BB 34 inc (hl) ROM2:65BC 7E ld a,(hl) ROM2:65BD FE 20 cp 20 ROM2:65BF C0 ret nz ROM2:65C0 CD A6 3C call 3CA6 ROM2:65C3 3E FF ld a,FF ROM2:65C5 E0 EF ld (FF00+EF),a ROM2:65C7 C9 ret } ROM2:65C8 5E db 5E,00,00,00,00,00,00,00,00,FF,00,40,65 ;;; $65D5: Enemy AI - enemy 6Eh/72h (??? / proboscum) ;;; { ROM2:65D5 21 E3 FF ld hl,FFE3 ROM2:65D8 7E ld a,(hl) ROM2:65D9 FE 6E cp 6E ROM2:65DB 20 02 jr nz,65DF ROM2:65DD 36 72 ld (hl),72 ROM2:65DF F0 EA ld a,(FF00+EA) ROM2:65E1 3D dec a ROM2:65E2 28 19 jr z,65FD ROM2:65E4 3D dec a ROM2:65E5 28 03 jr z,65EA ROM2:65E7 3D dec a ROM2:65E8 28 26 jr z,6610 ROM2:65EA 21 E9 FF ld hl,FFE9 ROM2:65ED 34 inc (hl) ROM2:65EE 7E ld a,(hl) ROM2:65EF FE 40 cp 40 ROM2:65F1 C0 ret nz ROM2:65F2 36 00 ld (hl),00 ROM2:65F4 3E 73 ld a,73 ROM2:65F6 E0 E3 ld (FF00+E3),a ROM2:65F8 21 EA FF ld hl,FFEA ROM2:65FB 34 inc (hl) ROM2:65FC C9 ret ROM2:65FD 21 E9 FF ld hl,FFE9 ROM2:6600 34 inc (hl) ROM2:6601 7E ld a,(hl) ROM2:6602 FE 02 cp 02 ROM2:6604 C0 ret nz ROM2:6605 36 00 ld (hl),00 ROM2:6607 3E 74 ld a,74 ROM2:6609 E0 E3 ld (FF00+E3),a ROM2:660B 3E 02 ld a,02 ROM2:660D E0 EA ld (FF00+EA),a ROM2:660F C9 ret ROM2:6610 21 E9 FF ld hl,FFE9 ROM2:6613 34 inc (hl) ROM2:6614 7E ld a,(hl) ROM2:6615 FE 02 cp 02 ROM2:6617 C0 ret nz ROM2:6618 36 00 ld (hl),00 ROM2:661A 3E 72 ld a,72 ROM2:661C E0 E3 ld (FF00+E3),a ROM2:661E AF xor a ROM2:661F E0 EA ld (FF00+EA),a ROM2:6621 C9 ret } ;;; $6622: Enemy AI - enemy 75h (missile block) ;;; { ROM2:6622 CD A0 7D call 7DA0 ROM2:6625 21 EA FF ld hl,FFEA ROM2:6628 7E ld a,(hl) ROM2:6629 3D dec a ROM2:662A 28 34 jr z,6660 ROM2:662C 3D dec a ROM2:662D 28 63 jr z,6692 ROM2:662F 3D dec a ROM2:6630 CA AE 66 jp z,66AE ROM2:6633 FA 6D C4 ld a,(C46D) ROM2:6636 FE 20 cp 20 ROM2:6638 D0 ret nc ROM2:6639 47 ld b,a ROM2:663A 3E 0F ld a,0F ;\ ROM2:663C EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:663F 78 ld a,b ROM2:6640 FE 08 cp 08 ROM2:6642 C0 ret nz ROM2:6643 3E FF ld a,FF ROM2:6645 EA C0 CE ld (CEC0),a ROM2:6648 3E 08 ld a,08 ;\ ROM2:664A EA D5 CE ld (CED5),a ;} Play shot missile door with missile sound effect ROM2:664D FA 6E C4 ld a,(C46E) ROM2:6650 CB 47 bit 0,a ROM2:6652 20 04 jr nz,6658 ROM2:6654 3E 02 ld a,02 ROM2:6656 E0 E8 ld (FF00+E8),a ROM2:6658 3E 01 ld a,01 ROM2:665A E0 EA ld (FF00+EA),a ROM2:665C 3E 01 ld a,01 ROM2:665E E0 E7 ld (FF00+E7),a ROM2:6660 F0 E9 ld a,(FF00+E9) ROM2:6662 FE 0A cp 0A ROM2:6664 28 25 jr z,668B ROM2:6666 CD 7C 67 call 677C ROM2:6669 F0 E8 ld a,(FF00+E8) ROM2:666B A7 and a ROM2:666C 28 05 jr z,6673 ROM2:666E CD D9 67 call 67D9 ROM2:6671 18 03 jr 6676 ROM2:6673 CD 03 68 call 6803 ROM2:6676 CD C0 66 call 66C0 ROM2:6679 CD 28 4A call 4A28 ROM2:667C FA 02 C4 ld a,(C402) ROM2:667F CB 4F bit 1,a ROM2:6681 C8 ret z ROM2:6682 3E 03 ld a,03 ROM2:6684 E0 EA ld (FF00+EA),a ROM2:6686 3E E2 ld a,E2 ROM2:6688 E0 E3 ld (FF00+E3),a ROM2:668A C9 ret ROM2:668B AF xor a ROM2:668C E0 E9 ld (FF00+E9),a ROM2:668E 3E 02 ld a,02 ROM2:6690 E0 EA ld (FF00+EA),a ROM2:6692 21 E1 FF ld hl,FFE1 ROM2:6695 7E ld a,(hl) ROM2:6696 C6 04 add a,04 ROM2:6698 77 ld (hl),a ROM2:6699 CD 7B 6A call 6A7B ROM2:669C 2C inc l ROM2:669D 06 01 ld b,01 ROM2:669F F0 E8 ld a,(FF00+E8) ROM2:66A1 A7 and a ROM2:66A2 28 05 jr z,66A9 ROM2:66A4 7E ld a,(hl) ROM2:66A5 90 sub b ROM2:66A6 77 ld (hl),a ROM2:66A7 18 CD jr 6676 ROM2:66A9 7E ld a,(hl) ROM2:66AA 80 add a,b ROM2:66AB 77 ld (hl),a ROM2:66AC 18 C8 jr 6676 ROM2:66AE 21 E3 FF ld hl,FFE3 ROM2:66B1 7E ld a,(hl) ROM2:66B2 FE E7 cp E7 ROM2:66B4 28 02 jr z,66B8 ROM2:66B6 34 inc (hl) ROM2:66B7 C9 ret ROM2:66B8 CD A6 3C call 3CA6 ROM2:66BB 3E 02 ld a,02 ROM2:66BD E0 EF ld (FF00+EF),a ROM2:66BF C9 ret } ;;; $66C0: ;;; { ROM2:66C0 F0 FE ld a,(FF00+FE) ROM2:66C2 E6 03 and 03 ROM2:66C4 C0 ret nz ROM2:66C5 21 E5 FF ld hl,FFE5 ROM2:66C8 F0 E8 ld a,(FF00+E8) ROM2:66CA A7 and a ROM2:66CB 20 18 jr nz,66E5 ROM2:66CD 7E ld a,(hl) ROM2:66CE A7 and a ROM2:66CF 28 0E jr z,66DF ROM2:66D1 FE 20 cp 20 ROM2:66D3 28 07 jr z,66DC ROM2:66D5 FE 40 cp 40 ROM2:66D7 28 09 jr z,66E2 ROM2:66D9 36 20 ld (hl),20 ROM2:66DB C9 ret ROM2:66DC 36 00 ld (hl),00 ROM2:66DE C9 ret ROM2:66DF 36 40 ld (hl),40 ROM2:66E1 C9 ret ROM2:66E2 36 60 ld (hl),60 ROM2:66E4 C9 ret ROM2:66E5 7E ld a,(hl) ROM2:66E6 A7 and a ROM2:66E7 28 F0 jr z,66D9 ROM2:66E9 FE 20 cp 20 ROM2:66EB 28 F5 jr z,66E2 ROM2:66ED FE 40 cp 40 ROM2:66EF 28 EB jr z,66DC ROM2:66F1 18 EC jr 66DF } ;;; $66F3: Enemy AI - enemy 68h (noto) ;;; { ROM2:66F3 CD 26 67 call 6726 ROM2:66F6 F0 FE ld a,(FF00+FE) ROM2:66F8 E6 01 and 01 ROM2:66FA C0 ret nz ROM2:66FB 21 E2 FF ld hl,FFE2 ROM2:66FE 06 02 ld b,02 ROM2:6700 F0 E8 ld a,(FF00+E8) ROM2:6702 E6 0F and 0F ROM2:6704 28 1B jr z,6721 ROM2:6706 7E ld a,(hl) ROM2:6707 90 sub b ROM2:6708 77 ld (hl),a ROM2:6709 CD BB 4A call 4ABB ROM2:670C FA 02 C4 ld a,(C402) ROM2:670F CB 4F bit 1,a ROM2:6711 C0 ret nz ROM2:6712 21 E5 FF ld hl,FFE5 ROM2:6715 7E ld a,(hl) ROM2:6716 EE 20 xor 20 ROM2:6718 77 ld (hl),a ROM2:6719 21 E8 FF ld hl,FFE8 ROM2:671C 7E ld a,(hl) ROM2:671D EE 32 xor 32 ROM2:671F 77 ld (hl),a ROM2:6720 C9 ret ROM2:6721 7E ld a,(hl) ROM2:6722 80 add a,b ROM2:6723 77 ld (hl),a ROM2:6724 18 E3 jr 6709 } ;;; $6726: (unit) ;;; { ROM2:6726 F0 FE ld a,(FF00+FE) ROM2:6728 E6 01 and 01 ROM2:672A C0 ret nz ROM2:672B 21 E3 FF ld hl,FFE3 ROM2:672E 7E ld a,(hl) ROM2:672F FE 68 cp 68 ROM2:6731 20 09 jr nz,673C ROM2:6733 F0 E9 ld a,(FF00+E9) ROM2:6735 A7 and a ROM2:6736 28 02 jr z,673A ROM2:6738 34 inc (hl) ROM2:6739 C9 ret ROM2:673A 35 dec (hl) ROM2:673B C9 ret ROM2:673C 36 68 ld (hl),68 ROM2:673E 21 E9 FF ld hl,FFE9 ROM2:6741 7E ld a,(hl) ROM2:6742 EE 01 xor 01 ROM2:6744 77 ld (hl),a ROM2:6745 C9 ret } ;;; $6746: Enemy AI - enemy 6Ah (halzyn) ;;; { ROM2:6746 CD 62 6B call 6B62 ROM2:6749 CD 7C 67 call 677C ROM2:674C F0 E8 ld a,(FF00+E8) ROM2:674E E6 0F and 0F ROM2:6750 28 14 jr z,6766 ROM2:6752 CD D9 67 call 67D9 ROM2:6755 CD 85 48 call 4885 ROM2:6758 FA 02 C4 ld a,(C402) ROM2:675B CB 57 bit 2,a ROM2:675D C8 ret z ROM2:675E 21 E8 FF ld hl,FFE8 ROM2:6761 7E ld a,(hl) ROM2:6762 E6 F0 and F0 ROM2:6764 77 ld (hl),a ROM2:6765 C9 ret ROM2:6766 CD 03 68 call 6803 ROM2:6769 CD AC 46 call 46AC ROM2:676C FA 02 C4 ld a,(C402) ROM2:676F CB 47 bit 0,a ROM2:6771 C8 ret z ROM2:6772 21 E8 FF ld hl,FFE8 ROM2:6775 7E ld a,(hl) ROM2:6776 E6 F0 and F0 ROM2:6778 C6 02 add a,02 ROM2:677A 77 ld (hl),a ROM2:677B C9 ret } ;;; $677C: (unit) ;;; { ROM2:677C 01 E1 FF ld bc,FFE1 ROM2:677F 21 E9 FF ld hl,FFE9 ROM2:6782 7E ld a,(hl) ROM2:6783 FE 0A cp 0A ROM2:6785 20 16 jr nz,679D ROM2:6787 36 00 ld (hl),00 ROM2:6789 21 EA FF ld hl,FFEA ROM2:678C 7E ld a,(hl) ROM2:678D FE 03 cp 03 ROM2:678F 28 03 jr z,6794 ROM2:6791 34 inc (hl) ROM2:6792 18 09 jr 679D ROM2:6794 36 00 ld (hl),00 ROM2:6796 21 E7 FF ld hl,FFE7 ROM2:6799 7E ld a,(hl) ROM2:679A EE 01 xor 01 ROM2:679C 77 ld (hl),a ROM2:679D F0 E9 ld a,(FF00+E9) ROM2:679F 5F ld e,a ROM2:67A0 16 00 ld d,00 ROM2:67A2 F0 EA ld a,(FF00+EA) ROM2:67A4 3D dec a ROM2:67A5 28 0B jr z,67B2 ROM2:67A7 3D dec a ROM2:67A8 28 0D jr z,67B7 ROM2:67AA 3D dec a ROM2:67AB 28 0F jr z,67BC ROM2:67AD 21 2D 68 ld hl,682D ROM2:67B0 18 0D jr 67BF ROM2:67B2 21 37 68 ld hl,6837 ROM2:67B5 18 15 jr 67CC ROM2:67B7 21 2D 68 ld hl,682D ROM2:67BA 18 10 jr 67CC ROM2:67BC 21 37 68 ld hl,6837 } ;;; $67BF: (unit) ;;; { ROM2:67BF 19 add hl,de ROM2:67C0 F0 E7 ld a,(FF00+E7) ROM2:67C2 57 ld d,a ROM2:67C3 0A ld a,(bc) ROM2:67C4 96 sub (hl) ROM2:67C5 CB 42 bit 0,d ROM2:67C7 28 01 jr z,67CA ROM2:67C9 96 sub (hl) ROM2:67CA 02 ld (bc),a ROM2:67CB C9 ret } ;;; $67CC: (unit) ;;; { ROM2:67CC 19 add hl,de ROM2:67CD F0 E7 ld a,(FF00+E7) ROM2:67CF 57 ld d,a ROM2:67D0 0A ld a,(bc) ROM2:67D1 86 add a,(hl) ROM2:67D2 CB 42 bit 0,d ROM2:67D4 28 F4 jr z,67CA ROM2:67D6 86 add a,(hl) ROM2:67D7 02 ld (bc),a ROM2:67D8 C9 ret } ;;; $67D9: ;;; { ROM2:67D9 01 E2 FF ld bc,FFE2 ROM2:67DC 21 E9 FF ld hl,FFE9 ROM2:67DF 7E ld a,(hl) ROM2:67E0 5F ld e,a ROM2:67E1 16 00 ld d,00 ROM2:67E3 34 inc (hl) ROM2:67E4 F0 EA ld a,(FF00+EA) ROM2:67E6 3D dec a ROM2:67E7 28 0B jr z,67F4 ROM2:67E9 3D dec a ROM2:67EA 28 0D jr z,67F9 ROM2:67EC 3D dec a ROM2:67ED 28 0F jr z,67FE ROM2:67EF 21 37 68 ld hl,6837 ROM2:67F2 18 CB jr 67BF ROM2:67F4 21 2D 68 ld hl,682D ROM2:67F7 18 C6 jr 67BF ROM2:67F9 21 37 68 ld hl,6837 ROM2:67FC 18 C1 jr 67BF ROM2:67FE 21 2D 68 ld hl,682D ROM2:6801 18 BC jr 67BF } ;;; $6803: ;;; { ROM2:6803 01 E2 FF ld bc,FFE2 ROM2:6806 21 E9 FF ld hl,FFE9 ROM2:6809 7E ld a,(hl) ROM2:680A 5F ld e,a ROM2:680B 16 00 ld d,00 ROM2:680D 34 inc (hl) ROM2:680E F0 EA ld a,(FF00+EA) ROM2:6810 3D dec a ROM2:6811 28 0B jr z,681E ROM2:6813 3D dec a ROM2:6814 28 0D jr z,6823 ROM2:6816 3D dec a ROM2:6817 28 0F jr z,6828 ROM2:6819 21 37 68 ld hl,6837 ROM2:681C 18 AE jr 67CC ROM2:681E 21 2D 68 ld hl,682D ROM2:6821 18 A9 jr 67CC ROM2:6823 21 37 68 ld hl,6837 ROM2:6826 18 A4 jr 67CC ROM2:6828 21 2D 68 ld hl,682D ROM2:682B 18 9F jr 67CC } ROM2:682D db 01,01,01,01,01,01,01,00,01,00 ROM2:6837 db 00,01,00,01,01,01,01,01,01,01 ;;; $6841: Enemy AI - enemy 65h (septogg) ;;; { ROM2:6841 CD 4E 6B call 6B4E ROM2:6844 CD A0 7D call 7DA0 ROM2:6847 FA 6D C4 ld a,(C46D) ROM2:684A FE 20 cp 20 ROM2:684C 20 39 jr nz,6887 ROM2:684E FA 3A C4 ld a,(C43A) ROM2:6851 A7 and a ROM2:6852 28 33 jr z,6887 ROM2:6854 06 03 ld b,03 ROM2:6856 21 E1 FF ld hl,FFE1 ROM2:6859 7E ld a,(hl) ROM2:685A 80 add a,b ROM2:685B 77 ld (hl),a ROM2:685C CD D6 4A call 4AD6 ROM2:685F FA 02 C4 ld a,(C402) ROM2:6862 CB 4F bit 1,a ROM2:6864 28 06 jr z,686C ROM2:6866 FA 1E C4 ld a,(C41E) ROM2:6869 E0 E1 ld (FF00+E1),a ROM2:686B C9 ret ROM2:686C 06 03 ld b,03 ROM2:686E 21 E9 FF ld hl,FFE9 ROM2:6871 7E ld a,(hl) ROM2:6872 80 add a,b ROM2:6873 22 ldi (hl),a ROM2:6874 7E ld a,(hl) ROM2:6875 CE 00 adc a,00 ROM2:6877 77 ld (hl),a ROM2:6878 21 3B D0 ld hl,D03B ROM2:687B 7E ld a,(hl) ROM2:687C 80 add a,b ROM2:687D 77 ld (hl),a ROM2:687E 21 C0 FF ld hl,FFC0 ROM2:6881 7E ld a,(hl) ROM2:6882 80 add a,b ROM2:6883 22 ldi (hl),a ROM2:6884 D0 ret nc ROM2:6885 34 inc (hl) ROM2:6886 C9 ret ROM2:6887 21 E9 FF ld hl,FFE9 ROM2:688A 7E ld a,(hl) ROM2:688B A7 and a ROM2:688C 20 04 jr nz,6892 ROM2:688E 2C inc l ROM2:688F 7E ld a,(hl) ROM2:6890 A7 and a ROM2:6891 C8 ret z ROM2:6892 21 E1 FF ld hl,FFE1 ROM2:6895 35 dec (hl) ROM2:6896 21 E9 FF ld hl,FFE9 ROM2:6899 35 dec (hl) ROM2:689A 7E ld a,(hl) ROM2:689B 3C inc a ROM2:689C C0 ret nz ROM2:689D 2C inc l ROM2:689E 35 dec (hl) ROM2:689F C9 ret } ;;; $68A0: Enemy AI - enemy D0h (flitt) (unit) ;;; { ROM2:68A0 11 E3 FF ld de,FFE3 ROM2:68A3 21 EA FF ld hl,FFEA ROM2:68A6 7E ld a,(hl) ROM2:68A7 3D dec a ROM2:68A8 28 19 jr z,68C3 ROM2:68AA 3D dec a ROM2:68AB 28 29 jr z,68D6 ROM2:68AD 3D dec a ROM2:68AE 28 39 jr z,68E9 ROM2:68B0 21 E9 FF ld hl,FFE9 ROM2:68B3 34 inc (hl) ROM2:68B4 7E ld a,(hl) ROM2:68B5 FE 38 cp 38 ROM2:68B7 C0 ret nz ROM2:68B8 36 00 ld (hl),00 ROM2:68BA 3E 01 ld a,01 ROM2:68BC E0 EA ld (FF00+EA),a ROM2:68BE 3E D1 ld a,D1 ROM2:68C0 E0 E3 ld (FF00+E3),a ROM2:68C2 C9 ret ROM2:68C3 21 E9 FF ld hl,FFE9 ROM2:68C6 34 inc (hl) ROM2:68C7 7E ld a,(hl) ROM2:68C8 FE 0E cp 0E ROM2:68CA C0 ret nz ROM2:68CB 36 00 ld (hl),00 ROM2:68CD 3E 02 ld a,02 ROM2:68CF E0 EA ld (FF00+EA),a ROM2:68D1 3E FD ld a,FD ROM2:68D3 E0 E3 ld (FF00+E3),a ROM2:68D5 C9 ret ROM2:68D6 21 E9 FF ld hl,FFE9 ROM2:68D9 34 inc (hl) ROM2:68DA 7E ld a,(hl) ROM2:68DB FE 0C cp 0C ROM2:68DD C0 ret nz ROM2:68DE 36 00 ld (hl),00 ROM2:68E0 3E 03 ld a,03 ROM2:68E2 E0 EA ld (FF00+EA),a ROM2:68E4 3E D1 ld a,D1 ROM2:68E6 E0 E3 ld (FF00+E3),a ROM2:68E8 C9 ret ROM2:68E9 21 E9 FF ld hl,FFE9 ROM2:68EC 34 inc (hl) ROM2:68ED 7E ld a,(hl) ROM2:68EE FE 0D cp 0D ROM2:68F0 C0 ret nz ROM2:68F1 36 00 ld (hl),00 ROM2:68F3 3E 00 ld a,00 ROM2:68F5 E0 EA ld (FF00+EA),a ROM2:68F7 3E D0 ld a,D0 ROM2:68F9 E0 E3 ld (FF00+E3),a ROM2:68FB C9 ret } ;;; $68FC: Enemy AI - enemy D1h (flitt) ;;; { ROM2:68FC CD 3A 6B call 6B3A ROM2:68FF CD A0 7D call 7DA0 ROM2:6902 F0 E8 ld a,(FF00+E8) ROM2:6904 A7 and a ROM2:6905 20 2C jr nz,6933 ROM2:6907 21 E9 FF ld hl,FFE9 ROM2:690A 34 inc (hl) ROM2:690B 7E ld a,(hl) ROM2:690C FE 60 cp 60 ROM2:690E 28 1F jr z,692F ROM2:6910 21 E2 FF ld hl,FFE2 ROM2:6913 34 inc (hl) ROM2:6914 FA 6D C4 ld a,(C46D) ROM2:6917 FE 20 cp 20 ROM2:6919 C0 ret nz ROM2:691A FA 3A C4 ld a,(C43A) ROM2:691D A7 and a ROM2:691E C8 ret z ROM2:691F 21 3C D0 ld hl,D03C ROM2:6922 34 inc (hl) ROM2:6923 21 35 D0 ld hl,D035 ROM2:6926 34 inc (hl) ROM2:6927 21 C2 FF ld hl,FFC2 ROM2:692A 34 inc (hl) ROM2:692B C0 ret nz ROM2:692C 2C inc l ROM2:692D 34 inc (hl) ROM2:692E C9 ret ROM2:692F 3E 02 ld a,02 ROM2:6931 E0 E8 ld (FF00+E8),a ROM2:6933 21 E9 FF ld hl,FFE9 ROM2:6936 35 dec (hl) ROM2:6937 28 22 jr z,695B ROM2:6939 21 E2 FF ld hl,FFE2 ROM2:693C 35 dec (hl) ROM2:693D FA 6D C4 ld a,(C46D) ROM2:6940 FE 20 cp 20 ROM2:6942 C0 ret nz ROM2:6943 FA 3A C4 ld a,(C43A) ROM2:6946 A7 and a ROM2:6947 C8 ret z ROM2:6948 21 3C D0 ld hl,D03C ROM2:694B 35 dec (hl) ROM2:694C 21 36 D0 ld hl,D036 ROM2:694F 34 inc (hl) ROM2:6950 21 C2 FF ld hl,FFC2 ROM2:6953 35 dec (hl) ROM2:6954 7E ld a,(hl) ROM2:6955 FE FF cp FF ROM2:6957 C0 ret nz ROM2:6958 2C inc l ROM2:6959 35 dec (hl) ROM2:695A C9 ret ROM2:695B AF xor a ROM2:695C E0 E8 ld (FF00+E8),a ROM2:695E C9 ret } ;;; $695F: Enemy AI - enemy D3h (gravitt) ;;; { ROM2:695F 21 EA FF ld hl,FFEA ROM2:6962 7E ld a,(hl) ROM2:6963 3D dec a ROM2:6964 28 39 jr z,699F ROM2:6966 3D dec a ROM2:6967 28 4C jr z,69B5 ROM2:6969 3D dec a ROM2:696A 28 49 jr z,69B5 ROM2:696C 3D dec a ROM2:696D 28 6F jr z,69DE ROM2:696F 3D dec a ROM2:6970 CA F8 69 jp z,69F8 ROM2:6973 21 E2 FF ld hl,FFE2 ROM2:6976 06 00 ld b,00 ROM2:6978 FA 3C D0 ld a,(D03C) ROM2:697B 96 sub (hl) ROM2:697C 30 03 jr nc,6981 ROM2:697E 2F cpl ROM2:697F 3C inc a ROM2:6980 04 inc b ROM2:6981 FE 38 cp 38 ROM2:6983 D0 ret nc ROM2:6984 21 E3 FF ld hl,FFE3 ROM2:6987 34 inc (hl) ROM2:6988 21 E1 FF ld hl,FFE1 ROM2:698B 35 dec (hl) ROM2:698C 35 dec (hl) ROM2:698D 3E 01 ld a,01 ROM2:698F E0 EA ld (FF00+EA),a ROM2:6991 78 ld a,b ROM2:6992 A7 and a ROM2:6993 20 05 jr nz,699A ROM2:6995 3E 80 ld a,80 ROM2:6997 E0 E8 ld (FF00+E8),a ROM2:6999 C9 ret ROM2:699A 3E 82 ld a,82 ROM2:699C E0 E8 ld (FF00+E8),a ROM2:699E C9 ret ROM2:699F 21 E9 FF ld hl,FFE9 ROM2:69A2 34 inc (hl) ROM2:69A3 7E ld a,(hl) ROM2:69A4 FE 06 cp 06 ROM2:69A6 28 06 jr z,69AE ROM2:69A8 21 E1 FF ld hl,FFE1 ROM2:69AB 35 dec (hl) ROM2:69AC 35 dec (hl) ROM2:69AD C9 ret ROM2:69AE AF xor a ROM2:69AF 22 ldi (hl),a ROM2:69B0 3E 02 ld a,02 ROM2:69B2 E0 EA ld (FF00+EA),a ROM2:69B4 C9 ret ROM2:69B5 CD 04 6A call 6A04 ROM2:69B8 21 E9 FF ld hl,FFE9 ROM2:69BB 34 inc (hl) ROM2:69BC 7E ld a,(hl) ROM2:69BD FE 18 cp 18 ROM2:69BF 28 0F jr z,69D0 ROM2:69C1 21 E2 FF ld hl,FFE2 ROM2:69C4 F0 E8 ld a,(FF00+E8) ROM2:69C6 CB 4F bit 1,a ROM2:69C8 28 03 jr z,69CD ROM2:69CA 35 dec (hl) ROM2:69CB 35 dec (hl) ROM2:69CC C9 ret ROM2:69CD 34 inc (hl) ROM2:69CE 34 inc (hl) ROM2:69CF C9 ret ROM2:69D0 36 00 ld (hl),00 ROM2:69D2 21 E8 FF ld hl,FFE8 ROM2:69D5 7E ld a,(hl) ROM2:69D6 EE 02 xor 02 ROM2:69D8 77 ld (hl),a ROM2:69D9 21 EA FF ld hl,FFEA ROM2:69DC 34 inc (hl) ROM2:69DD C9 ret ROM2:69DE 21 E9 FF ld hl,FFE9 ROM2:69E1 34 inc (hl) ROM2:69E2 7E ld a,(hl) ROM2:69E3 FE 07 cp 07 ROM2:69E5 28 06 jr z,69ED ROM2:69E7 21 E1 FF ld hl,FFE1 ROM2:69EA 34 inc (hl) ROM2:69EB 34 inc (hl) ROM2:69EC C9 ret ROM2:69ED AF xor a ROM2:69EE 22 ldi (hl),a ROM2:69EF 3E 05 ld a,05 ROM2:69F1 E0 EA ld (FF00+EA),a ROM2:69F3 3E D3 ld a,D3 ROM2:69F5 E0 E3 ld (FF00+E3),a ROM2:69F7 C9 ret ROM2:69F8 21 E9 FF ld hl,FFE9 ROM2:69FB 34 inc (hl) ROM2:69FC 7E ld a,(hl) ROM2:69FD FE 30 cp 30 ROM2:69FF C0 ret nz ROM2:6A00 AF xor a ROM2:6A01 22 ldi (hl),a ROM2:6A02 77 ld (hl),a ROM2:6A03 C9 ret } ;;; $6A04: (unit) ;;; { ROM2:6A04 F0 FE ld a,(FF00+FE) ROM2:6A06 E6 01 and 01 ROM2:6A08 C0 ret nz ROM2:6A09 21 E3 FF ld hl,FFE3 ROM2:6A0C 34 inc (hl) ROM2:6A0D 7E ld a,(hl) ROM2:6A0E FE D8 cp D8 ROM2:6A10 C0 ret nz ROM2:6A11 36 D4 ld (hl),D4 ROM2:6A13 C9 ret } ;;; $6A14: Enemy AI - enemy F8h ;;; { ROM2:6A14 CD A0 7D call 7DA0 ROM2:6A17 21 E3 FF ld hl,FFE3 ROM2:6A1A 7E ld a,(hl) ROM2:6A1B FE F8 cp F8 ROM2:6A1D 20 42 jr nz,6A61 ROM2:6A1F FA 6D C4 ld a,(C46D) ROM2:6A22 FE 20 cp 20 ROM2:6A24 D0 ret nc ROM2:6A25 47 ld b,a ROM2:6A26 3E 0F ld a,0F ;\ ROM2:6A28 EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:6A2B 78 ld a,b ROM2:6A2C FE 08 cp 08 ROM2:6A2E C0 ret nz ROM2:6A2F 3E FF ld a,FF ROM2:6A31 EA C0 CE ld (CEC0),a ROM2:6A34 3E 08 ld a,08 ;\ ROM2:6A36 EA D5 CE ld (CED5),a ;} Play shot missile door with missile sound effect ROM2:6A39 3E 13 ld a,13 ROM2:6A3B E0 E6 ld (FF00+E6),a ROM2:6A3D 21 E9 FF ld hl,FFE9 ROM2:6A40 34 inc (hl) ROM2:6A41 7E ld a,(hl) ROM2:6A42 FE 05 cp 05 ROM2:6A44 C0 ret nz ROM2:6A45 AF xor a ROM2:6A46 77 ld (hl),a ROM2:6A47 E0 E6 ld (FF00+E6),a ROM2:6A49 3E E2 ld a,E2 ROM2:6A4B E0 E3 ld (FF00+E3),a ROM2:6A4D 3E 10 ld a,10 ;\ ROM2:6A4F EA C0 CE ld (CEC0),a ;} Play sound effect 10h ROM2:6A52 FA 6E C4 ld a,(C46E) ROM2:6A55 CB 4F bit 1,a ROM2:6A57 20 12 jr nz,6A6B ROM2:6A59 21 E2 FF ld hl,FFE2 ROM2:6A5C 7E ld a,(hl) ROM2:6A5D D6 18 sub 18 ROM2:6A5F 77 ld (hl),a ROM2:6A60 C9 ret ROM2:6A61 21 E3 FF ld hl,FFE3 ROM2:6A64 7E ld a,(hl) ROM2:6A65 FE E7 cp E7 ROM2:6A67 28 0A jr z,6A73 ROM2:6A69 34 inc (hl) ROM2:6A6A C9 ret ROM2:6A6B 21 E2 FF ld hl,FFE2 ROM2:6A6E 7E ld a,(hl) ROM2:6A6F C6 18 add a,18 ROM2:6A71 77 ld (hl),a ROM2:6A72 C9 ret ROM2:6A73 CD A6 3C call 3CA6 ROM2:6A76 3E 02 ld a,02 ROM2:6A78 E0 EF ld (FF00+EF),a ROM2:6A7A C9 ret } ;;; $6A7B: (unit) ;;; { ROM2:6A7B C5 push bc ROM2:6A7C D5 push de ROM2:6A7D E5 push hl ROM2:6A7E 01 E7 FF ld bc,FFE7 ROM2:6A81 0A ld a,(bc) ROM2:6A82 FE 17 cp 17 ROM2:6A84 28 02 jr z,6A88 ROM2:6A86 3C inc a ROM2:6A87 02 ld (bc),a ROM2:6A88 5F ld e,a ROM2:6A89 16 00 ld d,00 ROM2:6A8B 21 96 6A ld hl,6A96 ROM2:6A8E 19 add hl,de ROM2:6A8F 7E ld a,(hl) ROM2:6A90 E1 pop hl ROM2:6A91 86 add a,(hl) ROM2:6A92 77 ld (hl),a ROM2:6A93 D1 pop de ROM2:6A94 C1 pop bc ROM2:6A95 C9 ret ROM2:6A96 db 00,00,01,00,01,00,01,01,02,01,02,01,02,02,03,02, 03,03,04,03,04,04,03,04 } ;;; $6AAE: (unit) ;;; { ROM2:6AAE C5 push bc ROM2:6AAF D5 push de ROM2:6AB0 E5 push hl ROM2:6AB1 01 E7 FF ld bc,FFE7 ROM2:6AB4 0A ld a,(bc) ROM2:6AB5 FE 17 cp 17 ROM2:6AB7 28 02 jr z,6ABB ROM2:6AB9 3C inc a ROM2:6ABA 02 ld (bc),a ROM2:6ABB 5F ld e,a ROM2:6ABC 16 00 ld d,00 ROM2:6ABE 21 C9 6A ld hl,6AC9 ROM2:6AC1 19 add hl,de ROM2:6AC2 7E ld a,(hl) ROM2:6AC3 E1 pop hl ROM2:6AC4 86 add a,(hl) ROM2:6AC5 77 ld (hl),a ROM2:6AC6 D1 pop de ROM2:6AC7 C1 pop bc ROM2:6AC8 C9 ret ROM2:6AC9 db 00,00,FF,00,FF,00,FF,FF,FE,FF,FE,FF,FE,FE,FD,FE, FD,FD,FC,FD,FC,FC,FD,FC } ;;; $6AE1: (unit) ;;; { ROM2:6AE1 C5 push bc ROM2:6AE2 D5 push de ROM2:6AE3 E5 push hl ROM2:6AE4 01 E7 FF ld bc,FFE7 ROM2:6AE7 0A ld a,(bc) ROM2:6AE8 FE 17 cp 17 ROM2:6AEA 28 02 jr z,6AEE ROM2:6AEC 3C inc a ROM2:6AED 02 ld (bc),a ROM2:6AEE 5F ld e,a ROM2:6AEF 16 00 ld d,00 ROM2:6AF1 21 09 6B ld hl,6B09 ROM2:6AF4 19 add hl,de ROM2:6AF5 CB 7E bit 7,(hl) ROM2:6AF7 28 09 jr z,6B02 ROM2:6AF9 7E ld a,(hl) ROM2:6AFA 2F cpl ROM2:6AFB 3C inc a ROM2:6AFC 47 ld b,a ROM2:6AFD E1 pop hl ROM2:6AFE 7E ld a,(hl) ROM2:6AFF 90 sub b ROM2:6B00 18 03 jr 6B05 ROM2:6B02 7E ld a,(hl) ROM2:6B03 E1 pop hl ROM2:6B04 86 add a,(hl) ROM2:6B05 77 ld (hl),a ROM2:6B06 D1 pop de ROM2:6B07 C1 pop bc ROM2:6B08 C9 ret ROM2:6B09 db 00,FE,FE,FE,FF,FE,FE,FF,FF,FE,FF,FF,FF,00,FF,FF, 00,FF,00,00,FF,00,00,00 } ;;; $6B21: (unit) ;;; { ROM2:6B21 F0 FD ld a,(FF00+FD) ROM2:6B23 FE C6 cp C6 ROM2:6B25 20 04 jr nz,6B2B ROM2:6B27 F0 FC ld a,(FF00+FC) ROM2:6B29 18 04 jr 6B2F ROM2:6B2B F0 FC ld a,(FF00+FC) ROM2:6B2D C6 10 add a,10 ROM2:6B2F EA 77 C4 ld (C477),a ROM2:6B32 C9 ret } ;;; $6B33: ;;; { ROM2:6B33 F0 FE ld a,(FF00+FE) ROM2:6B35 E6 01 and 01 ROM2:6B37 C0 ret nz ROM2:6B38 18 05 jr 6B3F } ;;; $6B3A: ;;; { ROM2:6B3A F0 FE ld a,(FF00+FE) ROM2:6B3C E6 03 and 03 ROM2:6B3E C0 ret nz } ;;; $6B3F: ;;; { ROM2:6B3F 21 E3 FF ld hl,FFE3 ROM2:6B42 7E ld a,(hl) ROM2:6B43 EE 01 xor 01 ROM2:6B45 77 ld (hl),a ROM2:6B46 C9 ret } ;;; $6B47: ;;; { ROM2:6B47 F0 FE ld a,(FF00+FE) ROM2:6B49 E6 03 and 03 ROM2:6B4B C0 ret nz ROM2:6B4C 18 05 jr 6B53 } ;;; $6B4E: ;;; { ROM2:6B4E F0 FE ld a,(FF00+FE) ROM2:6B50 E6 01 and 01 ROM2:6B52 C0 ret nz } ;;; $6B53: ;;; { ROM2:6B53 21 E3 FF ld hl,FFE3 ROM2:6B56 7E ld a,(hl) ROM2:6B57 EE 03 xor 03 ROM2:6B59 77 ld (hl),a ROM2:6B5A C9 ret } ;;; $6B5B: ;;; { ROM2:6B5B F0 FE ld a,(FF00+FE) ROM2:6B5D E6 01 and 01 ROM2:6B5F C0 ret nz ROM2:6B60 18 05 jr 6B67 } ;;; $6B62: ;;; { ROM2:6B62 F0 FE ld a,(FF00+FE) ROM2:6B64 E6 03 and 03 ROM2:6B66 C0 ret nz } ;;; $6B67: ;;; { ROM2:6B67 21 E5 FF ld hl,FFE5 ROM2:6B6A 7E ld a,(hl) ROM2:6B6B EE 20 xor 20 ROM2:6B6D 77 ld (hl),a ROM2:6B6E C9 ret } ;;; $6B6F: ;;; { ROM2:6B6F F0 FE ld a,(FF00+FE) ROM2:6B71 E6 01 and 01 ROM2:6B73 C0 ret nz ROM2:6B74 18 05 jr 6B7B } ;;; $6B76: ;;; { ROM2:6B76 F0 FE ld a,(FF00+FE) ROM2:6B78 E6 03 and 03 ROM2:6B7A C0 ret nz } ;;; $6B7B: ;;; { ROM2:6B7B 21 E5 FF ld hl,FFE5 ROM2:6B7E 7E ld a,(hl) ROM2:6B7F EE 40 xor 40 ROM2:6B81 77 ld (hl),a ROM2:6B82 C9 ret } ;;; $6B83: Enemy AI - enemy 6Dh ;;; { ROM2:6B83 21 E9 FF ld hl,FFE9 ROM2:6B86 34 inc (hl) ROM2:6B87 7E ld a,(hl) ROM2:6B88 FE 8A cp 8A ROM2:6B8A 28 1A jr z,6BA6 ROM2:6B8C 3D dec a ROM2:6B8D C0 ret nz ROM2:6B8E 21 9A D0 ld hl,D09A ROM2:6B91 7E ld a,(hl) ROM2:6B92 C6 08 add a,08 ROM2:6B94 27 daa ROM2:6B95 77 ld (hl),a ROM2:6B96 3E CA ld a,CA ROM2:6B98 EA 96 D0 ld (D096),a ROM2:6B9B 3E 1F ld a,1F ;\ ROM2:6B9D EA DC CE ld (CEDC),a ;} Play Metroid hive song with intro ROM2:6BA0 3E 01 ld a,01 ROM2:6BA2 EA 63 C4 ld (C463),a ROM2:6BA5 C9 ret ROM2:6BA6 CD A6 3C call 3CA6 ROM2:6BA9 3E 02 ld a,02 ROM2:6BAB E0 EF ld (FF00+EF),a ROM2:6BAD AF xor a ROM2:6BAE EA 63 C4 ld (C463),a ROM2:6BB1 C9 ret } ;;; $6BB2: Enemy AI - enemy A0h (metroid) ;;; { ROM2:6BB2 CD A0 7D call 7DA0 ROM2:6BB5 21 64 C4 ld hl,C464 ROM2:6BB8 7E ld a,(hl) ROM2:6BB9 A7 and a ROM2:6BBA 28 20 jr z,6BDC ROM2:6BBC 35 dec (hl) ROM2:6BBD 28 12 jr z,6BD1 ROM2:6BBF CD F0 6E call 6EF0 ROM2:6BC2 CD F8 7D call 7DF8 ROM2:6BC5 FA 6D C4 ld a,(C46D) ROM2:6BC8 FE 10 cp 10 ROM2:6BCA D0 ret nc ROM2:6BCB 3E 0F ld a,0F ;\ ROM2:6BCD EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:6BD0 C9 ret ROM2:6BD1 AF xor a ROM2:6BD2 E0 E0 ld (FF00+E0),a ROM2:6BD4 3E FF ld a,FF ROM2:6BD6 E0 E8 ld (FF00+E8),a ROM2:6BD8 3E A3 ld a,A3 ROM2:6BDA E0 E3 ld (FF00+E3),a ROM2:6BDC FA 1C C4 ld a,(C41C) ROM2:6BDF FE 02 cp 02 ROM2:6BE1 CA 7D 6C jp z,6C7D ROM2:6BE4 47 ld b,a ROM2:6BE5 F0 EF ld a,(FF00+EF) ROM2:6BE7 FE 04 cp 04 ROM2:6BE9 28 64 jr z,6C4F ROM2:6BEB 4F ld c,a ROM2:6BEC 78 ld a,b ROM2:6BED FE 01 cp 01 ROM2:6BEF CA 99 6D jp z,6D99 ROM2:6BF2 F0 E3 ld a,(FF00+E3) ROM2:6BF4 FE A1 cp A1 ROM2:6BF6 CA B5 6D jp z,6DB5 ROM2:6BF9 FA 63 C4 ld a,(C463) ROM2:6BFC A7 and a ROM2:6BFD 20 2F jr nz,6C2E ROM2:6BFF F0 FE ld a,(FF00+FE) ROM2:6C01 E6 03 and 03 ROM2:6C03 C0 ret nz ROM2:6C04 F0 E6 ld a,(FF00+E6) ROM2:6C06 EE 10 xor 10 ROM2:6C08 E0 E6 ld (FF00+E6),a ROM2:6C0A 21 E2 FF ld hl,FFE2 ROM2:6C0D FA 3C D0 ld a,(D03C) ROM2:6C10 96 sub (hl) ROM2:6C11 30 02 jr nc,6C15 ROM2:6C13 2F cpl ROM2:6C14 3C inc a ROM2:6C15 FE 50 cp 50 ROM2:6C17 D0 ret nc ROM2:6C18 3E 01 ld a,01 ROM2:6C1A EA 63 C4 ld (C463),a ROM2:6C1D 3E 01 ld a,01 ROM2:6C1F EA 65 C4 ld (C465),a ROM2:6C22 FA DD CE ld a,(CEDD) ROM2:6C25 FE 0C cp 0C ROM2:6C27 C8 ret z ROM2:6C28 3E 0C ld a,0C ;\ ROM2:6C2A EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:6C2D C9 ret ROM2:6C2E F0 FE ld a,(FF00+FE) ROM2:6C30 E6 03 and 03 ROM2:6C32 C0 ret nz ROM2:6C33 21 E9 FF ld hl,FFE9 ROM2:6C36 34 inc (hl) ROM2:6C37 7E ld a,(hl) ROM2:6C38 FE 08 cp 08 ROM2:6C3A CA AC 6D jp z,6DAC ROM2:6C3D F0 E6 ld a,(FF00+E6) ROM2:6C3F EE 10 xor 10 ROM2:6C41 E0 E6 ld (FF00+E6),a ROM2:6C43 C9 ret } ;;; $6C44: Enemy AI - enemy A4h (alpha metroid) ;;; { ROM2:6C44 FA 65 C4 ld a,(C465) ROM2:6C47 A7 and a ROM2:6C48 C2 B2 6B jp nz,6BB2 ROM2:6C4B 3E 04 ld a,04 ROM2:6C4D E0 EF ld (FF00+EF),a ROM2:6C4F 3E A3 ld a,A3 ROM2:6C51 E0 E3 ld (FF00+E3),a ROM2:6C53 21 E2 FF ld hl,FFE2 ROM2:6C56 FA 3C D0 ld a,(D03C) ROM2:6C59 96 sub (hl) ROM2:6C5A 30 02 jr nc,6C5E ROM2:6C5C 2F cpl ROM2:6C5D 3C inc a ROM2:6C5E FE 50 cp 50 ROM2:6C60 D0 ret nc ROM2:6C61 AF xor a ROM2:6C62 EA 64 C4 ld (C464),a ROM2:6C65 3E 01 ld a,01 ROM2:6C67 EA 65 C4 ld (C465),a ROM2:6C6A 3E 02 ld a,02 ROM2:6C6C EA 1C C4 ld (C41C),a ROM2:6C6F FA DD CE ld a,(CEDD) ROM2:6C72 FE 0C cp 0C ROM2:6C74 28 1D jr z,6C93 ROM2:6C76 3E 0C ld a,0C ;\ ROM2:6C78 EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:6C7B 18 16 jr 6C93 ROM2:6C7D FA 6D C4 ld a,(C46D) ROM2:6C80 FE 20 cp 20 ROM2:6C82 D2 93 6C jp nc,6C93 ROM2:6C85 FE 10 cp 10 ROM2:6C87 28 60 jr z,6CE9 ROM2:6C89 FE 08 cp 08 ROM2:6C8B 28 65 jr z,6CF2 ROM2:6C8D 3E 0F ld a,0F ;\ ROM2:6C8F EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:6C92 C9 ret ROM2:6C93 F0 E8 ld a,(FF00+E8) ROM2:6C95 3C inc a ROM2:6C96 28 19 jr z,6CB1 ROM2:6C98 CD 7F 6E call 6E7F ROM2:6C9B 21 71 C4 ld hl,C471 ROM2:6C9E 7E ld a,(hl) ROM2:6C9F A7 and a ROM2:6CA0 C8 ret z ROM2:6CA1 36 00 ld (hl),00 ROM2:6CA3 3E FF ld a,FF ROM2:6CA5 E0 E8 ld (FF00+E8),a ROM2:6CA7 3E A3 ld a,A3 ROM2:6CA9 E0 E3 ld (FF00+E3),a ROM2:6CAB AF xor a ROM2:6CAC E0 E9 ld (FF00+E9),a ROM2:6CAE E0 EA ld (FF00+EA),a ROM2:6CB0 C9 ret ROM2:6CB1 21 E9 FF ld hl,FFE9 ROM2:6CB4 7E ld a,(hl) ROM2:6CB5 A7 and a ROM2:6CB6 20 19 jr nz,6CD1 ROM2:6CB8 CD 0C 3D call 3D0C ROM2:6CBB 21 E2 FF ld hl,FFE2 ROM2:6CBE 7E ld a,(hl) ROM2:6CBF C6 10 add a,10 ROM2:6CC1 47 ld b,a ROM2:6CC2 FA 3C D0 ld a,(D03C) ROM2:6CC5 90 sub b ROM2:6CC6 38 06 jr c,6CCE ROM2:6CC8 3E 20 ld a,20 ROM2:6CCA E0 E5 ld (FF00+E5),a ROM2:6CCC 18 03 jr 6CD1 ROM2:6CCE AF xor a ROM2:6CCF E0 E5 ld (FF00+E5),a ROM2:6CD1 21 E9 FF ld hl,FFE9 ROM2:6CD4 34 inc (hl) ROM2:6CD5 7E ld a,(hl) ROM2:6CD6 FE 0E cp 0E ROM2:6CD8 38 05 jr c,6CDF ROM2:6CDA FE 14 cp 14 ROM2:6CDC C0 ret nz ROM2:6CDD 36 00 ld (hl),00 ROM2:6CDF CD 34 3D call 3D34 ROM2:6CE2 CD D4 6D call 6DD4 ROM2:6CE5 CD 39 6E call 6E39 ROM2:6CE8 C9 ret ROM2:6CE9 CD 41 6E call 6E41 ROM2:6CEC 3E 1A ld a,1A ;\ ROM2:6CEE EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:6CF1 C9 ret ROM2:6CF2 21 EC FF ld hl,FFEC ROM2:6CF5 35 dec (hl) ROM2:6CF6 7E ld a,(hl) ROM2:6CF7 A7 and a ROM2:6CF8 28 67 jr z,6D61 ROM2:6CFA 3E 08 ld a,08 ROM2:6CFC EA 64 C4 ld (C464),a ROM2:6CFF 3E 05 ld a,05 ;\ ROM2:6D01 EA D5 CE ld (CED5),a ;} Play metroid hurt sound effect ROM2:6D04 21 E8 FF ld hl,FFE8 ROM2:6D07 36 00 ld (hl),00 ROM2:6D09 FA 6E C4 ld a,(C46E) ROM2:6D0C 47 ld b,a ROM2:6D0D CB 40 bit 0,b ROM2:6D0F 20 2B jr nz,6D3C ROM2:6D11 CB 58 bit 3,b ROM2:6D13 20 12 jr nz,6D27 ROM2:6D15 CB 48 bit 1,b ROM2:6D17 20 2D jr nz,6D46 ROM2:6D19 F0 E1 ld a,(FF00+E1) ROM2:6D1B D6 05 sub 05 ROM2:6D1D FE 10 cp 10 ROM2:6D1F 38 0E jr c,6D2F ROM2:6D21 E0 E1 ld (FF00+E1),a ROM2:6D23 CB DE set 3,(hl) ROM2:6D25 18 08 jr 6D2F ROM2:6D27 CB CE set 1,(hl) ROM2:6D29 F0 E1 ld a,(FF00+E1) ROM2:6D2B C6 05 add a,05 ROM2:6D2D E0 E1 ld (FF00+E1),a ROM2:6D2F FA 04 FF ld a,(FF04) ;div ROM2:6D32 E6 01 and 01 ROM2:6D34 28 03 jr z,6D39 ROM2:6D36 CB C6 set 0,(hl) ROM2:6D38 C9 ret ROM2:6D39 CB D6 set 2,(hl) ROM2:6D3B C9 ret ROM2:6D3C CB C6 set 0,(hl) ROM2:6D3E F0 E2 ld a,(FF00+E2) ROM2:6D40 C6 05 add a,05 ROM2:6D42 E0 E2 ld (FF00+E2),a ROM2:6D44 18 0E jr 6D54 ROM2:6D46 F0 E2 ld a,(FF00+E2) ROM2:6D48 D6 05 sub 05 ROM2:6D4A FE 08 cp 08 ROM2:6D4C 38 06 jr c,6D54 ROM2:6D4E E0 E2 ld (FF00+E2),a ROM2:6D50 CB D6 set 2,(hl) ROM2:6D52 18 00 jr 6D54 ROM2:6D54 FA 04 FF ld a,(FF04) ;div ROM2:6D57 E6 01 and 01 ROM2:6D59 28 03 jr z,6D5E ROM2:6D5B CB CE set 1,(hl) ROM2:6D5D C9 ret ROM2:6D5E CB DE set 3,(hl) ROM2:6D60 C9 ret ROM2:6D61 AF xor a ROM2:6D62 E0 E9 ld (FF00+E9),a ROM2:6D64 E0 EA ld (FF00+EA),a ROM2:6D66 3E 80 ld a,80 ROM2:6D68 EA 1C C4 ld (C41C),a ROM2:6D6B 3E E2 ld a,E2 ROM2:6D6D E0 E3 ld (FF00+E3),a ROM2:6D6F 3E 0D ld a,0D ;\ ROM2:6D71 EA D5 CE ld (CED5),a ;} Play metroid killed sound effect ROM2:6D74 3E 0F ld a,0F ;\ ROM2:6D76 EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:6D79 3E 02 ld a,02 ROM2:6D7B EA 65 C4 ld (C465),a ROM2:6D7E E0 EF ld (FF00+EF),a ROM2:6D80 21 89 D0 ld hl,D089 ROM2:6D83 7E ld a,(hl) ROM2:6D84 D6 01 sub 01 ROM2:6D86 27 daa ROM2:6D87 77 ld (hl),a ROM2:6D88 21 9A D0 ld hl,D09A ROM2:6D8B 7E ld a,(hl) ROM2:6D8C D6 01 sub 01 ROM2:6D8E 27 daa ROM2:6D8F 77 ld (hl),a ROM2:6D90 3E C0 ld a,C0 ROM2:6D92 EA 96 D0 ld (D096),a ROM2:6D95 CD 92 3C call 3C92 ROM2:6D98 C9 ret ROM2:6D99 21 E3 FF ld hl,FFE3 ROM2:6D9C 36 A3 ld (hl),A3 ROM2:6D9E 3E 04 ld a,04 ROM2:6DA0 E0 EF ld (FF00+EF),a ROM2:6DA2 AF xor a ROM2:6DA3 EA 63 C4 ld (C463),a ROM2:6DA6 3E 02 ld a,02 ROM2:6DA8 EA 1C C4 ld (C41C),a ROM2:6DAB C9 ret ROM2:6DAC AF xor a ROM2:6DAD 77 ld (hl),a ROM2:6DAE E0 E6 ld (FF00+E6),a ROM2:6DB0 3E A1 ld a,A1 ROM2:6DB2 E0 E3 ld (FF00+E3),a ROM2:6DB4 C9 ret ROM2:6DB5 CD EC 75 call 75EC ROM2:6DB8 F0 FE ld a,(FF00+FE) ROM2:6DBA E6 07 and 07 ROM2:6DBC C0 ret nz ROM2:6DBD 21 E1 FF ld hl,FFE1 ROM2:6DC0 7E ld a,(hl) ROM2:6DC1 D6 02 sub 02 ROM2:6DC3 77 ld (hl),a ROM2:6DC4 21 E9 FF ld hl,FFE9 ROM2:6DC7 34 inc (hl) ROM2:6DC8 7E ld a,(hl) ROM2:6DC9 FE 0D cp 0D ROM2:6DCB C0 ret nz ROM2:6DCC AF xor a ROM2:6DCD 77 ld (hl),a ROM2:6DCE 3C inc a ROM2:6DCF EA 1C C4 ld (C41C),a ROM2:6DD2 18 C5 jr 6D99 } ;;; $6DD4: ;;; { ROM2:6DD4 C5 push bc ROM2:6DD5 78 ld a,b ROM2:6DD6 A7 and a ROM2:6DD7 28 2F jr z,6E08 ROM2:6DD9 21 E1 FF ld hl,FFE1 ROM2:6DDC CB 78 bit 7,b ROM2:6DDE 28 16 jr z,6DF6 ROM2:6DE0 CB B8 res 7,b ROM2:6DE2 7E ld a,(hl) ROM2:6DE3 90 sub b ROM2:6DE4 77 ld (hl),a ROM2:6DE5 CD 04 4D call 4D04 ROM2:6DE8 FA 02 C4 ld a,(C402) ROM2:6DEB CB 5F bit 3,a ROM2:6DED 28 19 jr z,6E08 ROM2:6DEF FA 1E C4 ld a,(C41E) ROM2:6DF2 E0 E1 ld (FF00+E1),a ROM2:6DF4 18 12 jr 6E08 ROM2:6DF6 7E ld a,(hl) ROM2:6DF7 80 add a,b ROM2:6DF8 77 ld (hl),a ROM2:6DF9 CD 17 4B call 4B17 ROM2:6DFC FA 02 C4 ld a,(C402) ROM2:6DFF CB 4F bit 1,a ROM2:6E01 28 05 jr z,6E08 ROM2:6E03 FA 1E C4 ld a,(C41E) ROM2:6E06 E0 E1 ld (FF00+E1),a ROM2:6E08 C1 pop bc ROM2:6E09 79 ld a,c ROM2:6E0A A7 and a ROM2:6E0B C8 ret z ROM2:6E0C 21 E2 FF ld hl,FFE2 ROM2:6E0F CB 79 bit 7,c ROM2:6E11 28 14 jr z,6E27 ROM2:6E13 CB B9 res 7,c ROM2:6E15 7E ld a,(hl) ROM2:6E16 91 sub c ROM2:6E17 77 ld (hl),a ROM2:6E18 CD 0F 49 call 490F ROM2:6E1B FA 02 C4 ld a,(C402) ROM2:6E1E CB 57 bit 2,a ROM2:6E20 C8 ret z ROM2:6E21 FA 1F C4 ld a,(C41F) ROM2:6E24 E0 E2 ld (FF00+E2),a ROM2:6E26 C9 ret ROM2:6E27 7E ld a,(hl) ROM2:6E28 81 add a,c ROM2:6E29 77 ld (hl),a ROM2:6E2A CD 36 47 call 4736 ROM2:6E2D FA 02 C4 ld a,(C402) ROM2:6E30 CB 47 bit 0,a ROM2:6E32 C8 ret z ROM2:6E33 FA 1F C4 ld a,(C41F) ROM2:6E36 E0 E2 ld (FF00+E2),a ROM2:6E38 C9 ret } ;;; $6E39: $FFE3 ^= 7 ;;; { ROM2:6E39 21 E3 FF ld hl,FFE3 ROM2:6E3C 7E ld a,(hl) ROM2:6E3D EE 07 xor 07 ROM2:6E3F 77 ld (hl),a ROM2:6E40 C9 ret } ;;; $6E41: ;;; { ROM2:6E41 16 00 ld d,00 ROM2:6E43 5A ld e,d ROM2:6E44 21 E1 FF ld hl,FFE1 ROM2:6E47 FA 3B D0 ld a,(D03B) ROM2:6E4A 96 sub (hl) ROM2:6E4B 30 03 jr nc,6E50 ROM2:6E4D 2F cpl ROM2:6E4E 3C inc a ROM2:6E4F 1C inc e ROM2:6E50 47 ld b,a ROM2:6E51 2C inc l ROM2:6E52 FA 3C D0 ld a,(D03C) ROM2:6E55 96 sub (hl) ROM2:6E56 30 03 jr nc,6E5B ROM2:6E58 2F cpl ROM2:6E59 3C inc a ROM2:6E5A 14 inc d ROM2:6E5B 4F ld c,a ROM2:6E5C B8 cp b ROM2:6E5D 38 14 jr c,6E73 ROM2:6E5F 7A ld a,d ROM2:6E60 A7 and a ROM2:6E61 20 0D jr nz,6E70 ROM2:6E63 3E 02 ld a,02 } ;;; $6E65: ;;; { ROM2:6E65 E0 E8 ld (FF00+E8),a ROM2:6E67 AF xor a ROM2:6E68 E0 E9 ld (FF00+E9),a ROM2:6E6A E0 EA ld (FF00+EA),a ROM2:6E6C CD 7F 6E call 6E7F ROM2:6E6F C9 ret ROM2:6E70 AF xor a ROM2:6E71 18 F2 jr 6E65 ROM2:6E73 7B ld a,e ROM2:6E74 A7 and a ROM2:6E75 20 04 jr nz,6E7B ROM2:6E77 3E 03 ld a,03 ROM2:6E79 18 EA jr 6E65 ROM2:6E7B 3E 01 ld a,01 ROM2:6E7D 18 E6 jr 6E65 } ;;; $6E7F: ;;; { ROM2:6E7F 21 E9 FF ld hl,FFE9 ROM2:6E82 34 inc (hl) ROM2:6E83 7E ld a,(hl) ROM2:6E84 FE 06 cp 06 ROM2:6E86 20 06 jr nz,6E8E ROM2:6E88 3E 01 ld a,01 ROM2:6E8A EA 71 C4 ld (C471),a ROM2:6E8D C9 ret ROM2:6E8E 21 E2 FF ld hl,FFE2 ROM2:6E91 F0 E8 ld a,(FF00+E8) ROM2:6E93 A7 and a ROM2:6E94 28 34 jr z,6ECA ROM2:6E96 FE 02 cp 02 ROM2:6E98 28 1A jr z,6EB4 ROM2:6E9A 2D dec l ROM2:6E9B 3D dec a ROM2:6E9C 28 3F jr z,6EDD ROM2:6E9E 7E ld a,(hl) ROM2:6E9F D6 05 sub 05 ROM2:6EA1 FE 10 cp 10 ROM2:6EA3 D8 ret c ROM2:6EA4 77 ld (hl),a ROM2:6EA5 CD 04 4D call 4D04 ROM2:6EA8 FA 02 C4 ld a,(C402) ROM2:6EAB CB 5F bit 3,a ROM2:6EAD C8 ret z ROM2:6EAE FA 1E C4 ld a,(C41E) ROM2:6EB1 E0 E1 ld (FF00+E1),a ROM2:6EB3 C9 ret ROM2:6EB4 7E ld a,(hl) ROM2:6EB5 D6 05 sub 05 ROM2:6EB7 FE 10 cp 10 ROM2:6EB9 D8 ret c ROM2:6EBA 77 ld (hl),a ROM2:6EBB CD 0F 49 call 490F ROM2:6EBE FA 02 C4 ld a,(C402) ROM2:6EC1 CB 57 bit 2,a ROM2:6EC3 C8 ret z ROM2:6EC4 FA 1F C4 ld a,(C41F) ROM2:6EC7 E0 E2 ld (FF00+E2),a ROM2:6EC9 C9 ret ROM2:6ECA 7E ld a,(hl) ROM2:6ECB C6 05 add a,05 ROM2:6ECD 77 ld (hl),a ROM2:6ECE CD 36 47 call 4736 ROM2:6ED1 FA 02 C4 ld a,(C402) ROM2:6ED4 CB 47 bit 0,a ROM2:6ED6 C8 ret z ROM2:6ED7 FA 1F C4 ld a,(C41F) ROM2:6EDA E0 E2 ld (FF00+E2),a ROM2:6EDC C9 ret ROM2:6EDD 7E ld a,(hl) ROM2:6EDE C6 05 add a,05 ROM2:6EE0 77 ld (hl),a ROM2:6EE1 CD 17 4B call 4B17 ROM2:6EE4 FA 02 C4 ld a,(C402) ROM2:6EE7 CB 4F bit 1,a ROM2:6EE9 C8 ret z ROM2:6EEA FA 1E C4 ld a,(C41E) ROM2:6EED E0 E1 ld (FF00+E1),a ROM2:6EEF C9 ret } ;;; $6EF0: ;;; { ROM2:6EF0 21 E1 FF ld hl,FFE1 ROM2:6EF3 F0 E8 ld a,(FF00+E8) ROM2:6EF5 CB 4F bit 1,a ROM2:6EF7 20 18 jr nz,6F11 ROM2:6EF9 CB 5F bit 3,a ROM2:6EFB 28 26 jr z,6F23 ROM2:6EFD CD 53 6F call 6F53 ROM2:6F00 CD 04 4D call 4D04 ROM2:6F03 FA 02 C4 ld a,(C402) ROM2:6F06 CB 5F bit 3,a ROM2:6F08 28 19 jr z,6F23 ROM2:6F0A FA 1E C4 ld a,(C41E) ROM2:6F0D E0 E1 ld (FF00+E1),a ROM2:6F0F 18 12 jr 6F23 ROM2:6F11 CD 5B 6F call 6F5B ROM2:6F14 CD 17 4B call 4B17 ROM2:6F17 FA 02 C4 ld a,(C402) ROM2:6F1A CB 4F bit 1,a ROM2:6F1C 28 05 jr z,6F23 ROM2:6F1E FA 1E C4 ld a,(C41E) ROM2:6F21 E0 E1 ld (FF00+E1),a ROM2:6F23 21 E2 FF ld hl,FFE2 ROM2:6F26 F0 E8 ld a,(FF00+E8) ROM2:6F28 CB 47 bit 0,a ROM2:6F2A 20 15 jr nz,6F41 ROM2:6F2C CB 57 bit 2,a ROM2:6F2E C8 ret z ROM2:6F2F CD 53 6F call 6F53 ROM2:6F32 CD 0F 49 call 490F ROM2:6F35 FA 02 C4 ld a,(C402) ROM2:6F38 CB 57 bit 2,a ROM2:6F3A C8 ret z ROM2:6F3B FA 1F C4 ld a,(C41F) ROM2:6F3E E0 E2 ld (FF00+E2),a ROM2:6F40 C9 ret ROM2:6F41 CD 5B 6F call 6F5B ROM2:6F44 CD 36 47 call 4736 ROM2:6F47 FA 02 C4 ld a,(C402) ROM2:6F4A CB 47 bit 0,a ROM2:6F4C C8 ret z ROM2:6F4D FA 1F C4 ld a,(C41F) ROM2:6F50 E0 E2 ld (FF00+E2),a ROM2:6F52 C9 ret } ;;; $6F53: [hl] -= 4 if [hl] >= 14h ;;; { ROM2:6F53 7E ld a,(hl) ROM2:6F54 D6 04 sub 04 ROM2:6F56 FE 10 cp 10 ROM2:6F58 D8 ret c ROM2:6F59 77 ld (hl),a ROM2:6F5A C9 ret } ;;; $6F5B: [hl] += 4 ;;; { ROM2:6F5B 7E ld a,(hl) ROM2:6F5C C6 04 add a,04 ROM2:6F5E 77 ld (hl),a ROM2:6F5F C9 ret } ;;; $6F60: Enemy AI - enemy A3h (alpha metroid) ;;; { ROM2:6F60 CD A0 7D call 7DA0 ROM2:6F63 21 6A C4 ld hl,C46A ROM2:6F66 7E ld a,(hl) ROM2:6F67 A7 and a ROM2:6F68 28 24 jr z,6F8E ROM2:6F6A 35 dec (hl) ROM2:6F6B 28 1A jr z,6F87 ROM2:6F6D CD F0 6E call 6EF0 ROM2:6F70 CD F8 7D call 7DF8 ROM2:6F73 FA 6D C4 ld a,(C46D) ROM2:6F76 FE 10 cp 10 ROM2:6F78 D0 ret nc ROM2:6F79 3E 0F ld a,0F ;\ ROM2:6F7B EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:6F7E C9 ret ROM2:6F7F CD A6 3C call 3CA6 ROM2:6F82 3E FF ld a,FF ROM2:6F84 E0 EF ld (FF00+EF),a ROM2:6F86 C9 ret ROM2:6F87 3E FF ld a,FF ROM2:6F89 E0 E8 ld (FF00+E8),a ROM2:6F8B AF xor a ROM2:6F8C E0 E0 ld (FF00+E0),a ROM2:6F8E FA 1C C4 ld a,(C41C) ROM2:6F91 A7 and a ROM2:6F92 C2 16 70 jp nz,7016 ROM2:6F95 F0 EF ld a,(FF00+EF) ROM2:6F97 FE 04 cp 04 ROM2:6F99 28 3D jr z,6FD8 ROM2:6F9B E6 0F and 0F ROM2:6F9D 28 E0 jr z,6F7F ROM2:6F9F FA 63 C4 ld a,(C463) ROM2:6FA2 A7 and a ROM2:6FA3 20 1D jr nz,6FC2 ROM2:6FA5 21 E2 FF ld hl,FFE2 ROM2:6FA8 FA 3C D0 ld a,(D03C) ROM2:6FAB 96 sub (hl) ROM2:6FAC 30 02 jr nc,6FB0 ROM2:6FAE 2F cpl ROM2:6FAF 3C inc a ROM2:6FB0 FE 50 cp 50 ROM2:6FB2 D0 ret nc ROM2:6FB3 3E 01 ld a,01 ROM2:6FB5 EA 63 C4 ld (C463),a ROM2:6FB8 3E 0C ld a,0C ;\ ROM2:6FBA EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:6FBD 3E 01 ld a,01 ROM2:6FBF EA 65 C4 ld (C465),a ROM2:6FC2 F0 FE ld a,(FF00+FE) ROM2:6FC4 E6 03 and 03 ROM2:6FC6 C0 ret nz ROM2:6FC7 21 E9 FF ld hl,FFE9 ROM2:6FCA 34 inc (hl) ROM2:6FCB 7E ld a,(hl) ROM2:6FCC FE 10 cp 10 ROM2:6FCE CA 03 70 jp z,7003 ROM2:6FD1 F0 E3 ld a,(FF00+E3) ROM2:6FD3 EE 0E xor 0E ROM2:6FD5 E0 E3 ld (FF00+E3),a ROM2:6FD7 C9 ret ROM2:6FD8 3E AD ld a,AD ROM2:6FDA E0 E3 ld (FF00+E3),a ROM2:6FDC 21 E2 FF ld hl,FFE2 ROM2:6FDF FA 3C D0 ld a,(D03C) ROM2:6FE2 96 sub (hl) ROM2:6FE3 30 02 jr nc,6FE7 ROM2:6FE5 2F cpl ROM2:6FE6 3C inc a ROM2:6FE7 FE 50 cp 50 ROM2:6FE9 D0 ret nc ROM2:6FEA AF xor a ROM2:6FEB EA 6A C4 ld (C46A),a ROM2:6FEE 3C inc a ROM2:6FEF EA 1C C4 ld (C41C),a ROM2:6FF2 3E 01 ld a,01 ROM2:6FF4 EA 65 C4 ld (C465),a ROM2:6FF7 FA DD CE ld a,(CEDD) ROM2:6FFA FE 0C cp 0C ROM2:6FFC C8 ret z ROM2:6FFD 3E 0C ld a,0C ;\ ROM2:6FFF EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:7002 C9 ret ROM2:7003 AF xor a ROM2:7004 77 ld (hl),a ROM2:7005 3E AD ld a,AD ROM2:7007 E0 E3 ld (FF00+E3),a ROM2:7009 AF xor a ROM2:700A EA 63 C4 ld (C463),a ROM2:700D 3C inc a ROM2:700E EA 1C C4 ld (C41C),a ROM2:7011 3E 04 ld a,04 ROM2:7013 E0 EF ld (FF00+EF),a ROM2:7015 C9 ret ROM2:7016 F0 EF ld a,(FF00+EF) ROM2:7018 FE 05 cp 05 ROM2:701A C8 ret z ROM2:701B E6 0F and 0F ROM2:701D 20 0F jr nz,702E ROM2:701F CD DA 71 call 71DA ROM2:7022 FA 6D C4 ld a,(C46D) ROM2:7025 FE 10 cp 10 ROM2:7027 D0 ret nc ROM2:7028 3E 0F ld a,0F ;\ ROM2:702A EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:702D C9 ret ROM2:702E FA 6D C4 ld a,(C46D) ROM2:7031 FE 20 cp 20 ROM2:7033 D2 3D 71 jp nc,713D ROM2:7036 FE 10 cp 10 ROM2:7038 28 0A jr z,7044 ROM2:703A FE 08 cp 08 ROM2:703C 28 0F jr z,704D ROM2:703E 3E 0F ld a,0F ;\ ROM2:7040 EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:7043 C9 ret ROM2:7044 CD 41 6E call 6E41 ROM2:7047 3E 1A ld a,1A ;\ ROM2:7049 EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:704C C9 ret ROM2:704D 21 EC FF ld hl,FFEC ROM2:7050 35 dec (hl) ROM2:7051 7E ld a,(hl) ROM2:7052 A7 and a ROM2:7053 CA 05 71 jp z,7105 ROM2:7056 3E 08 ld a,08 ROM2:7058 EA 6A C4 ld (C46A),a ROM2:705B 3E 05 ld a,05 ;\ ROM2:705D EA D5 CE ld (CED5),a ;} Play metroid hurt sound effect ROM2:7060 21 E8 FF ld hl,FFE8 ROM2:7063 36 00 ld (hl),00 ROM2:7065 FA 6E C4 ld a,(C46E) ROM2:7068 47 ld b,a ROM2:7069 CB 40 bit 0,b ROM2:706B 20 4F jr nz,70BC ROM2:706D CB 58 bit 3,b ROM2:706F 20 29 jr nz,709A ROM2:7071 CB 48 bit 1,b ROM2:7073 20 68 jr nz,70DD ROM2:7075 F0 E1 ld a,(FF00+E1) ROM2:7077 D6 05 sub 05 ROM2:7079 FE 10 cp 10 ROM2:707B 38 32 jr c,70AF ROM2:707D E0 E1 ld (FF00+E1),a ROM2:707F CD 04 4D call 4D04 ROM2:7082 FA 02 C4 ld a,(C402) ROM2:7085 CB 5F bit 3,a ROM2:7087 20 07 jr nz,7090 ROM2:7089 21 E8 FF ld hl,FFE8 ROM2:708C CB DE set 3,(hl) ROM2:708E 18 1F jr 70AF ROM2:7090 FA 1E C4 ld a,(C41E) ROM2:7093 E0 E1 ld (FF00+E1),a ROM2:7095 21 E8 FF ld hl,FFE8 ROM2:7098 18 15 jr 70AF ROM2:709A F0 E1 ld a,(FF00+E1) ROM2:709C C6 05 add a,05 ROM2:709E E0 E1 ld (FF00+E1),a ROM2:70A0 CD 17 4B call 4B17 ROM2:70A3 FA 02 C4 ld a,(C402) ROM2:70A6 CB 4F bit 1,a ROM2:70A8 20 E6 jr nz,7090 ROM2:70AA 21 E8 FF ld hl,FFE8 ROM2:70AD CB CE set 1,(hl) ROM2:70AF FA 04 FF ld a,(FF04) ;div ROM2:70B2 E6 01 and 01 ROM2:70B4 28 03 jr z,70B9 ROM2:70B6 CB C6 set 0,(hl) ROM2:70B8 C9 ret ROM2:70B9 CB D6 set 2,(hl) ROM2:70BB C9 ret ROM2:70BC F0 E2 ld a,(FF00+E2) ROM2:70BE C6 05 add a,05 ROM2:70C0 E0 E2 ld (FF00+E2),a ROM2:70C2 CD 36 47 call 4736 ROM2:70C5 FA 02 C4 ld a,(C402) ROM2:70C8 CB 47 bit 0,a ROM2:70CA 20 07 jr nz,70D3 ROM2:70CC 21 E8 FF ld hl,FFE8 ROM2:70CF CB C6 set 0,(hl) ROM2:70D1 18 25 jr 70F8 ROM2:70D3 FA 1F C4 ld a,(C41F) ROM2:70D6 E0 E2 ld (FF00+E2),a ROM2:70D8 21 E8 FF ld hl,FFE8 ROM2:70DB 18 1B jr 70F8 ROM2:70DD F0 E2 ld a,(FF00+E2) ROM2:70DF FE 10 cp 10 ROM2:70E1 38 15 jr c,70F8 ROM2:70E3 D6 05 sub 05 ROM2:70E5 E0 E2 ld (FF00+E2),a ROM2:70E7 CD 0F 49 call 490F ROM2:70EA FA 02 C4 ld a,(C402) ROM2:70ED CB 57 bit 2,a ROM2:70EF 20 E2 jr nz,70D3 ROM2:70F1 21 E8 FF ld hl,FFE8 ROM2:70F4 CB D6 set 2,(hl) ROM2:70F6 18 00 jr 70F8 ROM2:70F8 FA 04 FF ld a,(FF04) ;div ROM2:70FB E6 01 and 01 ROM2:70FD 28 03 jr z,7102 ROM2:70FF CB CE set 1,(hl) ROM2:7101 C9 ret ROM2:7102 CB DE set 3,(hl) ROM2:7104 C9 ret ROM2:7105 AF xor a ROM2:7106 E0 E9 ld (FF00+E9),a ROM2:7108 E0 EA ld (FF00+EA),a ROM2:710A 3E 80 ld a,80 ROM2:710C EA 1C C4 ld (C41C),a ROM2:710F 3E E2 ld a,E2 ROM2:7111 E0 E3 ld (FF00+E3),a ROM2:7113 3E 0D ld a,0D ;\ ROM2:7115 EA D5 CE ld (CED5),a ;} Play metroid killed sound effect ROM2:7118 3E 0F ld a,0F ;\ ROM2:711A EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:711D 3E 02 ld a,02 ROM2:711F EA 65 C4 ld (C465),a ROM2:7122 E0 EF ld (FF00+EF),a ROM2:7124 21 89 D0 ld hl,D089 ROM2:7127 7E ld a,(hl) ROM2:7128 D6 01 sub 01 ROM2:712A 27 daa ROM2:712B 77 ld (hl),a ROM2:712C 21 9A D0 ld hl,D09A ROM2:712F 7E ld a,(hl) ROM2:7130 D6 01 sub 01 ROM2:7132 27 daa ROM2:7133 77 ld (hl),a ROM2:7134 3E C0 ld a,C0 ROM2:7136 EA 96 D0 ld (D096),a ROM2:7139 CD 92 3C call 3C92 ROM2:713C C9 ret ROM2:713D F0 E8 ld a,(FF00+E8) ROM2:713F 3C inc a ROM2:7140 28 1D jr z,715F ROM2:7142 CD 7F 6E call 6E7F ROM2:7145 21 71 C4 ld hl,C471 ROM2:7148 7E ld a,(hl) ROM2:7149 A7 and a ROM2:714A C8 ret z ROM2:714B 36 00 ld (hl),00 ROM2:714D 3E FF ld a,FF ROM2:714F E0 E8 ld (FF00+E8),a ROM2:7151 AF xor a ROM2:7152 E0 E9 ld (FF00+E9),a ROM2:7154 E0 EA ld (FF00+EA),a ROM2:7156 3C inc a ROM2:7157 EA 1C C4 ld (C41C),a ROM2:715A 3E AD ld a,AD ROM2:715C E0 E3 ld (FF00+E3),a ROM2:715E C9 ret ROM2:715F 21 E9 FF ld hl,FFE9 ROM2:7162 7E ld a,(hl) ROM2:7163 A7 and a ROM2:7164 20 19 jr nz,717F ROM2:7166 CD 20 3D call 3D20 ROM2:7169 21 E2 FF ld hl,FFE2 ROM2:716C 7E ld a,(hl) ROM2:716D C6 10 add a,10 ROM2:716F 47 ld b,a ROM2:7170 FA 3C D0 ld a,(D03C) ROM2:7173 90 sub b ROM2:7174 38 06 jr c,717C ROM2:7176 3E 20 ld a,20 ROM2:7178 E0 E5 ld (FF00+E5),a ROM2:717A 18 03 jr 717F ROM2:717C AF xor a ROM2:717D E0 E5 ld (FF00+E5),a ROM2:717F 21 E9 FF ld hl,FFE9 ROM2:7182 34 inc (hl) ROM2:7183 7E ld a,(hl) ROM2:7184 FE 0F cp 0F ROM2:7186 30 0B jr nc,7193 ROM2:7188 CD 48 3D call 3D48 ROM2:718B CD D4 6D call 6DD4 ROM2:718E 3E B0 ld a,B0 ROM2:7190 E0 E3 ld (FF00+E3),a ROM2:7192 C9 ret ROM2:7193 FE 14 cp 14 ROM2:7195 D8 ret c ROM2:7196 CD F6 3D call 3DF6 ROM2:7199 AF xor a ROM2:719A 22 ldi (hl),a ROM2:719B F0 E1 ld a,(FF00+E1) ROM2:719D C6 0C add a,0C ROM2:719F 22 ldi (hl),a ROM2:71A0 F0 E5 ld a,(FF00+E5) ROM2:71A2 CB 6F bit 5,a ROM2:71A4 20 06 jr nz,71AC ROM2:71A6 F0 E2 ld a,(FF00+E2) ROM2:71A8 D6 08 sub 08 ROM2:71AA 18 04 jr 71B0 ROM2:71AC F0 E2 ld a,(FF00+E2) ROM2:71AE C6 08 add a,08 ROM2:71B0 22 ldi (hl),a ROM2:71B1 3E AE ld a,AE ROM2:71B3 22 ldi (hl),a ROM2:71B4 3E 00 ld a,00 ROM2:71B6 22 ldi (hl),a ROM2:71B7 F0 E5 ld a,(FF00+E5) ROM2:71B9 22 ldi (hl),a ROM2:71BA 11 D0 71 ld de,71D0 ROM2:71BD CD 21 6B call 6B21 ROM2:71C0 CD 31 72 call 7231 ROM2:71C3 3E 05 ld a,05 ROM2:71C5 E0 EF ld (FF00+EF),a ROM2:71C7 AF xor a ROM2:71C8 E0 E9 ld (FF00+E9),a ROM2:71CA 3E 14 ld a,14 ;\ ROM2:71CC EA D5 CE ld (CED5),a ;} Play sound effect 14h ROM2:71CF C9 ret } ROM2:71D0 db 00,00,FF,00,00,00,FF,07,60,6F ;;; $71DA: ;;; { ROM2:71DA F0 FE ld a,(FF00+FE) ROM2:71DC E6 01 and 01 ROM2:71DE C0 ret nz ROM2:71DF 21 E3 FF ld hl,FFE3 ROM2:71E2 7E ld a,(hl) ROM2:71E3 FE AE cp AE ROM2:71E5 28 21 jr z,7208 ROM2:71E7 35 dec (hl) ROM2:71E8 F0 E5 ld a,(FF00+E5) ROM2:71EA CB F7 set 6,a ROM2:71EC E0 E5 ld (FF00+E5),a ROM2:71EE F0 E1 ld a,(FF00+E1) ROM2:71F0 D6 0D sub 0D ROM2:71F2 E0 E1 ld (FF00+E1),a ROM2:71F4 F0 E5 ld a,(FF00+E5) ROM2:71F6 CB 6F bit 5,a ROM2:71F8 20 07 jr nz,7201 ROM2:71FA F0 E2 ld a,(FF00+E2) ROM2:71FC C6 04 add a,04 ROM2:71FE E0 E2 ld (FF00+E2),a ROM2:7200 C9 ret ROM2:7201 F0 E2 ld a,(FF00+E2) ROM2:7203 D6 04 sub 04 ROM2:7205 E0 E2 ld (FF00+E2),a ROM2:7207 C9 ret ROM2:7208 F0 E5 ld a,(FF00+E5) ROM2:720A CB 77 bit 6,a ROM2:720C 20 1B jr nz,7229 ROM2:720E 34 inc (hl) ROM2:720F F0 E1 ld a,(FF00+E1) ROM2:7211 D6 10 sub 10 ROM2:7213 E0 E1 ld (FF00+E1),a ROM2:7215 F0 E5 ld a,(FF00+E5) ROM2:7217 CB 6F bit 5,a ROM2:7219 20 07 jr nz,7222 ROM2:721B F0 E2 ld a,(FF00+E2) ROM2:721D D6 04 sub 04 ROM2:721F E0 E2 ld (FF00+E2),a ROM2:7221 C9 ret ROM2:7222 F0 E2 ld a,(FF00+E2) ROM2:7224 C6 04 add a,04 ROM2:7226 E0 E2 ld (FF00+E2),a ROM2:7228 C9 ret ROM2:7229 CD A6 3C call 3CA6 ROM2:722C 3E FF ld a,FF ROM2:722E E0 EF ld (FF00+EF),a ROM2:7230 C9 ret } ;;; $7231: ;;; { ROM2:7231 06 07 ld b,07 ROM2:7233 18 02 jr 7237 } ;;; $7235: ;;; { ROM2:7235 06 0A ld b,0A } ;;; $7237: ;;; { ROM2:7237 1A ld a,(de) ROM2:7238 22 ldi (hl),a ROM2:7239 13 inc de ROM2:723A 05 dec b ROM2:723B 20 FA jr nz,7237 ROM2:723D 4F ld c,a ROM2:723E AF xor a ROM2:723F 06 04 ld b,04 ROM2:7241 22 ldi (hl),a ROM2:7242 05 dec b ROM2:7243 20 FC jr nz,7241 ROM2:7245 71 ld (hl),c ROM2:7246 7D ld a,l ROM2:7247 C6 0B add a,0B ROM2:7249 6F ld l,a ROM2:724A FA 77 C4 ld a,(C477) ROM2:724D 22 ldi (hl),a ROM2:724E 06 03 ld b,03 ROM2:7250 1A ld a,(de) ROM2:7251 22 ldi (hl),a ROM2:7252 13 inc de ROM2:7253 05 dec b ROM2:7254 20 FA jr nz,7250 ROM2:7256 2D dec l ROM2:7257 2D dec l ROM2:7258 2D dec l ROM2:7259 7E ld a,(hl) ROM2:725A 21 00 C5 ld hl,C500 ROM2:725D 6F ld l,a ROM2:725E FA 77 C4 ld a,(C477) ROM2:7261 77 ld (hl),a ROM2:7262 21 25 C4 ld hl,C425 ROM2:7265 34 inc (hl) ROM2:7266 2C inc l ROM2:7267 34 inc (hl) ROM2:7268 C9 ret } ;;; $7269: ;;; { ROM2:7269 26 C6 ld h,C6 ROM2:726B F0 EF ld a,(FF00+EF) ROM2:726D CB 67 bit 4,a ROM2:726F 28 03 jr z,7274 ROM2:7271 D6 10 sub 10 ROM2:7273 24 inc h ROM2:7274 6F ld l,a ROM2:7275 C9 ret } ;;; $7276: Enemy AI - enemy ADh (gamma metroid) ;;; { ROM2:7276 CD A0 7D call 7DA0 ROM2:7279 F0 EF ld a,(FF00+EF) ROM2:727B FE 06 cp 06 ROM2:727D CA B8 74 jp z,74B8 ROM2:7280 FA 1C C4 ld a,(C41C) ROM2:7283 A7 and a ROM2:7284 C4 C6 7D call nz,7DC6 ROM2:7287 21 6C C4 ld hl,C46C ROM2:728A 7E ld a,(hl) ROM2:728B A7 and a ROM2:728C 28 23 jr z,72B1 ROM2:728E 35 dec (hl) ROM2:728F 28 0F jr z,72A0 ROM2:7291 CD 25 76 call 7625 ROM2:7294 FA 6D C4 ld a,(C46D) ROM2:7297 FE 10 cp 10 ROM2:7299 D0 ret nc ROM2:729A 3E 0F ld a,0F ;\ ROM2:729C EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:729F C9 ret ROM2:72A0 AF xor a ROM2:72A1 E0 E0 ld (FF00+E0),a ROM2:72A3 3E FF ld a,FF ROM2:72A5 E0 E8 ld (FF00+E8),a ROM2:72A7 3E B7 ld a,B7 ROM2:72A9 E0 E3 ld (FF00+E3),a ROM2:72AB 3E 10 ld a,10 ROM2:72AD E0 E9 ld (FF00+E9),a ROM2:72AF E0 EA ld (FF00+EA),a ROM2:72B1 FA 1C C4 ld a,(C41C) ROM2:72B4 FE 03 cp 03 ROM2:72B6 D2 CC 73 jp nc,73CC ROM2:72B9 47 ld b,a ROM2:72BA F0 EF ld a,(FF00+EF) ROM2:72BC FE 04 cp 04 ROM2:72BE 28 57 jr z,7317 ROM2:72C0 4F ld c,a ROM2:72C1 78 ld a,b ROM2:72C2 FE 02 cp 02 ROM2:72C4 CA 1B 75 jp z,751B ROM2:72C7 F0 E3 ld a,(FF00+E3) ROM2:72C9 D6 B2 sub B2 ROM2:72CB CA 34 75 jp z,7534 ROM2:72CE 3D dec a ROM2:72CF CA 7F 75 jp z,757F ROM2:72D2 FA 63 C4 ld a,(C463) ROM2:72D5 A7 and a ROM2:72D6 20 29 jr nz,7301 ROM2:72D8 F0 FE ld a,(FF00+FE) ROM2:72DA E6 03 and 03 ROM2:72DC C0 ret nz ROM2:72DD F0 E6 ld a,(FF00+E6) ROM2:72DF EE 10 xor 10 ROM2:72E1 E0 E6 ld (FF00+E6),a ROM2:72E3 21 E2 FF ld hl,FFE2 ROM2:72E6 FA 3C D0 ld a,(D03C) ROM2:72E9 96 sub (hl) ROM2:72EA 30 02 jr nc,72EE ROM2:72EC 2F cpl ROM2:72ED 3C inc a ROM2:72EE FE 50 cp 50 ROM2:72F0 D0 ret nc ROM2:72F1 3E 01 ld a,01 ROM2:72F3 EA 63 C4 ld (C463),a ROM2:72F6 3E 0C ld a,0C ;\ ROM2:72F8 EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:72FB 3E 01 ld a,01 ROM2:72FD EA 65 C4 ld (C465),a ROM2:7300 C9 ret ROM2:7301 F0 FE ld a,(FF00+FE) ROM2:7303 E6 03 and 03 ROM2:7305 C0 ret nz ROM2:7306 21 E9 FF ld hl,FFE9 ROM2:7309 34 inc (hl) ROM2:730A 7E ld a,(hl) ROM2:730B FE 08 cp 08 ROM2:730D CA 59 75 jp z,7559 ROM2:7310 F0 E6 ld a,(FF00+E6) ROM2:7312 EE 10 xor 10 ROM2:7314 E0 E6 ld (FF00+E6),a ROM2:7316 C9 ret ROM2:7317 3E B7 ld a,B7 ROM2:7319 E0 E3 ld (FF00+E3),a ROM2:731B 21 E2 FF ld hl,FFE2 ROM2:731E FA 3C D0 ld a,(D03C) ROM2:7321 96 sub (hl) ROM2:7322 30 02 jr nc,7326 ROM2:7324 2F cpl ROM2:7325 3C inc a ROM2:7326 FE 50 cp 50 ROM2:7328 D0 ret nc ROM2:7329 3E 10 ld a,10 ROM2:732B E0 E9 ld (FF00+E9),a ROM2:732D E0 EA ld (FF00+EA),a ROM2:732F AF xor a ROM2:7330 EA 6C C4 ld (C46C),a ROM2:7333 3E 01 ld a,01 ROM2:7335 EA 65 C4 ld (C465),a ROM2:7338 3E 03 ld a,03 ROM2:733A EA 1C C4 ld (C41C),a ROM2:733D FA DD CE ld a,(CEDD) ROM2:7340 FE 0C cp 0C ROM2:7342 28 07 jr z,734B ROM2:7344 3E 0C ld a,0C ;\ ROM2:7346 EA DC CE ld (CEDC),a ;} Play metroid battle song ROM2:7349 18 00 jr 734B ROM2:734B F0 E8 ld a,(FF00+E8) ROM2:734D 3C inc a ROM2:734E 28 1F jr z,736F ROM2:7350 CD 7F 6E call 6E7F ROM2:7353 21 71 C4 ld hl,C471 ROM2:7356 7E ld a,(hl) ROM2:7357 A7 and a ROM2:7358 C8 ret z ROM2:7359 36 00 ld (hl),00 ROM2:735B 3E FF ld a,FF ROM2:735D E0 E8 ld (FF00+E8),a ROM2:735F 3E B7 ld a,B7 ROM2:7361 E0 E3 ld (FF00+E3),a ROM2:7363 3E 10 ld a,10 ROM2:7365 E0 E9 ld (FF00+E9),a ROM2:7367 E0 EA ld (FF00+EA),a ROM2:7369 3E 03 ld a,03 ROM2:736B EA 1C C4 ld (C41C),a ROM2:736E C9 ret ROM2:736F FA 1C C4 ld a,(C41C) ROM2:7372 FE 04 cp 04 ROM2:7374 D2 8A 74 jp nc,748A ROM2:7377 06 02 ld b,02 ROM2:7379 11 00 20 ld de,2000 ROM2:737C CD BA 3C call 3CBA ROM2:737F 21 E2 FF ld hl,FFE2 ROM2:7382 FA 3C D0 ld a,(D03C) ROM2:7385 96 sub (hl) ROM2:7386 38 0F jr c,7397 ROM2:7388 FE 20 cp 20 ROM2:738A 30 05 jr nc,7391 ROM2:738C 3E 01 ld a,01 ROM2:738E EA 37 C4 ld (C437),a ROM2:7391 3E 20 ld a,20 ROM2:7393 E0 E5 ld (FF00+E5),a ROM2:7395 18 0C jr 73A3 ROM2:7397 FE E0 cp E0 ROM2:7399 38 05 jr c,73A0 ROM2:739B 3E 01 ld a,01 ROM2:739D EA 37 C4 ld (C437),a ROM2:73A0 AF xor a ROM2:73A1 E0 E5 ld (FF00+E5),a ROM2:73A3 21 37 C4 ld hl,C437 ROM2:73A6 7E ld a,(hl) ROM2:73A7 A7 and a ROM2:73A8 C8 ret z ROM2:73A9 36 00 ld (hl),00 ROM2:73AB 21 E1 FF ld hl,FFE1 ROM2:73AE FA 3B D0 ld a,(D03B) ROM2:73B1 96 sub (hl) ROM2:73B2 D8 ret c ROM2:73B3 FE 20 cp 20 ROM2:73B5 D0 ret nc ROM2:73B6 CD AC 75 call 75AC ROM2:73B9 3E 05 ld a,05 ROM2:73BB E0 EF ld (FF00+EF),a ROM2:73BD 3E 04 ld a,04 ROM2:73BF EA 1C C4 ld (C41C),a ROM2:73C2 AF xor a ROM2:73C3 E0 E9 ld (FF00+E9),a ROM2:73C5 E0 EA ld (FF00+EA),a ROM2:73C7 3E B8 ld a,B8 ROM2:73C9 E0 E3 ld (FF00+E3),a ROM2:73CB C9 ret ROM2:73CC FA 6D C4 ld a,(C46D) ROM2:73CF FE 20 cp 20 ROM2:73D1 D2 4B 73 jp nc,734B ROM2:73D4 FE 10 cp 10 ROM2:73D6 28 0A jr z,73E2 ROM2:73D8 FE 08 cp 08 ROM2:73DA 28 0F jr z,73EB ROM2:73DC 3E 0F ld a,0F ;\ ROM2:73DE EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:73E1 C9 ret ROM2:73E2 CD 41 6E call 6E41 ROM2:73E5 3E 1A ld a,1A ;\ ROM2:73E7 EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:73EA C9 ret ROM2:73EB FA 6E C4 ld a,(C46E) ROM2:73EE 47 ld b,a ROM2:73EF CB 50 bit 2,b ROM2:73F1 20 E9 jr nz,73DC ROM2:73F3 21 EC FF ld hl,FFEC ROM2:73F6 35 dec (hl) ROM2:73F7 7E ld a,(hl) ROM2:73F8 A7 and a ROM2:73F9 28 57 jr z,7452 ROM2:73FB 3E BA ld a,BA ROM2:73FD E0 E3 ld (FF00+E3),a ROM2:73FF 3E 08 ld a,08 ROM2:7401 EA 6C C4 ld (C46C),a ROM2:7404 3E 05 ld a,05 ;\ ROM2:7406 EA D5 CE ld (CED5),a ;} Play metroid hurt sound effect ROM2:7409 21 E8 FF ld hl,FFE8 ROM2:740C 36 00 ld (hl),00 ROM2:740E CB 40 bit 0,b ROM2:7410 20 1D jr nz,742F ROM2:7412 3C inc a ROM2:7413 CB 58 bit 3,b ROM2:7415 20 03 jr nz,741A ROM2:7417 3C inc a ROM2:7418 18 1F jr 7439 ROM2:741A CB CE set 1,(hl) ROM2:741C F0 E1 ld a,(FF00+E1) ROM2:741E C6 05 add a,05 ROM2:7420 E0 E1 ld (FF00+E1),a ROM2:7422 FA 04 FF ld a,(FF04) ;div ROM2:7425 E6 01 and 01 ROM2:7427 28 03 jr z,742C ROM2:7429 CB C6 set 0,(hl) ROM2:742B C9 ret ROM2:742C CB D6 set 2,(hl) ROM2:742E C9 ret ROM2:742F CB C6 set 0,(hl) ROM2:7431 F0 E2 ld a,(FF00+E2) ROM2:7433 C6 05 add a,05 ROM2:7435 E0 E2 ld (FF00+E2),a ROM2:7437 18 0C jr 7445 ROM2:7439 F0 E2 ld a,(FF00+E2) ROM2:743B D6 05 sub 05 ROM2:743D FE 10 cp 10 ROM2:743F 38 04 jr c,7445 ROM2:7441 E0 E2 ld (FF00+E2),a ROM2:7443 CB D6 set 2,(hl) ROM2:7445 FA 04 FF ld a,(FF04) ;div ROM2:7448 E6 01 and 01 ROM2:744A 28 03 jr z,744F ROM2:744C CB CE set 1,(hl) ROM2:744E C9 ret ROM2:744F CB DE set 3,(hl) ROM2:7451 C9 ret ROM2:7452 AF xor a ROM2:7453 E0 E9 ld (FF00+E9),a ROM2:7455 E0 EA ld (FF00+EA),a ROM2:7457 3E 80 ld a,80 ROM2:7459 EA 1C C4 ld (C41C),a ROM2:745C 3E E2 ld a,E2 ROM2:745E E0 E3 ld (FF00+E3),a ROM2:7460 3E 0D ld a,0D ;\ ROM2:7462 EA D5 CE ld (CED5),a ;} Play metroid killed sound effect ROM2:7465 3E 0F ld a,0F ;\ ROM2:7467 EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:746A 3E 02 ld a,02 ROM2:746C EA 65 C4 ld (C465),a ROM2:746F E0 EF ld (FF00+EF),a ROM2:7471 21 89 D0 ld hl,D089 ROM2:7474 7E ld a,(hl) ROM2:7475 D6 01 sub 01 ROM2:7477 27 daa ROM2:7478 77 ld (hl),a ROM2:7479 21 9A D0 ld hl,D09A ROM2:747C 7E ld a,(hl) ROM2:747D D6 01 sub 01 ROM2:747F 27 daa ROM2:7480 77 ld (hl),a ROM2:7481 3E C0 ld a,C0 ROM2:7483 EA 96 D0 ld (D096),a ROM2:7486 CD 92 3C call 3C92 ROM2:7489 C9 ret ROM2:748A FA 1C C4 ld a,(C41C) ROM2:748D FE 05 cp 05 ROM2:748F 28 4B jr z,74DC ROM2:7491 FE 06 cp 06 ROM2:7493 28 69 jr z,74FE ROM2:7495 F0 FE ld a,(FF00+FE) ROM2:7497 E6 01 and 01 ROM2:7499 C0 ret nz ROM2:749A F0 E9 ld a,(FF00+E9) ROM2:749C 21 E3 FF ld hl,FFE3 ROM2:749F A7 and a ROM2:74A0 28 07 jr z,74A9 ROM2:74A2 7E ld a,(hl) ROM2:74A3 FE B7 cp B7 ROM2:74A5 28 08 jr z,74AF ROM2:74A7 35 dec (hl) ROM2:74A8 C9 ret ROM2:74A9 34 inc (hl) ROM2:74AA 3E 01 ld a,01 ROM2:74AC E0 E9 ld (FF00+E9),a ROM2:74AE C9 ret ROM2:74AF AF xor a ROM2:74B0 E0 E9 ld (FF00+E9),a ROM2:74B2 3E 05 ld a,05 ROM2:74B4 EA 1C C4 ld (C41C),a ROM2:74B7 C9 ret ROM2:74B8 FA 1C C4 ld a,(C41C) ROM2:74BB FE 06 cp 06 ROM2:74BD 28 15 jr z,74D4 ROM2:74BF 21 E1 FF ld hl,FFE1 ROM2:74C2 7E ld a,(hl) ROM2:74C3 C6 03 add a,03 ROM2:74C5 FE 90 cp 90 ROM2:74C7 30 0B jr nc,74D4 ROM2:74C9 22 ldi (hl),a ROM2:74CA F0 E5 ld a,(FF00+E5) ROM2:74CC CB 6F bit 5,a ROM2:74CE 20 02 jr nz,74D2 ROM2:74D0 35 dec (hl) ROM2:74D1 C9 ret ROM2:74D2 34 inc (hl) ROM2:74D3 C9 ret ROM2:74D4 CD A6 3C call 3CA6 ROM2:74D7 3E FF ld a,FF ROM2:74D9 E0 EF ld (FF00+EF),a ROM2:74DB C9 ret ROM2:74DC 21 E1 FF ld hl,FFE1 ROM2:74DF CD AE 6A call 6AAE ROM2:74E2 2A ldi a,(hl) ROM2:74E3 FE 30 cp 30 ROM2:74E5 38 0A jr c,74F1 ROM2:74E7 F0 E5 ld a,(FF00+E5) ROM2:74E9 CB 6F bit 5,a ROM2:74EB 20 02 jr nz,74EF ROM2:74ED 35 dec (hl) ROM2:74EE C9 ret ROM2:74EF 34 inc (hl) ROM2:74F0 C9 ret ROM2:74F1 3E 06 ld a,06 ROM2:74F3 EA 1C C4 ld (C41C),a ROM2:74F6 AF xor a ROM2:74F7 E0 E7 ld (FF00+E7),a ROM2:74F9 3E B3 ld a,B3 ROM2:74FB E0 E3 ld (FF00+E3),a ROM2:74FD C9 ret ROM2:74FE 21 E9 FF ld hl,FFE9 ROM2:7501 34 inc (hl) ROM2:7502 7E ld a,(hl) ROM2:7503 FE 20 cp 20 ROM2:7505 28 04 jr z,750B ROM2:7507 CD 14 76 call 7614 ROM2:750A C9 ret ROM2:750B 36 00 ld (hl),00 ROM2:750D 3E 03 ld a,03 ROM2:750F EA 1C C4 ld (C41C),a ROM2:7512 3E 04 ld a,04 ROM2:7514 E0 EF ld (FF00+EF),a ROM2:7516 3E B7 ld a,B7 ROM2:7518 E0 E3 ld (FF00+E3),a ROM2:751A C9 ret ROM2:751B 21 E3 FF ld hl,FFE3 ROM2:751E 36 B7 ld (hl),B7 ROM2:7520 3E 10 ld a,10 ROM2:7522 E0 E9 ld (FF00+E9),a ROM2:7524 E0 EA ld (FF00+EA),a ROM2:7526 3E 04 ld a,04 ROM2:7528 E0 EF ld (FF00+EF),a ROM2:752A AF xor a ROM2:752B EA 63 C4 ld (C463),a ROM2:752E 3E 03 ld a,03 ROM2:7530 EA 1C C4 ld (C41C),a ROM2:7533 C9 ret ROM2:7534 FA 1C C4 ld a,(C41C) ROM2:7537 A7 and a ROM2:7538 20 04 jr nz,753E ROM2:753A CD FF 75 call 75FF ROM2:753D C9 ret ROM2:753E 3E 10 ld a,10 ROM2:7540 E0 E6 ld (FF00+E6),a ROM2:7542 21 E1 FF ld hl,FFE1 ROM2:7545 CD 7B 6A call 6A7B ROM2:7548 7E ld a,(hl) ROM2:7549 FE 90 cp 90 ROM2:754B D8 ret c ROM2:754C CD A6 3C call 3CA6 ROM2:754F 3E 02 ld a,02 ROM2:7551 E0 EF ld (FF00+EF),a ROM2:7553 3E 02 ld a,02 ROM2:7555 EA 1C C4 ld (C41C),a ROM2:7558 C9 ret ROM2:7559 AF xor a ROM2:755A 77 ld (hl),a ROM2:755B E0 E6 ld (FF00+E6),a ROM2:755D CD F6 3D call 3DF6 ROM2:7560 AF xor a ROM2:7561 22 ldi (hl),a ROM2:7562 F0 E1 ld a,(FF00+E1) ROM2:7564 22 ldi (hl),a ROM2:7565 F0 E2 ld a,(FF00+E2) ROM2:7567 22 ldi (hl),a ROM2:7568 11 9F 75 ld de,759F ROM2:756B 3E 03 ld a,03 ROM2:756D EA 77 C4 ld (C477),a ROM2:7570 CD 35 72 call 7235 ROM2:7573 21 E1 FF ld hl,FFE1 ROM2:7576 7E ld a,(hl) ROM2:7577 D6 08 sub 08 ROM2:7579 77 ld (hl),a ROM2:757A 3E B3 ld a,B3 ROM2:757C E0 E3 ld (FF00+E3),a ROM2:757E C9 ret ROM2:757F FA 1C C4 ld a,(C41C) ROM2:7582 A7 and a ROM2:7583 C0 ret nz ROM2:7584 CD EC 75 call 75EC ROM2:7587 F0 FE ld a,(FF00+FE) ROM2:7589 E6 07 and 07 ROM2:758B C0 ret nz ROM2:758C 21 E1 FF ld hl,FFE1 ROM2:758F 35 dec (hl) ROM2:7590 21 E9 FF ld hl,FFE9 ROM2:7593 34 inc (hl) ROM2:7594 7E ld a,(hl) ROM2:7595 FE 06 cp 06 ROM2:7597 C0 ret nz ROM2:7598 AF xor a ROM2:7599 77 ld (hl),a ROM2:759A 3C inc a ROM2:759B EA 1C C4 ld (C41C),a ROM2:759E C9 ret } ROM2:759F db B2,80,00,00,00,00,00,00,00,FF,06,76,72 ;;; $75AC: ;;; { ROM2:75AC CD F6 3D call 3DF6 ROM2:75AF AF xor a ROM2:75B0 22 ldi (hl),a ROM2:75B1 F0 E1 ld a,(FF00+E1) ROM2:75B3 C6 04 add a,04 ROM2:75B5 22 ldi (hl),a ROM2:75B6 F0 E5 ld a,(FF00+E5) ROM2:75B8 47 ld b,a ROM2:75B9 CB 6F bit 5,a ROM2:75BB 20 07 jr nz,75C4 ROM2:75BD F0 E2 ld a,(FF00+E2) ROM2:75BF D6 18 sub 18 ROM2:75C1 22 ldi (hl),a ROM2:75C2 18 05 jr 75C9 ROM2:75C4 F0 E2 ld a,(FF00+E2) ROM2:75C6 C6 18 add a,18 ROM2:75C8 22 ldi (hl),a ROM2:75C9 3E BE ld a,BE ROM2:75CB 22 ldi (hl),a ROM2:75CC 3E 80 ld a,80 ROM2:75CE 22 ldi (hl),a ROM2:75CF 78 ld a,b ROM2:75D0 22 ldi (hl),a ROM2:75D1 11 E2 75 ld de,75E2 ROM2:75D4 3E 06 ld a,06 ROM2:75D6 EA 77 C4 ld (C477),a ROM2:75D9 CD 31 72 call 7231 ROM2:75DC 3E 15 ld a,15 ;\ ROM2:75DE EA D5 CE ld (CED5),a ;} Play sound effect 15h ROM2:75E1 C9 ret } ROM2:75E2 db 00,00,FF,00,00,00,FF,08,76,72 ;;; $75EC: ;;; { ROM2:75EC F0 FE ld a,(FF00+FE) ROM2:75EE E6 03 and 03 ROM2:75F0 C8 ret z ROM2:75F1 21 E2 FF ld hl,FFE2 ROM2:75F4 3D dec a ROM2:75F5 28 05 jr z,75FC ROM2:75F7 3D dec a ROM2:75F8 C8 ret z ROM2:75F9 35 dec (hl) ROM2:75FA 35 dec (hl) ROM2:75FB C9 ret ROM2:75FC 34 inc (hl) ROM2:75FD 34 inc (hl) ROM2:75FE C9 ret } ;;; $75FF: ;;; { ROM2:75FF F0 FE ld a,(FF00+FE) ROM2:7601 E6 03 and 03 ROM2:7603 C8 ret z ROM2:7604 21 E2 FF ld hl,FFE2 ROM2:7607 3D dec a ROM2:7608 28 06 jr z,7610 ROM2:760A 3D dec a ROM2:760B C8 ret z ROM2:760C 35 dec (hl) ROM2:760D 35 dec (hl) ROM2:760E 35 dec (hl) ROM2:760F C9 ret ROM2:7610 34 inc (hl) ROM2:7611 34 inc (hl) ROM2:7612 34 inc (hl) ROM2:7613 C9 ret } ;;; $7614: ;;; { ROM2:7614 F0 FE ld a,(FF00+FE) ROM2:7616 E6 03 and 03 ROM2:7618 C0 ret nz ROM2:7619 21 E3 FF ld hl,FFE3 ROM2:761C 7E ld a,(hl) ROM2:761D FE B6 cp B6 ROM2:761F 20 02 jr nz,7623 ROM2:7621 36 B2 ld (hl),B2 ROM2:7623 34 inc (hl) ROM2:7624 C9 ret } ;;; $7625: ;;; { ROM2:7625 21 E3 FF ld hl,FFE3 ROM2:7628 7E ld a,(hl) ROM2:7629 FE BD cp BD ROM2:762B 20 02 jr nz,762F ROM2:762D 36 BA ld (hl),BA ROM2:762F 34 inc (hl) ROM2:7630 C9 ret } ;;; $7631: Enemy AI - enemy B3h (zeta metroid hatching) ;;; { ROM2:7631 CD A0 7D call 7DA0 ROM2:7634 F0 EF ld a,(FF00+EF) ROM2:7636 FE 06 cp 06 ROM2:7638 CA 47 78 jp z,7847 ROM2:763B FA 1C C4 ld a,(C41C) ROM2:763E A7 and a ROM2:763F C4 C6 7D call nz,7DC6 ROM2:7642 21 62 C4 ld hl,C462 ROM2:7645 7E ld a,(hl) ROM2:7646 A7 and a ROM2:7647 28 1C jr z,7665 ROM2:7649 35 dec (hl) ROM2:764A 28 14 jr z,7660 ROM2:764C F0 FE ld a,(FF00+FE) ROM2:764E E6 01 and 01 ROM2:7650 C0 ret nz ROM2:7651 CD 3F 6B call 6B3F ROM2:7654 FA 6D C4 ld a,(C46D) ROM2:7657 FE 10 cp 10 ROM2:7659 D0 ret nc ROM2:765A 3E 0F ld a,0F ;\ ROM2:765C EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:765F C9 ret ROM2:7660 FA 4F C4 ld a,(C44F) ROM2:7663 E0 E3 ld (FF00+E3),a ROM2:7665 FA 1C C4 ld a,(C41C) ROM2:7668 A7 and a ROM2:7669 CA DC 78 jp z,78DC ROM2:766C FA 6D C4 ld a,(C46D) ROM2:766F FE 20 cp 20 ROM2:7671 D2 1F 77 jp nc,771F ROM2:7674 FE 10 cp 10 ROM2:7676 28 0A jr z,7682 ROM2:7678 FE 08 cp 08 ROM2:767A 28 0F jr z,768B ROM2:767C 3E 0F ld a,0F ;\ ROM2:767E EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:7681 C9 ret ROM2:7682 CD 41 6E call 6E41 ROM2:7685 3E 1A ld a,1A ;\ ROM2:7687 EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:768A C9 ret ROM2:768B FA 6E C4 ld a,(C46E) ROM2:768E 47 ld b,a ROM2:768F 78 ld a,b ROM2:7690 E6 03 and 03 ROM2:7692 28 E8 jr z,767C ROM2:7694 F0 E5 ld a,(FF00+E5) ROM2:7696 CB 6F bit 5,a ROM2:7698 20 06 jr nz,76A0 ROM2:769A CB 48 bit 1,b ROM2:769C 28 15 jr z,76B3 ROM2:769E 18 04 jr 76A4 ROM2:76A0 CB 40 bit 0,b ROM2:76A2 28 0F jr z,76B3 ROM2:76A4 21 EC FF ld hl,FFEC ROM2:76A7 7E ld a,(hl) ROM2:76A8 D6 03 sub 03 ROM2:76AA 38 35 jr c,76E1 ROM2:76AC 28 33 jr z,76E1 ROM2:76AE 77 ld (hl),a ROM2:76AF 3E 10 ld a,10 ROM2:76B1 18 08 jr 76BB ROM2:76B3 21 EC FF ld hl,FFEC ROM2:76B6 35 dec (hl) ROM2:76B7 28 28 jr z,76E1 ROM2:76B9 3E 03 ld a,03 ROM2:76BB EA 62 C4 ld (C462),a ROM2:76BE 21 E3 FF ld hl,FFE3 ROM2:76C1 7E ld a,(hl) ROM2:76C2 EA 4F C4 ld (C44F),a ROM2:76C5 36 C4 ld (hl),C4 ROM2:76C7 3E 09 ld a,09 ;\ ROM2:76C9 EA D5 CE ld (CED5),a ;} Play Metroid Queen cry sound effect ROM2:76CC CB 40 bit 0,b ROM2:76CE 28 07 jr z,76D7 ROM2:76D0 F0 E2 ld a,(FF00+E2) ROM2:76D2 C6 05 add a,05 ROM2:76D4 E0 E2 ld (FF00+E2),a ROM2:76D6 C9 ret ROM2:76D7 F0 E2 ld a,(FF00+E2) ROM2:76D9 D6 05 sub 05 ROM2:76DB FE 10 cp 10 ROM2:76DD D8 ret c ROM2:76DE E0 E2 ld (FF00+E2),a ROM2:76E0 C9 ret ROM2:76E1 AF xor a ROM2:76E2 E0 E9 ld (FF00+E9),a ROM2:76E4 E0 EA ld (FF00+EA),a ROM2:76E6 EA 6F C4 ld (C46F),a ROM2:76E9 EA 78 C4 ld (C478),a ROM2:76EC 3E 80 ld a,80 ROM2:76EE EA 1C C4 ld (C41C),a ROM2:76F1 3E E2 ld a,E2 ROM2:76F3 E0 E3 ld (FF00+E3),a ROM2:76F5 3E 0E ld a,0E ;\ ROM2:76F7 EA D5 CE ld (CED5),a ;} Play sound effect Eh ROM2:76FA 3E 0F ld a,0F ;\ ROM2:76FC EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:76FF 3E 02 ld a,02 ROM2:7701 EA 65 C4 ld (C465),a ROM2:7704 E0 EF ld (FF00+EF),a ROM2:7706 21 89 D0 ld hl,D089 ROM2:7709 7E ld a,(hl) ROM2:770A D6 01 sub 01 ROM2:770C 27 daa ROM2:770D 77 ld (hl),a ROM2:770E 21 9A D0 ld hl,D09A ROM2:7711 7E ld a,(hl) ROM2:7712 D6 01 sub 01 ROM2:7714 27 daa ROM2:7715 77 ld (hl),a ROM2:7716 3E C0 ld a,C0 ROM2:7718 EA 96 D0 ld (D096),a ROM2:771B CD 92 3C call 3C92 ROM2:771E C9 ret ROM2:771F F0 E8 ld a,(FF00+E8) ROM2:7721 3C inc a ROM2:7722 28 63 jr z,7787 ROM2:7724 CD 7F 6E call 6E7F ROM2:7727 21 71 C4 ld hl,C471 ROM2:772A 7E ld a,(hl) ROM2:772B A7 and a ROM2:772C C8 ret z ROM2:772D 36 00 ld (hl),00 ROM2:772F 3E FF ld a,FF ROM2:7731 E0 E8 ld (FF00+E8),a ROM2:7733 AF xor a ROM2:7734 EA 6F C4 ld (C46F),a ROM2:7737 3E 03 ld a,03 ROM2:7739 EA 78 C4 ld (C478),a ROM2:773C 3E 10 ld a,10 ROM2:773E E0 E7 ld (FF00+E7),a ROM2:7740 3E 10 ld a,10 ROM2:7742 E0 E9 ld (FF00+E9),a ROM2:7744 3E 10 ld a,10 ROM2:7746 E0 EA ld (FF00+EA),a ROM2:7748 3E C3 ld a,C3 ROM2:774A E0 E3 ld (FF00+E3),a ROM2:774C 3E 05 ld a,05 ROM2:774E EA 1C C4 ld (C41C),a ROM2:7751 C9 ret ROM2:7752 21 E9 FF ld hl,FFE9 ROM2:7755 34 inc (hl) ROM2:7756 7E ld a,(hl) ROM2:7757 FE 38 cp 38 ROM2:7759 28 04 jr z,775F ROM2:775B CD 42 7A call 7A42 ROM2:775E C9 ret ROM2:775F 36 00 ld (hl),00 ROM2:7761 3E 01 ld a,01 ROM2:7763 EA 1C C4 ld (C41C),a ROM2:7766 C9 ret ROM2:7767 AF xor a ROM2:7768 E0 E9 ld (FF00+E9),a ROM2:776A E0 EA ld (FF00+EA),a ROM2:776C 3E 01 ld a,01 ROM2:776E EA 1C C4 ld (C41C),a ROM2:7771 3E BF ld a,BF ROM2:7773 E0 E3 ld (FF00+E3),a ROM2:7775 C9 ret ROM2:7776 21 EA FF ld hl,FFEA ROM2:7779 7E ld a,(hl) ROM2:777A FE 24 cp 24 ROM2:777C 28 05 jr z,7783 ROM2:777E 34 inc (hl) ROM2:777F CD 42 7A call 7A42 ROM2:7782 C9 ret ROM2:7783 CD 32 7A call 7A32 ROM2:7786 C9 ret ROM2:7787 FA 1C C4 ld a,(C41C) ROM2:778A FE 05 cp 05 ROM2:778C 28 2E jr z,77BC ROM2:778E FE 06 cp 06 ROM2:7790 28 6E jr z,7800 ROM2:7792 FE 07 cp 07 ROM2:7794 28 BC jr z,7752 ROM2:7796 CD A8 79 call 79A8 ROM2:7799 FA 1C C4 ld a,(C41C) ROM2:779C FE 04 cp 04 ROM2:779E 28 C7 jr z,7767 ROM2:77A0 3D dec a ROM2:77A1 CA 24 78 jp z,7824 ROM2:77A4 FA 25 C4 ld a,(C425) ROM2:77A7 3D dec a ROM2:77A8 28 BD jr z,7767 ROM2:77AA 06 18 ld b,18 ROM2:77AC 21 E9 FF ld hl,FFE9 ROM2:77AF 7E ld a,(hl) ROM2:77B0 B8 cp b ROM2:77B1 28 C3 jr z,7776 ROM2:77B3 34 inc (hl) ROM2:77B4 7E ld a,(hl) ROM2:77B5 B8 cp b ROM2:77B6 28 B9 jr z,7771 ROM2:77B8 CD 4E 6B call 6B4E ROM2:77BB C9 ret ROM2:77BC 21 E7 FF ld hl,FFE7 ROM2:77BF 35 dec (hl) ROM2:77C0 28 31 jr z,77F3 ROM2:77C2 FA 78 C4 ld a,(C478) ROM2:77C5 FE 04 cp 04 ROM2:77C7 28 07 jr z,77D0 ROM2:77C9 FA 20 D0 ld a,(D020) ROM2:77CC FE 04 cp 04 ROM2:77CE 28 23 jr z,77F3 ROM2:77D0 06 02 ld b,02 ROM2:77D2 11 00 20 ld de,2000 ROM2:77D5 CD BA 3C call 3CBA ROM2:77D8 21 E2 FF ld hl,FFE2 ROM2:77DB FA 3C D0 ld a,(D03C) ROM2:77DE 96 sub (hl) ROM2:77DF 38 0A jr c,77EB ROM2:77E1 FE 10 cp 10 ROM2:77E3 38 0D jr c,77F2 ROM2:77E5 3E 20 ld a,20 ROM2:77E7 E0 E5 ld (FF00+E5),a ROM2:77E9 18 07 jr 77F2 ROM2:77EB FE F0 cp F0 ROM2:77ED 30 03 jr nc,77F2 ROM2:77EF AF xor a ROM2:77F0 E0 E5 ld (FF00+E5),a ROM2:77F2 C9 ret ROM2:77F3 3E 06 ld a,06 ROM2:77F5 EA 1C C4 ld (C41C),a ROM2:77F8 AF xor a ROM2:77F9 E0 E7 ld (FF00+E7),a ROM2:77FB E0 E9 ld (FF00+E9),a ROM2:77FD E0 EA ld (FF00+EA),a ROM2:77FF C9 ret ROM2:7800 21 E1 FF ld hl,FFE1 ROM2:7803 CD AE 6A call 6AAE ROM2:7806 2A ldi a,(hl) ROM2:7807 FE 34 cp 34 ROM2:7809 38 0C jr c,7817 ROM2:780B F0 E5 ld a,(FF00+E5) ROM2:780D CB 6F bit 5,a ROM2:780F 20 03 jr nz,7814 ROM2:7811 35 dec (hl) ROM2:7812 35 dec (hl) ROM2:7813 C9 ret ROM2:7814 34 inc (hl) ROM2:7815 34 inc (hl) ROM2:7816 C9 ret ROM2:7817 3E 07 ld a,07 ROM2:7819 EA 1C C4 ld (C41C),a ROM2:781C AF xor a ROM2:781D E0 E7 ld (FF00+E7),a ROM2:781F 3E BF ld a,BF ROM2:7821 E0 E3 ld (FF00+E3),a ROM2:7823 C9 ret ROM2:7824 CD 32 7A call 7A32 ROM2:7827 21 E9 FF ld hl,FFE9 ROM2:782A 34 inc (hl) ROM2:782B 7E ld a,(hl) ROM2:782C FE 10 cp 10 ROM2:782E C0 ret nz ROM2:782F 36 00 ld (hl),00 ROM2:7831 CD 22 79 call 7922 ROM2:7834 3E 02 ld a,02 ROM2:7836 EA 1C C4 ld (C41C),a ROM2:7839 3E 05 ld a,05 ROM2:783B E0 EF ld (FF00+EF),a ROM2:783D 3E C1 ld a,C1 ROM2:783F E0 E3 ld (FF00+E3),a ROM2:7841 3E 15 ld a,15 ;\ ROM2:7843 EA D5 CE ld (CED5),a ;} Play sound effect 15h ROM2:7846 C9 ret ROM2:7847 FA 65 C4 ld a,(C465) ROM2:784A FE 02 cp 02 ROM2:784C CA C8 78 jp z,78C8 ROM2:784F F0 E3 ld a,(FF00+E3) ROM2:7851 FE C8 cp C8 ROM2:7853 30 64 jr nc,78B9 ROM2:7855 21 E9 FF ld hl,FFE9 ROM2:7858 7E ld a,(hl) ROM2:7859 A7 and a ROM2:785A 20 05 jr nz,7861 ROM2:785C 36 01 ld (hl),01 ROM2:785E CD 20 3D call 3D20 ROM2:7861 CD 48 3D call 3D48 ROM2:7864 78 ld a,b ROM2:7865 A7 and a ROM2:7866 28 28 jr z,7890 ROM2:7868 CB 78 bit 7,b ROM2:786A 28 14 jr z,7880 ROM2:786C CB B8 res 7,b ROM2:786E 21 E1 FF ld hl,FFE1 ROM2:7871 7E ld a,(hl) ROM2:7872 90 sub b ROM2:7873 77 ld (hl),a ROM2:7874 CD C2 4B call 4BC2 ROM2:7877 FA 02 C4 ld a,(C402) ROM2:787A CB 5F bit 3,a ROM2:787C 20 2B jr nz,78A9 ROM2:787E 18 10 jr 7890 ROM2:7880 21 E1 FF ld hl,FFE1 ROM2:7883 7E ld a,(hl) ROM2:7884 80 add a,b ROM2:7885 77 ld (hl),a ROM2:7886 CD BA 49 call 49BA ROM2:7889 FA 02 C4 ld a,(C402) ROM2:788C CB 4F bit 1,a ROM2:788E 20 19 jr nz,78A9 ROM2:7890 21 E2 FF ld hl,FFE2 ROM2:7893 CB 79 bit 7,c ROM2:7895 28 06 jr z,789D ROM2:7897 CB B9 res 7,c ROM2:7899 7E ld a,(hl) ROM2:789A 91 sub c ROM2:789B 18 02 jr 789F ROM2:789D 7E ld a,(hl) ROM2:789E 81 add a,c ROM2:789F 77 ld (hl),a ROM2:78A0 F0 FE ld a,(FF00+FE) ROM2:78A2 E6 03 and 03 ROM2:78A4 C0 ret nz ROM2:78A5 CD 3F 6B call 6B3F ROM2:78A8 C9 ret ROM2:78A9 FA 02 C4 ld a,(C402) ROM2:78AC EA 2D C4 ld (C42D),a ROM2:78AF AF xor a ROM2:78B0 E0 E9 ld (FF00+E9),a ROM2:78B2 E0 EA ld (FF00+EA),a ROM2:78B4 3E C8 ld a,C8 ROM2:78B6 E0 E3 ld (FF00+E3),a ROM2:78B8 C9 ret ROM2:78B9 21 E3 FF ld hl,FFE3 ROM2:78BC 7E ld a,(hl) ROM2:78BD FE CC cp CC ROM2:78BF 28 07 jr z,78C8 ROM2:78C1 F0 FE ld a,(FF00+FE) ROM2:78C3 E6 01 and 01 ROM2:78C5 C0 ret nz ROM2:78C6 34 inc (hl) ROM2:78C7 C9 ret ROM2:78C8 CD A6 3C call 3CA6 ROM2:78CB 3E FF ld a,FF ROM2:78CD E0 EF ld (FF00+EF),a ROM2:78CF 21 1C C4 ld hl,C41C ROM2:78D2 7E ld a,(hl) ROM2:78D3 FE 02 cp 02 ROM2:78D5 C0 ret nz ROM2:78D6 3E 04 ld a,04 ROM2:78D8 EA 1C C4 ld (C41C),a ROM2:78DB C9 ret ROM2:78DC F0 EF ld a,(FF00+EF) ROM2:78DE FE 04 cp 04 ROM2:78E0 CA 50 79 jp z,7950 ROM2:78E3 FA 63 C4 ld a,(C463) ROM2:78E6 A7 and a ROM2:78E7 20 23 jr nz,790C ROM2:78E9 21 E2 FF ld hl,FFE2 ROM2:78EC 7E ld a,(hl) ROM2:78ED C6 10 add a,10 ROM2:78EF 47 ld b,a ROM2:78F0 FA 3C D0 ld a,(D03C) ROM2:78F3 C6 10 add a,10 ROM2:78F5 90 sub b ROM2:78F6 30 02 jr nc,78FA ROM2:78F8 2F cpl ROM2:78F9 3C inc a ROM2:78FA FE 50 cp 50 ROM2:78FC D0 ret nc ROM2:78FD 3E 01 ld a,01 ROM2:78FF EA 63 C4 ld (C463),a ROM2:7902 3E 0C ld a,0C ;\ ROM2:7904 EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:7907 3E 01 ld a,01 ROM2:7909 EA 65 C4 ld (C465),a ROM2:790C F0 FE ld a,(FF00+FE) ROM2:790E E6 03 and 03 ROM2:7910 C0 ret nz ROM2:7911 21 E9 FF ld hl,FFE9 ROM2:7914 34 inc (hl) ROM2:7915 7E ld a,(hl) ROM2:7916 FE 18 cp 18 ROM2:7918 CA 8B 79 jp z,798B ROM2:791B F0 E3 ld a,(FF00+E3) ROM2:791D EE 0C xor 0C ROM2:791F E0 E3 ld (FF00+E3),a ROM2:7921 C9 ret } ;;; $7922: ;;; { ROM2:7922 CD F6 3D call 3DF6 ROM2:7925 AF xor a ROM2:7926 22 ldi (hl),a ROM2:7927 F0 E1 ld a,(FF00+E1) ROM2:7929 22 ldi (hl),a ROM2:792A F0 E5 ld a,(FF00+E5) ROM2:792C 47 ld b,a ROM2:792D CB 6F bit 5,a ROM2:792F 20 07 jr nz,7938 ROM2:7931 F0 E2 ld a,(FF00+E2) ROM2:7933 D6 10 sub 10 ROM2:7935 22 ldi (hl),a ROM2:7936 18 05 jr 793D ROM2:7938 F0 E2 ld a,(FF00+E2) ROM2:793A C6 10 add a,10 ROM2:793C 22 ldi (hl),a ROM2:793D 3E C6 ld a,C6 ROM2:793F 22 ldi (hl),a ROM2:7940 AF xor a ROM2:7941 22 ldi (hl),a ROM2:7942 78 ld a,b ROM2:7943 22 ldi (hl),a ROM2:7944 11 9E 79 ld de,799E ROM2:7947 3E 06 ld a,06 ROM2:7949 EA 77 C4 ld (C477),a ROM2:794C CD 31 72 call 7231 ROM2:794F C9 ret ROM2:7950 3E BF ld a,BF ROM2:7952 E0 E3 ld (FF00+E3),a ROM2:7954 21 E2 FF ld hl,FFE2 ROM2:7957 FA 3C D0 ld a,(D03C) ROM2:795A 96 sub (hl) ROM2:795B 30 02 jr nc,795F ROM2:795D 2F cpl ROM2:795E 3C inc a ROM2:795F FE 50 cp 50 ROM2:7961 D0 ret nc ROM2:7962 AF xor a ROM2:7963 E0 E7 ld (FF00+E7),a ROM2:7965 E0 E9 ld (FF00+E9),a ROM2:7967 E0 EA ld (FF00+EA),a ROM2:7969 EA 62 C4 ld (C462),a ROM2:796C EA 6F C4 ld (C46F),a ROM2:796F EA 78 C4 ld (C478),a ROM2:7972 3C inc a ROM2:7973 EA 1C C4 ld (C41C),a ROM2:7976 3E 01 ld a,01 ROM2:7978 EA 65 C4 ld (C465),a ROM2:797B 3E FF ld a,FF ROM2:797D E0 E8 ld (FF00+E8),a ROM2:797F FA DD CE ld a,(CEDD) ROM2:7982 FE 0C cp 0C ROM2:7984 C8 ret z ROM2:7985 3E 0C ld a,0C ;\ ROM2:7987 EA DC CE ld (CEDC),a ;} Play killed metroid song ROM2:798A C9 ret ROM2:798B AF xor a ROM2:798C 77 ld (hl),a ROM2:798D 3E BF ld a,BF ROM2:798F E0 E3 ld (FF00+E3),a ROM2:7991 AF xor a ROM2:7992 EA 63 C4 ld (C463),a ROM2:7995 3C inc a ROM2:7996 EA 1C C4 ld (C41C),a ROM2:7999 3E 04 ld a,04 ROM2:799B E0 EF ld (FF00+EF),a ROM2:799D C9 ret } ROM2:799E db 00,00,FF,00,00,00,FF,08,31,76 ;;; $79A8: ;;; { ROM2:79A8 21 6F C4 ld hl,C46F ROM2:79AB 7E ld a,(hl) ROM2:79AC FE 40 cp 40 ROM2:79AE 28 02 jr z,79B2 ROM2:79B0 34 inc (hl) ROM2:79B1 C9 ret ROM2:79B2 36 00 ld (hl),00 ROM2:79B4 21 51 D0 ld hl,D051 ROM2:79B7 FA 70 C4 ld a,(C470) ROM2:79BA 96 sub (hl) ROM2:79BB FE 30 cp 30 ROM2:79BD 30 11 jr nc,79D0 ROM2:79BF 21 78 C4 ld hl,C478 ROM2:79C2 34 inc (hl) ROM2:79C3 7E ld a,(hl) ROM2:79C4 3D dec a ROM2:79C5 28 11 jr z,79D8 ROM2:79C7 3D dec a ROM2:79C8 28 12 jr z,79DC ROM2:79CA 3D dec a ROM2:79CB 28 13 jr z,79E0 ROM2:79CD 3D dec a ROM2:79CE 28 14 jr z,79E4 ROM2:79D0 AF xor a ROM2:79D1 EA 78 C4 ld (C478),a ROM2:79D4 3E 0C ld a,0C ROM2:79D6 18 0E jr 79E6 ROM2:79D8 3E 14 ld a,14 ROM2:79DA 18 0A jr 79E6 ROM2:79DC 3E 28 ld a,28 ROM2:79DE 18 06 jr 79E6 ROM2:79E0 3E 40 ld a,40 ROM2:79E2 18 02 jr 79E6 ROM2:79E4 3E 60 ld a,60 ROM2:79E6 E0 E7 ld (FF00+E7),a ROM2:79E8 FA 51 D0 ld a,(D051) ROM2:79EB EA 70 C4 ld (C470),a ROM2:79EE 3E 10 ld a,10 ROM2:79F0 E0 E9 ld (FF00+E9),a ROM2:79F2 3E 10 ld a,10 ROM2:79F4 E0 EA ld (FF00+EA),a ROM2:79F6 3E C3 ld a,C3 ROM2:79F8 E0 E3 ld (FF00+E3),a ROM2:79FA 3E 2D ld a,2D ;\ ROM2:79FC EA C0 CE ld (CEC0),a ;} Play sound effect 2Dh ROM2:79FF 3E 05 ld a,05 ROM2:7A01 EA 1C C4 ld (C41C),a ROM2:7A04 F1 pop af ROM2:7A05 C9 ret } ;;; $7A06: ;;; { ROM2:7A06 06 05 ld b,05 ROM2:7A08 11 E1 FF ld de,FFE1 ROM2:7A0B 21 E9 FF ld hl,FFE9 ROM2:7A0E 34 inc (hl) ROM2:7A0F 7E ld a,(hl) ROM2:7A10 3D dec a ROM2:7A11 28 0A jr z,7A1D ROM2:7A13 3D dec a ROM2:7A14 28 0F jr z,7A25 ROM2:7A16 3D dec a ROM2:7A17 28 14 jr z,7A2D ROM2:7A19 36 00 ld (hl),00 ROM2:7A1B 18 03 jr 7A20 ROM2:7A1D 1A ld a,(de) ROM2:7A1E 90 sub b ROM2:7A1F 12 ld (de),a ROM2:7A20 1C inc e ROM2:7A21 1A ld a,(de) ROM2:7A22 90 sub b ROM2:7A23 12 ld (de),a ROM2:7A24 C9 ret ROM2:7A25 1A ld a,(de) ROM2:7A26 90 sub b ROM2:7A27 12 ld (de),a ROM2:7A28 1C inc e ROM2:7A29 1A ld a,(de) ROM2:7A2A 80 add a,b ROM2:7A2B 12 ld (de),a ROM2:7A2C C9 ret ROM2:7A2D 1A ld a,(de) ROM2:7A2E 80 add a,b ROM2:7A2F 12 ld (de),a ROM2:7A30 18 F6 jr 7A28 } ;;; $7A32: ;;; { ROM2:7A32 21 E2 FF ld hl,FFE2 ROM2:7A35 FA 3C D0 ld a,(D03C) ROM2:7A38 96 sub (hl) ROM2:7A39 30 03 jr nc,7A3E ROM2:7A3B AF xor a ROM2:7A3C 18 02 jr 7A40 ROM2:7A3E 3E 20 ld a,20 ROM2:7A40 E0 E5 ld (FF00+E5),a } ;;; $7A42: ;;; { ROM2:7A42 F0 FE ld a,(FF00+FE) ROM2:7A44 E6 03 and 03 ROM2:7A46 C0 ret nz ROM2:7A47 21 E3 FF ld hl,FFE3 ROM2:7A4A 7E ld a,(hl) ROM2:7A4B EE 7F xor 7F ROM2:7A4D 77 ld (hl),a ROM2:7A4E C9 ret } ;;; $7A4F: Enemy AI - enemy CEh (metroid) ;;; { ROM2:7A4F CD A0 7D call 7DA0 ROM2:7A52 F0 E7 ld a,(FF00+E7) ROM2:7A54 A7 and a ROM2:7A55 28 69 jr z,7AC0 ROM2:7A57 CD CC 7B call 7BCC ROM2:7A5A FA 75 C4 ld a,(C475) ROM2:7A5D A7 and a ROM2:7A5E 28 50 jr z,7AB0 ROM2:7A60 3D dec a ROM2:7A61 28 0E jr z,7A71 ROM2:7A63 CD D9 7B call 7BD9 ROM2:7A66 FA 6D C4 ld a,(C46D) ROM2:7A69 FE 09 cp 09 ROM2:7A6B C0 ret nz ROM2:7A6C 21 75 C4 ld hl,C475 ROM2:7A6F 35 dec (hl) ROM2:7A70 C9 ret ROM2:7A71 21 E9 FF ld hl,FFE9 ROM2:7A74 34 inc (hl) ROM2:7A75 7E ld a,(hl) ROM2:7A76 FE 18 cp 18 ROM2:7A78 28 36 jr z,7AB0 ROM2:7A7A 3E 02 ld a,02 ROM2:7A7C EA 74 C4 ld (C474),a ROM2:7A7F F0 E1 ld a,(FF00+E1) ROM2:7A81 D6 03 sub 03 ROM2:7A83 FE 10 cp 10 ROM2:7A85 38 11 jr c,7A98 ROM2:7A87 E0 E1 ld (FF00+E1),a ROM2:7A89 CD 04 4D call 4D04 ROM2:7A8C FA 02 C4 ld a,(C402) ROM2:7A8F CB 5F bit 3,a ROM2:7A91 28 05 jr z,7A98 ROM2:7A93 FA 1E C4 ld a,(C41E) ROM2:7A96 E0 E1 ld (FF00+E1),a ROM2:7A98 F0 E2 ld a,(FF00+E2) ROM2:7A9A D6 03 sub 03 ROM2:7A9C FE 10 cp 10 ROM2:7A9E D8 ret c ROM2:7A9F E0 E2 ld (FF00+E2),a ROM2:7AA1 CD 0F 49 call 490F ROM2:7AA4 FA 02 C4 ld a,(C402) ROM2:7AA7 CB 57 bit 2,a ROM2:7AA9 C8 ret z ROM2:7AAA FA 1F C4 ld a,(C41F) ROM2:7AAD E0 E2 ld (FF00+E2),a ROM2:7AAF C9 ret ROM2:7AB0 AF xor a ROM2:7AB1 EA 74 C4 ld (C474),a ROM2:7AB4 E0 E7 ld (FF00+E7),a ROM2:7AB6 EA 75 C4 ld (C475),a ROM2:7AB9 3E 10 ld a,10 ROM2:7ABB E0 E9 ld (FF00+E9),a ROM2:7ABD E0 EA ld (FF00+EA),a ROM2:7ABF C9 ret ROM2:7AC0 21 73 C4 ld hl,C473 ROM2:7AC3 7E ld a,(hl) ROM2:7AC4 A7 and a ROM2:7AC5 28 06 jr z,7ACD ROM2:7AC7 35 dec (hl) ROM2:7AC8 C0 ret nz ROM2:7AC9 3E CE ld a,CE ROM2:7ACB E0 E3 ld (FF00+E3),a ROM2:7ACD F0 EB ld a,(FF00+EB) ROM2:7ACF A7 and a ROM2:7AD0 28 71 jr z,7B43 ROM2:7AD2 CD 5F 56 call 565F ROM2:7AD5 F0 EB ld a,(FF00+EB) ROM2:7AD7 A7 and a ROM2:7AD8 28 14 jr z,7AEE ROM2:7ADA FA 6D C4 ld a,(C46D) ROM2:7ADD FE 20 cp 20 ROM2:7ADF D0 ret nc ROM2:7AE0 FE 08 cp 08 ROM2:7AE2 28 19 jr z,7AFD ROM2:7AE4 3D dec a ROM2:7AE5 CA 92 7B jp z,7B92 ROM2:7AE8 3E 0F ld a,0F ;\ ROM2:7AEA EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:7AED C9 ret ROM2:7AEE 3E 10 ld a,10 ROM2:7AF0 E0 E9 ld (FF00+E9),a ROM2:7AF2 E0 EA ld (FF00+EA),a ROM2:7AF4 3E CE ld a,CE ROM2:7AF6 E0 E3 ld (FF00+E3),a ROM2:7AF8 3E 05 ld a,05 ROM2:7AFA E0 EC ld (FF00+EC),a ROM2:7AFC C9 ret ROM2:7AFD 21 EC FF ld hl,FFEC ROM2:7B00 35 dec (hl) ROM2:7B01 7E ld a,(hl) ROM2:7B02 A7 and a ROM2:7B03 28 0F jr z,7B14 ROM2:7B05 3E 03 ld a,03 ROM2:7B07 EA 73 C4 ld (C473),a ROM2:7B0A 3E CF ld a,CF ROM2:7B0C E0 E3 ld (FF00+E3),a ROM2:7B0E 3E 05 ld a,05 ;\ ROM2:7B10 EA D5 CE ld (CED5),a ;} Play metroid hurt sound effect ROM2:7B13 C9 ret ROM2:7B14 AF xor a ROM2:7B15 E0 E9 ld (FF00+E9),a ROM2:7B17 EA 74 C4 ld (C474),a ROM2:7B1A EA 75 C4 ld (C475),a ROM2:7B1D 3E 02 ld a,02 ROM2:7B1F E0 EF ld (FF00+EF),a ROM2:7B21 3E 10 ld a,10 ROM2:7B23 E0 EE ld (FF00+EE),a ROM2:7B25 3E 0D ld a,0D ;\ ROM2:7B27 EA D5 CE ld (CED5),a ;} Play metroid killed sound effect ROM2:7B2A 21 89 D0 ld hl,D089 ROM2:7B2D 7E ld a,(hl) ROM2:7B2E D6 01 sub 01 ROM2:7B30 27 daa ROM2:7B31 77 ld (hl),a ROM2:7B32 21 9A D0 ld hl,D09A ROM2:7B35 7E ld a,(hl) ROM2:7B36 D6 01 sub 01 ROM2:7B38 27 daa ROM2:7B39 77 ld (hl),a ROM2:7B3A 3E C0 ld a,C0 ROM2:7B3C EA 96 D0 ld (D096),a ROM2:7B3F CD 92 3C call 3C92 ROM2:7B42 C9 ret ROM2:7B43 CD CC 7B call 7BCC ROM2:7B46 FA 6D C4 ld a,(C46D) ROM2:7B49 FE FF cp FF ROM2:7B4B CA A3 7B jp z,7BA3 ROM2:7B4E FE 20 cp 20 ROM2:7B50 CA 64 7B jp z,7B64 ROM2:7B53 FE 10 cp 10 ROM2:7B55 28 2F jr z,7B86 ROM2:7B57 FE 09 cp 09 ROM2:7B59 28 2B jr z,7B86 ROM2:7B5B 3D dec a ROM2:7B5C 28 34 jr z,7B92 ROM2:7B5E 3E 0F ld a,0F ;\ ROM2:7B60 EA C0 CE ld (CEC0),a ;} Play shot missile door with beam sound effect ROM2:7B63 C9 ret ROM2:7B64 21 74 C4 ld hl,C474 ROM2:7B67 7E ld a,(hl) ROM2:7B68 FE 02 cp 02 ROM2:7B6A 28 0D jr z,7B79 ROM2:7B6C FE 01 cp 01 ROM2:7B6E 28 05 jr z,7B75 ROM2:7B70 3E 01 ld a,01 ROM2:7B72 EA 74 C4 ld (C474),a ROM2:7B75 3E 02 ld a,02 ROM2:7B77 18 02 jr 7B7B ROM2:7B79 3E 01 ld a,01 ROM2:7B7B EA 75 C4 ld (C475),a ROM2:7B7E 3E 01 ld a,01 ROM2:7B80 E0 E7 ld (FF00+E7),a ROM2:7B82 AF xor a ROM2:7B83 E0 E9 ld (FF00+E9),a ROM2:7B85 C9 ret ROM2:7B86 AF xor a ROM2:7B87 E0 E9 ld (FF00+E9),a ROM2:7B89 CD 41 6E call 6E41 ROM2:7B8C 3E 1A ld a,1A ;\ ROM2:7B8E EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:7B91 C9 ret ROM2:7B92 3E 1A ld a,1A ;\ ROM2:7B94 EA C0 CE ld (CEC0),a ;} Play sound effect 1Ah ROM2:7B97 3E 10 ld a,10 ROM2:7B99 E0 E6 ld (FF00+E6),a ROM2:7B9B 3E 44 ld a,44 ROM2:7B9D E0 EB ld (FF00+EB),a ROM2:7B9F AF xor a ROM2:7BA0 E0 E0 ld (FF00+E0),a ROM2:7BA2 C9 ret ROM2:7BA3 F0 E8 ld a,(FF00+E8) ROM2:7BA5 3C inc a ROM2:7BA6 28 18 jr z,7BC0 ROM2:7BA8 CD 7F 6E call 6E7F ROM2:7BAB 21 71 C4 ld hl,C471 ROM2:7BAE 7E ld a,(hl) ROM2:7BAF A7 and a ROM2:7BB0 C8 ret z ROM2:7BB1 36 00 ld (hl),00 ROM2:7BB3 3E FF ld a,FF ROM2:7BB5 E0 E8 ld (FF00+E8),a ROM2:7BB7 3E 10 ld a,10 ROM2:7BB9 E0 E9 ld (FF00+E9),a ROM2:7BBB 3E 10 ld a,10 ROM2:7BBD E0 EA ld (FF00+EA),a ROM2:7BBF C9 ret ROM2:7BC0 06 01 ld b,01 ROM2:7BC2 11 02 1E ld de,1E02 ROM2:7BC5 CD BA 3C call 3CBA ROM2:7BC8 CD DD 7C call 7CDD ROM2:7BCB C9 ret } ;;; $7BCC: ;;; { ROM2:7BCC F0 FE ld a,(FF00+FE) ROM2:7BCE E6 03 and 03 ROM2:7BD0 C0 ret nz ROM2:7BD1 21 E3 FF ld hl,FFE3 ROM2:7BD4 7E ld a,(hl) ROM2:7BD5 EE 6E xor 6E ROM2:7BD7 77 ld (hl),a ROM2:7BD8 C9 ret } ;;; $7BD9: ;;; { ROM2:7BD9 21 E1 FF ld hl,FFE1 ROM2:7BDC FA 3B D0 ld a,(D03B) ROM2:7BDF 22 ldi (hl),a ROM2:7BE0 FA 3C D0 ld a,(D03C) ROM2:7BE3 77 ld (hl),a ROM2:7BE4 C9 ret } ;;; $7BE5: Enemy AI - enemy A6h (baby metroid egg) ;;; { ROM2:7BE5 FA 1C C4 ld a,(C41C) ROM2:7BE8 A7 and a ROM2:7BE9 28 35 jr z,7C20 ROM2:7BEB 3D dec a ROM2:7BEC 28 16 jr z,7C04 ROM2:7BEE 3D dec a ROM2:7BEF C2 8D 7C jp nz,7C8D ROM2:7BF2 CD 3A 6B call 6B3A ROM2:7BF5 06 02 ld b,02 ROM2:7BF7 11 00 20 ld de,2000 ROM2:7BFA CD BA 3C call 3CBA ROM2:7BFD CD 2A 7D call 7D2A ROM2:7C00 CD DC 7D call 7DDC ROM2:7C03 C9 ret ROM2:7C04 CD FF 75 call 75FF ROM2:7C07 21 E1 FF ld hl,FFE1 ROM2:7C0A 35 dec (hl) ROM2:7C0B 21 E9 FF ld hl,FFE9 ROM2:7C0E 34 inc (hl) ROM2:7C0F 7E ld a,(hl) ROM2:7C10 FE 0C cp 0C ROM2:7C12 C0 ret nz ROM2:7C13 3E 10 ld a,10 ROM2:7C15 22 ldi (hl),a ROM2:7C16 77 ld (hl),a ROM2:7C17 21 1C C4 ld hl,C41C ROM2:7C1A 34 inc (hl) ROM2:7C1B AF xor a ROM2:7C1C EA 63 C4 ld (C463),a ROM2:7C1F C9 ret ROM2:7C20 F0 EF ld a,(FF00+EF) ROM2:7C22 FE 04 cp 04 ROM2:7C24 28 45 jr z,7C6B ROM2:7C26 CD AF 7C call 7CAF ROM2:7C29 21 E2 FF ld hl,FFE2 ROM2:7C2C FA 3C D0 ld a,(D03C) ROM2:7C2F 96 sub (hl) ROM2:7C30 30 02 jr nc,7C34 ROM2:7C32 2F cpl ROM2:7C33 3C inc a ROM2:7C34 FE 18 cp 18 ROM2:7C36 D0 ret nc ROM2:7C37 2D dec l ROM2:7C38 FA 3B D0 ld a,(D03B) ROM2:7C3B 96 sub (hl) ROM2:7C3C 30 02 jr nc,7C40 ROM2:7C3E 2F cpl ROM2:7C3F 3C inc a ROM2:7C40 FE 10 cp 10 ROM2:7C42 D0 ret nc ROM2:7C43 3E 01 ld a,01 ROM2:7C45 EA 63 C4 ld (C463),a ROM2:7C48 CD BC 7C call 7CBC ROM2:7C4B 21 EA FF ld hl,FFEA ROM2:7C4E 34 inc (hl) ROM2:7C4F 7E ld a,(hl) ROM2:7C50 FE 30 cp 30 ROM2:7C52 C0 ret nz ROM2:7C53 AF xor a ROM2:7C54 32 ldd (hl),a ROM2:7C55 77 ld (hl),a ROM2:7C56 E0 E6 ld (FF00+E6),a ROM2:7C58 3E 03 ld a,03 ROM2:7C5A EA 1C C4 ld (C41C),a ROM2:7C5D 21 65 C4 ld hl,C465 ROM2:7C60 34 inc (hl) ROM2:7C61 3E 04 ld a,04 ROM2:7C63 E0 EF ld (FF00+EF),a ROM2:7C65 3E 16 ld a,16 ;\ ROM2:7C67 EA D5 CE ld (CED5),a ;} Play Baby Metroid hatched / clearing blocks sound effect ROM2:7C6A C9 ret ROM2:7C6B 3E A8 ld a,A8 ROM2:7C6D E0 E3 ld (FF00+E3),a ROM2:7C6F 21 E2 FF ld hl,FFE2 ROM2:7C72 FA 3C D0 ld a,(D03C) ROM2:7C75 96 sub (hl) ROM2:7C76 30 02 jr nc,7C7A ROM2:7C78 2F cpl ROM2:7C79 3C inc a ROM2:7C7A FE 60 cp 60 ROM2:7C7C D0 ret nc ROM2:7C7D 3E 01 ld a,01 ROM2:7C7F EA 65 C4 ld (C465),a ROM2:7C82 3E 02 ld a,02 ROM2:7C84 EA 1C C4 ld (C41C),a ROM2:7C87 3E 16 ld a,16 ;\ ROM2:7C89 EA D5 CE ld (CED5),a ;} Play Baby Metroid hatched / clearing blocks sound effect ROM2:7C8C C9 ret ROM2:7C8D 21 E9 FF ld hl,FFE9 ROM2:7C90 34 inc (hl) ROM2:7C91 7E ld a,(hl) ROM2:7C92 CB 47 bit 0,a ROM2:7C94 28 07 jr z,7C9D ROM2:7C96 CB 3F srl a ROM2:7C98 C6 E2 add a,E2 ROM2:7C9A E0 E3 ld (FF00+E3),a ROM2:7C9C C9 ret ROM2:7C9D FE 0C cp 0C ROM2:7C9F CC A7 7C call z,7CA7 ROM2:7CA2 3E A8 ld a,A8 ROM2:7CA4 E0 E3 ld (FF00+E3),a ROM2:7CA6 C9 ret } ;;; $7CA7: ;;; { ROM2:7CA7 36 00 ld (hl),00 ROM2:7CA9 3E 01 ld a,01 ROM2:7CAB EA 1C C4 ld (C41C),a ROM2:7CAE C9 ret } ;;; $7CAF: ;;; { ROM2:7CAF F0 FE ld a,(FF00+FE) ROM2:7CB1 E6 03 and 03 ROM2:7CB3 C0 ret nz ROM2:7CB4 21 E6 FF ld hl,FFE6 ROM2:7CB7 7E ld a,(hl) ROM2:7CB8 EE 10 xor 10 ROM2:7CBA 77 ld (hl),a ROM2:7CBB C9 ret } ;;; $7CBC: ;;; { ROM2:7CBC F0 FE ld a,(FF00+FE) ROM2:7CBE E6 01 and 01 ROM2:7CC0 C0 ret nz ROM2:7CC1 21 E3 FF ld hl,FFE3 ROM2:7CC4 F0 E9 ld a,(FF00+E9) ROM2:7CC6 3D dec a ROM2:7CC7 28 0D jr z,7CD6 ROM2:7CC9 34 inc (hl) ROM2:7CCA 7E ld a,(hl) ROM2:7CCB FE A7 cp A7 ROM2:7CCD C0 ret nz ROM2:7CCE 21 E9 FF ld hl,FFE9 ROM2:7CD1 7E ld a,(hl) ROM2:7CD2 EE 01 xor 01 ROM2:7CD4 77 ld (hl),a ROM2:7CD5 C9 ret ROM2:7CD6 35 dec (hl) ROM2:7CD7 7E ld a,(hl) ROM2:7CD8 FE A5 cp A5 ROM2:7CDA C0 ret nz ROM2:7CDB 18 F1 jr 7CCE } ;;; $7CDD: ;;; { ROM2:7CDD F0 E9 ld a,(FF00+E9) ROM2:7CDF FE 10 cp 10 ROM2:7CE1 38 11 jr c,7CF4 ROM2:7CE3 CD 17 4B call 4B17 ROM2:7CE6 FA 02 C4 ld a,(C402) ROM2:7CE9 CB 4F bit 1,a ROM2:7CEB 28 17 jr z,7D04 ROM2:7CED FA 1E C4 ld a,(C41E) ROM2:7CF0 E0 E1 ld (FF00+E1),a ROM2:7CF2 18 10 jr 7D04 ROM2:7CF4 F0 E1 ld a,(FF00+E1) ROM2:7CF6 FE 10 cp 10 ROM2:7CF8 38 F3 jr c,7CED ROM2:7CFA CD 04 4D call 4D04 ROM2:7CFD FA 02 C4 ld a,(C402) ROM2:7D00 CB 5F bit 3,a ROM2:7D02 20 E9 jr nz,7CED ROM2:7D04 F0 EA ld a,(FF00+EA) ROM2:7D06 FE 10 cp 10 ROM2:7D08 38 0F jr c,7D19 ROM2:7D0A CD 36 47 call 4736 ROM2:7D0D FA 02 C4 ld a,(C402) ROM2:7D10 CB 47 bit 0,a ROM2:7D12 C8 ret z ROM2:7D13 FA 1F C4 ld a,(C41F) ROM2:7D16 E0 E2 ld (FF00+E2),a ROM2:7D18 C9 ret ROM2:7D19 F0 E2 ld a,(FF00+E2) ROM2:7D1B FE 10 cp 10 ROM2:7D1D 38 F4 jr c,7D13 ROM2:7D1F CD 0F 49 call 490F ROM2:7D22 FA 02 C4 ld a,(C402) ROM2:7D25 CB 57 bit 2,a ROM2:7D27 20 EA jr nz,7D13 ROM2:7D29 C9 ret } ;;; $7D2A: ;;; { ROM2:7D2A 21 E2 FF ld hl,FFE2 ROM2:7D2D 7E ld a,(hl) ROM2:7D2E EA 3B C4 ld (C43B),a ROM2:7D31 FA 1F C4 ld a,(C41F) ROM2:7D34 77 ld (hl),a ROM2:7D35 F0 E9 ld a,(FF00+E9) ROM2:7D37 FE 10 cp 10 ROM2:7D39 38 19 jr c,7D54 ROM2:7D3B CD 28 4A call 4A28 ROM2:7D3E FA 02 C4 ld a,(C402) ROM2:7D41 CB 4F bit 1,a ROM2:7D43 28 1F jr z,7D64 ROM2:7D45 FA 17 C4 ld a,(C417) ROM2:7D48 FE 64 cp 64 ROM2:7D4A CC 97 7D call z,7D97 ROM2:7D4D FA 1E C4 ld a,(C41E) ROM2:7D50 E0 E1 ld (FF00+E1),a ROM2:7D52 18 10 jr 7D64 ROM2:7D54 F0 E1 ld a,(FF00+E1) ROM2:7D56 FE 10 cp 10 ROM2:7D58 38 F3 jr c,7D4D ROM2:7D5A CD 30 4C call 4C30 ROM2:7D5D FA 02 C4 ld a,(C402) ROM2:7D60 CB 5F bit 3,a ROM2:7D62 20 E1 jr nz,7D45 ROM2:7D64 FA 3B C4 ld a,(C43B) ROM2:7D67 E0 E2 ld (FF00+E2),a ROM2:7D69 F0 EA ld a,(FF00+EA) ROM2:7D6B FE 10 cp 10 ROM2:7D6D 38 17 jr c,7D86 ROM2:7D6F CD 62 46 call 4662 ROM2:7D72 FA 02 C4 ld a,(C402) ROM2:7D75 CB 47 bit 0,a ROM2:7D77 C8 ret z ROM2:7D78 FA 17 C4 ld a,(C417) ROM2:7D7B FE 64 cp 64 ROM2:7D7D CC 97 7D call z,7D97 ROM2:7D80 FA 1F C4 ld a,(C41F) ROM2:7D83 E0 E2 ld (FF00+E2),a ROM2:7D85 C9 ret ROM2:7D86 F0 E2 ld a,(FF00+E2) ROM2:7D88 FE 10 cp 10 ROM2:7D8A 38 F4 jr c,7D80 ROM2:7D8C CD 3B 48 call 483B ROM2:7D8F FA 02 C4 ld a,(C402) ROM2:7D92 CB 57 bit 2,a ROM2:7D94 20 E2 jr nz,7D78 ROM2:7D96 C9 ret } ;;; $7D97: ;;; { ROM2:7D97 CD CE 3C call 3CCE ROM2:7D9A 3E 16 ld a,16 ;\ ROM2:7D9C EA D5 CE ld (CED5),a ;} Play Baby Metroid hatched / clearing blocks sound effect ROM2:7D9F C9 ret } ;;; $7DA0: ;;; { ROM2:7DA0 3E FF ld a,FF ROM2:7DA2 EA 6D C4 ld (C46D),a ROM2:7DA5 4F ld c,a ROM2:7DA6 21 68 C4 ld hl,C468 ROM2:7DA9 11 FD FF ld de,FFFD ROM2:7DAC 1A ld a,(de) ROM2:7DAD BE cp (hl) ROM2:7DAE C0 ret nz ROM2:7DAF 1D dec e ROM2:7DB0 2D dec l ROM2:7DB1 1A ld a,(de) ROM2:7DB2 BE cp (hl) ROM2:7DB3 C0 ret nz ROM2:7DB4 2D dec l ROM2:7DB5 4E ld c,(hl) ROM2:7DB6 3E FF ld a,FF ROM2:7DB8 22 ldi (hl),a ROM2:7DB9 22 ldi (hl),a ROM2:7DBA 22 ldi (hl),a ROM2:7DBB 46 ld b,(hl) ROM2:7DBC 77 ld (hl),a ROM2:7DBD 79 ld a,c ROM2:7DBE EA 6D C4 ld (C46D),a ROM2:7DC1 78 ld a,b ROM2:7DC2 EA 6E C4 ld (C46E),a ROM2:7DC5 C9 ret } ;;; $7DC6: ;;; { ROM2:7DC6 01 90 18 ld bc,1890 ROM2:7DC9 21 E1 FF ld hl,FFE1 ROM2:7DCC 7E ld a,(hl) ROM2:7DCD B8 cp b ROM2:7DCE 30 01 jr nc,7DD1 ROM2:7DD0 70 ld (hl),b ROM2:7DD1 2C inc l ROM2:7DD2 7E ld a,(hl) ROM2:7DD3 B8 cp b ROM2:7DD4 30 02 jr nc,7DD8 ROM2:7DD6 70 ld (hl),b ROM2:7DD7 C9 ret ROM2:7DD8 B9 cp c ROM2:7DD9 D8 ret c ROM2:7DDA 71 ld (hl),c ROM2:7DDB C9 ret } ;;; $7DDC: ;;; { ROM2:7DDC 01 90 18 ld bc,1890 ROM2:7DDF 21 E1 FF ld hl,FFE1 ROM2:7DE2 7E ld a,(hl) ROM2:7DE3 B8 cp b ROM2:7DE4 30 03 jr nc,7DE9 ROM2:7DE6 70 ld (hl),b ROM2:7DE7 18 04 jr 7DED ROM2:7DE9 B9 cp c ROM2:7DEA 38 01 jr c,7DED ROM2:7DEC 71 ld (hl),c ROM2:7DED 2C inc l ROM2:7DEE 7E ld a,(hl) ROM2:7DEF B8 cp b ROM2:7DF0 30 02 jr nc,7DF4 ROM2:7DF2 70 ld (hl),b ROM2:7DF3 C9 ret ROM2:7DF4 B9 cp c ROM2:7DF5 D8 ret c ROM2:7DF6 71 ld (hl),c ROM2:7DF7 C9 ret } ;;; $7DF8: ;;; { ROM2:7DF8 F0 FE ld a,(FF00+FE) ROM2:7DFA E6 01 and 01 ROM2:7DFC C0 ret nz ROM2:7DFD 21 E0 FF ld hl,FFE0 ROM2:7E00 7E ld a,(hl) ROM2:7E01 EE 80 xor 80 ROM2:7E03 77 ld (hl),a ROM2:7E04 C9 ret } ;;; $7E05: Free space ;;; { ROM2:7E05 fillto $3:4000, $00 }