| Gyruss | Routines |
| Prev: A31D | Up: Map | Next: A3E1 |
|
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 |