Prev: A31D Up: Map Next: A3E1
A33B: Initial game loop
Used by the routine at init_stage_8.
initial_game_loop A33B LD HL,$80B5 New center of projection at bottom center for implosion
A33E LD (tmp_center_of_projection),HL Set tmp_center_of_projection, which will be copied to center_of_projection
A341 LD HL,status_flags Status flags
A344 SET 4,(HL) Set bit 4
Allocate 6 dot sprites for the implosion that becomes the ship
A346 LD IY,LA4B2 Sprite init data
A34A LD B,$06 Allocate 6 sprites
initial_game_loop_0 A34C RST $28 Allocate sprite
A34D LD (IX+$00),$0D Sprite type is $0D (a dot)
A351 LD (IX+$01),$00 Polar y
A355 LD (IX+$02),$00 Polar x
A359 RST $30 Load sprite pattern
A35A LD (IX+$01),$16 Polar y
A35E LD A,(IY+$00) Get init data
A361 LD (IX+$02),A Polar x
A364 LD (IX+$0B),$09 Set color (pink)
A368 INC IY Next init data
A36A DJNZ initial_game_loop_0 Loop for 6 sprites
Display implosion
A36C LD B,$14 20
initial_game_loop_1 A36E PUSH BC Save counter
A36F CALL move_dots Move dots
A372 CALL control_ship Control ship
A375 CALL upload_sprite_data Upload sprite data
A378 HALT Wait interrupt
A379 CALL display_stars Display stars
A37C CALL display_center_enemies Display center enemies
A37F POP BC Restore counter
A380 DJNZ initial_game_loop_1 Loop 20 times
Allocate ship etc.
A382 CALL init_sprite_data
A385 RST $28 Allocate sprite
A386 LD (IX+$00),$00 Sprite type $00 (ship body)
A38A LD (IX+$01),$00 Polar y
A38E LD (IX+$02),$00 Polar x
A392 LD (IX+$0B),$06 Set color (red)
A396 RST $30 Load sprite pattern
A397 RST $28 Allocate sprite
A398 LD (IX+$00),$01 Sprite type $01 (ship exhaust)
A39C LD (IX+$01),$00 Polar y
A3A0 LD (IX+$02),$00 Polar x
A3A4 LD (IX+$0B),$04 Set color (blue)
A3A8 RST $30 Load sprite pattern
A3A9 CALL display_ship_background_patterns Display ship background patterns
A3AC CALL upload_sprite_data Upload sprite data
A3AF LD A,$07 Play a sound
A3B1 CALL call_play_sound ...
Game loop 60 times
A3B4 LD B,$3C 60
initial_game_loop_2 A3B6 HALT Wait interrupt
A3B7 PUSH BC Save counter
A3B8 CALL display_stars Display stars
A3BB CALL control_ship Control ship
A3BE CALL display_center_enemies Display center enemies
A3C1 CALL next_frame_upl_sprites Upload sprites
A3C4 POP BC Restore counter
A3C5 DJNZ initial_game_loop_2 Loop 60 times
A3C7 LD HL,$1A00 Clear warps line
A3CA LD DE,$0020 ...
A3CD XOR A ...
A3CE CALL $1F82 FILL_VRAM
A3D1 LD A,(status_flags) Status
A3D4 BIT 7,A Check bit for 2 players
A3D6 RET Z Return if not
A3D7 LD HL,$192C Clear player message
A3DA LD DE,$0008 ...
A3DD XOR A ...
A3DE JP $1F82 FILL_VRAM and return
Prev: A31D Up: Map Next: A3E1