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
|
HandleEraseAllDataMenu: ; 0x815d
ld a, [wScreenState]
rst JumpTable ; calls JumpToFuncInTable
EraseAllDataMenuFunctions: ; 0x8161
dw CheckForResetButtonCombo
dw HandleEraseAllDataInput
dw ExitEraseAllDataMenu
CheckForResetButtonCombo: ; 0x8167
ld a, [hJoypadState]
cp (D_UP | D_RIGHT | START | SELECT)
jr z, .heldCorrectButtons
ld hl, wCurrentScreen
inc [hl]
ret
.heldCorrectButtons
ld a, $41
ld [hLCDC], a
ld a, $e4
ld [wBGP], a
xor a
ld [wOBP0], a
ld [wOBP1], a
ld [hSCX], a
ld [hSCY], a
ld a, [hGameBoyColorFlag]
ld hl, EraseAllDataGfxPointers
call LoadVideoData
call ClearOAMBuffer
call SetAllPalettesWhite
call EnableLCD
call SGBNormal
call FadeIn
ld hl, wScreenState
inc [hl]
ret
EraseAllDataGfxPointers: ; 0x81a2
dw EraseAllDataGfx_GameBoy
dw EraseAllDataGfx_GameBoyColor
EraseAllDataGfx_GameBoy: ; 0x81a6
VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400
db $FF, $FF ; terminators
EraseAllDataGfx_GameBoyColor: ; 0x81b6
VIDEO_DATA_TILES EraseAllDataGfx, vTilesBG, $300
VIDEO_DATA_TILEMAP EraseAllDataTilemap, vBGMap, $400
VIDEO_DATA_BGATTR EraseAllDataBGAttributes, vBGMap, $400
VIDEO_DATA_PALETTES HighScoresRedStagePalettes, $80
db $FF, $FF ; terminators
HandleEraseAllDataInput: ; 0x81d4
ld a, [hNewlyPressedButtons]
bit BIT_A_BUTTON, a
jr z, .checkForBButton
ld hl, $a000
xor a
ld b, a
.eraseSavedDataLoop
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
ld [hli], a
dec b
jr nz, .eraseSavedDataLoop
ld hl, wScreenState
inc [hl]
ret
.checkForBButton
bit BIT_B_BUTTON, a
ret z
ld hl, wScreenState
inc [hl]
ret
ExitEraseAllDataMenu: ; 0x820f
call FadeOut
call DisableLCD
ld hl, wCurrentScreen
inc [hl]
xor a
ld [wScreenState], a
ret
|