-
Notifications
You must be signed in to change notification settings - Fork 1k
/
debug_party.asm
155 lines (139 loc) · 2.64 KB
/
debug_party.asm
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
SetDebugNewGameParty: ; unreferenced except in _DEBUG
ld de, DebugNewGameParty
.loop
ld a, [de]
cp -1
ret z
ld [wCurPartySpecies], a
inc de
ld a, [de]
ld [wCurEnemyLevel], a
inc de
call AddPartyMon
jr .loop
DebugNewGameParty: ; unreferenced except in _DEBUG
; Exeggutor is the only debug party member shared with Red, Green, and Japanese Blue.
; "Tsunekazu Ishihara: Exeggutor is my favorite. That's because I was
; always using this character while I was debugging the program."
; From https://web.archive.org/web/20000607152840/http://pocket.ign.com/news/14973.html
db EXEGGUTOR, 90
IF DEF(_DEBUG)
db MEW, 5
ELSE
db MEW, 20
ENDC
db JOLTEON, 56
db DUGTRIO, 56
db ARTICUNO, 57
IF DEF(_DEBUG)
db PIKACHU, 5
ENDC
db -1 ; end
PrepareNewGameDebug: ; dummy except in _DEBUG
IF DEF(_DEBUG)
xor a ; PLAYER_PARTY_DATA
ld [wMonDataLocation], a
; Fly anywhere.
dec a ; $ff (all bits)
ld [wTownVisitedFlag], a
ld [wTownVisitedFlag + 1], a
; Get all badges except Earth Badge.
ld a, ~(1 << BIT_EARTHBADGE)
ld [wObtainedBadges], a
call SetDebugNewGameParty
; Exeggutor gets four HM moves.
ld hl, wPartyMon1Moves
ld a, FLY
ld [hli], a
ld a, CUT
ld [hli], a
ld a, SURF
ld [hli], a
ld a, STRENGTH
ld [hl], a
ld hl, wPartyMon1PP
ld a, 15
ld [hli], a
ld a, 30
ld [hli], a
ld a, 15
ld [hli], a
ld [hl], a
; Jolteon gets Thunderbolt.
ld hl, wPartyMon3Moves + 3
ld a, THUNDERBOLT
ld [hl], a
ld hl, wPartyMon3PP + 3
ld a, 15
ld [hl], a
; Articuno gets Fly.
ld hl, wPartyMon5Moves
ld a, FLY
ld [hl], a
ld hl, wPartyMon5PP
ld a, 15
ld [hl], a
; Pikachu gets Surf.
ld hl, wPartyMon6Moves + 2
ld a, SURF
ld [hl], a
ld hl, wPartyMon6PP + 2
ld a, 15
ld [hl], a
; Get some debug items.
ld hl, wNumBagItems
ld de, DebugItemsList
.items_loop
ld a, [de]
cp -1
jr z, .items_end
ld [wCurItem], a
inc de
ld a, [de]
inc de
ld [wItemQuantity], a
call AddItemToInventory
jr .items_loop
.items_end
; Complete the Pokédex.
ld hl, wPokedexOwned
call DebugSetPokedexEntries
ld hl, wPokedexSeen
call DebugSetPokedexEntries
SetEvent EVENT_GOT_POKEDEX
; Rival chose Squirtle,
; Player chose Charmander.
ld hl, wRivalStarter
ld a, STARTER2
ld [hli], a
inc hl ; hl = wPlayerStarter
ld a, STARTER1
ld [hl], a
ret
DebugSetPokedexEntries:
ld b, wPokedexOwnedEnd - wPokedexOwned - 1
ld a, %11111111
.loop
ld [hli], a
dec b
jr nz, .loop
ld [hl], %01111111
ret
DebugItemsList:
db BICYCLE, 1
db FULL_RESTORE, 99
db FULL_HEAL, 99
db ESCAPE_ROPE, 99
db RARE_CANDY, 99
db MASTER_BALL, 99
db TOWN_MAP, 1
db SECRET_KEY, 1
db CARD_KEY, 1
db S_S_TICKET, 1
db LIFT_KEY, 1
db -1 ; end
DebugUnusedList:
db -1 ; end
ELSE
ret
ENDC