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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
|
PlayCreditsSequence:
ld a, MUSIC_STOP
call PlaySong
call Func_1d705
call AddAllMastersToMastersBeatenList
xor a
ld [wOWMapEvents + 1], a
ld a, MUSIC_CREDITS
call PlaySong
farcall FlashWhiteScreen
call SetCreditsSequenceCmdPtr
.loop_cmds
call DoFrameIfLCDEnabled
call Func_1d765
call ExecuteCreditsSequenceCmd
ld a, [wSequenceDelay]
cp $ff
jr nz, .loop_cmds
call WaitForSongToFinish
ld a, START
farcall WaitUntilKeysArePressed
ld a, MUSIC_STOP
call PlaySong
farcall FadeScreenToWhite
call Func_3ca4
call SetWindowOff
call Func_1d758
call EnableLCD
call DoFrameIfLCDEnabled
call DisableLCD
ld hl, wLCDC
set 1, [hl]
call ResetDoFrameFunction
ret
Func_1d705:
call DisableLCD
farcall Func_10a9b
call Func_3ca0
farcall InitMenuScreen
call Func_1d7ee
ld hl, Func_3e31
call SetDoFrameFunction
call .Func_1d720 ; can be fallthrough
ret
.Func_1d720
ld a, $91
ld [wd647], a
ld [wd649], a
ld a, $01
ld [wd648], a
ld [wd64a], a
call Func_1d765
call SetWindowOn
call .Func_1d73a ; can be fallthrough
ret
.Func_1d73a
push hl
di
xor a
ld [wd657], a
ld hl, wLCDCFunctionTrampoline + 1
ld [hl], LOW(Func_3e44)
inc hl
ld [hl], HIGH(Func_3e44)
ei
ld hl, rSTAT
set STAT_LYC, [hl]
xor a
ldh [rLYC], a
ld hl, rIE
set INT_LCD_STAT, [hl]
pop hl
ret
Func_1d758:
push hl
ld hl, rSTAT
res STAT_LYC, [hl]
ld hl, rIE
res INT_LCD_STAT, [hl]
pop hl
ret
Func_1d765:
push hl
push bc
push de
xor a
ldh [hWY], a
ld hl, wd659
ld de, wd65f
ld a, [wd648]
or a
jr nz, .asm_1d785
ld a, $a7
ldh [hWX], a
ld [hli], a
push hl
ld hl, wLCDC
set 1, [hl]
pop hl
jr .asm_1d7e2
.asm_1d785
ld a, [wd647]
or a
jr z, .asm_1d79e
dec a
ld [de], a
inc de
ld a, $a7
ldh [hWX], a
ld [hli], a
push hl
ld hl, wLCDC
set 1, [hl]
pop hl
ld a, $07
jr .asm_1d7a9
.asm_1d79e
ld a, $07
ldh [hWX], a
push hl
ld hl, wLCDC
res 1, [hl]
pop hl
.asm_1d7a9
ld [hli], a
ld a, [wd647]
dec a
ld c, a
ld a, [wd648]
add c
ld c, a
ld a, [wd649]
dec a
cp c
jr c, .asm_1d7d4
jr z, .asm_1d7d4
ld a, c
ld [de], a
inc de
push af
ld a, $a7
ld [hli], a
pop bc
ld a, [wd64a]
or a
jr z, .asm_1d7e2
ld a, [wd649]
dec a
ld [de], a
inc de
ld a, $07
ld [hli], a
.asm_1d7d4
ld a, [wd649]
dec a
ld c, a
ld a, [wd64a]
add c
ld [de], a
inc de
ld a, $a7
ld [hli], a
.asm_1d7e2
ld a, $ff
ld [de], a
ld a, $01
ld [wd665], a
pop de
pop bc
pop hl
ret
Func_1d7ee:
xor a
lb de, 0, 32
lb bc, 20, 18
lb hl, 0, 0
call FillRectangle
ret
|