blob: 45c9bceae8a8f38f180a562376caf75431bd2be4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
$A2F8: 24 20 bit Globals::zp_flags
$A2FA: 30 01 bmi @save_registers
$A2FC: 40 rti
@save_registers:
$A2FD: 48 pha
$A2FE: 8A txa
$A2FF: 48 pha
$A300: 98 tya
$A301: 48 pha
$A302: A9 00 lda #$00
$A304: 8D 03 20 sta OAM::m_address
$A307: A9 02 lda #$02
$A309: 8D 14 40 sta OAM::m_dma
$A30C: 24 28 bit Globals::zp_extra_flags
$A30E: 10 03 bpl @check_pause
$A310: 20 EE 8C jsr Score::nmi_update_scores
@check_pause:
$A313: 24 38 bit Driver::zp_flags
$A315: 50 03 bvc @increase_rand
$A317: 20 62 A2 jsr Driver::nmi_hud_toggle_pause
@increase_rand:
$A31A: E6 0A inc Prng::zp_rand
$A31C: A9 08 lda #$08
$A31E: 25 20 and Globals::zp_flags
$A320: D0 6E bne @ppu_registers
$A322: 24 2E bit Driver::zp_blink_status
$A324: 10 0B bpl @update_lifes
$A326: A9 00 lda #$00
$A328: 50 02 bvc @set_blinking
$A32A: A9 70 lda #$70
@set_blinking:
$A32C: 85 04 sta Globals::zp_nmi_reserved
$A32E: 20 BC A2 jsr Driver::nmi_blink_player_selection
@update_lifes:
$A331: A5 50 lda Player::zp_state
$A333: 29 08 and #$08
$A335: F0 34 beq @shuttle_update
$A337: 2C 02 20 bit PPU::m_status
$A33A: A9 28 lda #$28
$A33C: 8D 06 20 sta PPU::m_address
$A33F: A9 4B lda #$4B
$A341: 8D 06 20 sta PPU::m_address
$A344: A5 53 lda Player::zp_lifes
$A346: 18 clc
$A347: 69 10 adc #$10
$A349: 8D 07 20 sta PPU::m_data
$A34C: 24 27 bit Globals::zp_multiplayer
$A34E: 10 15 bpl @unset_life_flag
$A350: 2C 02 20 bit PPU::m_status
$A353: A9 28 lda #$28
$A355: 8D 06 20 sta PPU::m_address
$A358: A9 56 lda #$56
$A35A: 8D 06 20 sta PPU::m_address
$A35D: A5 54 lda $54
$A35F: 18 clc
$A360: 69 10 adc #$10
$A362: 8D 07 20 sta PPU::m_data
@unset_life_flag:
$A365: A5 50 lda Player::zp_state
$A367: 29 F7 and #$F7
$A369: 85 50 sta Player::zp_state
@shuttle_update:
$A36B: A5 20 lda Globals::zp_flags
$A36D: AA tax
$A36E: 29 20 and #$20
$A370: F0 13 beq @game_status
$A372: A5 CB lda Items::zp_collected
$A374: D0 06 bne @do_update_shuttle
$A376: 20 78 89 jsr Background::nmi_clear_shuttle
$A379: 4C 7F A3 jmp @unset_shuttle_flag
@do_update_shuttle:
$A37C: 20 59 91 jsr Items::update_shuttle
@unset_shuttle_flag:
$A37F: A5 20 lda Globals::zp_flags
$A381: 29 DF and #$DF
$A383: 85 20 sta Globals::zp_flags
@game_status:
$A385: 8A txa
$A386: 29 01 and #$01
$A388: D0 06 bne @ppu_registers
$A38A: A5 30 lda Title::zp_title_timer
$A38C: F0 02 beq @ppu_registers
$A38E: C6 30 dec Title::zp_title_timer
@ppu_registers:
$A390: 24 20 bit Globals::zp_flags
$A392: 50 13 bvc @scroll
$A394: A9 BF lda #$BF
$A396: 25 20 and Globals::zp_flags
$A398: 85 20 sta Globals::zp_flags
$A39A: 2C 02 20 bit PPU::m_status
$A39D: A5 81 lda PPU::zp_mask
$A39F: 8D 01 20 sta PPU::m_mask
$A3A2: A5 80 lda PPU::zp_control
$A3A4: 8D 00 20 sta PPU::m_control
@scroll:
$A3A7: 2C 02 20 bit PPU::m_status
$A3AA: A9 00 lda #$00
$A3AC: 8D 05 20 sta PPU::m_scroll
$A3AF: 8D 05 20 sta PPU::m_scroll
$A3B2: 20 1D 8B jsr Sound::tick
$A3B5: A9 7F lda #$7F
$A3B7: 25 20 and Globals::zp_flags
$A3B9: 85 20 sta Globals::zp_flags
$A3BB: 68 pla
$A3BC: A8 tay
$A3BD: 68 pla
$A3BE: AA tax
$A3BF: 68 pla
$A3C0: 40 rti
irq:
|