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
|
SoftReset::
call StopAllSounds
call GBPalWhiteOut
ld c, 32
call DelayFrames
; fallthrough
Init::
; Program init.
di
xor a
ldh [rIF], a
ldh [rIE], a
ldh [rSCX], a
ldh [rSCY], a
ldh [rSB], a
ldh [rSC], a
ldh [rWX], a
ldh [rWY], a
ldh [rTMA], a
ldh [rTAC], a
ldh [rBGP], a
ldh [rOBP0], a
ldh [rOBP1], a
ld a, LCDC_ON
ldh [rLCDC], a
call DisableLCD
ld sp, wStack
ld hl, STARTOF(WRAM0)
ld bc, SIZEOF(WRAM0)
.loop
ld [hl], 0
inc hl
dec bc
ld a, b
or c
jr nz, .loop
call ClearVram
ld hl, STARTOF(HRAM)
ld bc, SIZEOF(HRAM) - 1
call FillMemory
call ClearSprites
ld a, BANK(WriteDMACodeToHRAM)
ldh [hLoadedROMBank], a
ld [rROMB], a
call WriteDMACodeToHRAM
xor a
ldh [hTileAnimations], a
ldh [rSTAT], a
ldh [hSCX], a
ldh [hSCY], a
ldh [rIF], a
ld [wc0f3], a
ld [wc0f3 + 1], a
ld a, IE_VBLANK | IE_TIMER | IE_SERIAL
ldh [rIE], a
ld a, 144 ; move the window off-screen
ldh [hWY], a
ldh [rWY], a
ld a, 7
ldh [rWX], a
ld a, CONNECTION_NOT_ESTABLISHED
ldh [hSerialConnectionStatus], a
ld h, HIGH(vBGMap0)
call ClearBgMap
ld h, HIGH(vBGMap1)
call ClearBgMap
ld a, LCDC_DEFAULT
ldh [rLCDC], a
ld a, 16
ldh [hSoftReset], a
call StopAllSounds
ei
predef LoadSGB
ld a, BANK(SFX_Shooting_Star)
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
ld a, HIGH(vBGMap1)
ldh [hAutoBGTransferDest + 1], a
xor a
ldh [hAutoBGTransferDest], a
dec a
ld [wUpdateSpritesEnabled], a
predef PlayIntro
call DisableLCD
call ClearVram
call GBPalNormal
call ClearSprites
ld a, LCDC_DEFAULT
ldh [rLCDC], a
jp PrepareTitleScreen
ClearVram::
ld hl, STARTOF(VRAM)
ld bc, SIZEOF(VRAM)
xor a
jp FillMemory
StopAllSounds::
ld a, BANK("Audio Engine 1")
ld [wAudioROMBank], a
ld [wAudioSavedROMBank], a
xor a
ld [wAudioFadeOutControl], a
ld [wNewSoundID], a
ld [wLastMusicSoundID], a
jp StopAllMusic
|