summaryrefslogtreecommitdiff
path: root/src/sram.asm
blob: 90e1093039bcf7b980c5cfa358f34bf8ede31d48 (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
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
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
SECTION "SRAM0", SRAM

s0a000:: ; a000
	ds $3

; what was the last option selected by the player
; for the printer contrast level (0 ~ 4)
sPrinterContrastLevel:: ; a003
	ds $1
s0a004:: ; a004
	ds $1

; keeps track of the number of times Card Pop!
; was done successfully within this save file
sTotalCardPopsDone:: ; a005
	ds $1

sTextSpeed:: ; a006
	ds $1

; store settings for animation enabled/disabled
; 0 means enabled, 1 means disabled
sAnimationsDisabled:: ; a007
	ds $1

s0a008:: ; a008
	ds $1
sSkipDelayAllowed:: ; a009
	ds $1
sReceivedLegendaryCards:: ; a00a
	ds $1
sUnusedSaveDataValidationByte:: ; a00b
	ds $1
s0a00c:: ; a00c
	ds $4

sPlayerName:: ; a010
	ds NAME_BUFFER_LENGTH

	ds $e0

sCardAndDeckSaveData::

; for each card, how many (0-127) the player owns
; CARD_NOT_OWNED ($80) indicates that the player has not yet seen the card
sCardCollection:: ; a100
	ds $100

sBuiltDecks::
sDeck1:: deck_struct sDeck1 ; a200
sDeck2:: deck_struct sDeck2 ; a254
sDeck3:: deck_struct sDeck3 ; a2a8
sDeck4:: deck_struct sDeck4 ; a2fc

sSavedDecks::
sSavedDeck1::  deck_struct sSavedDeck1  ; a350
sSavedDeck2::  deck_struct sSavedDeck2  ; a3a4
sSavedDeck3::  deck_struct sSavedDeck3  ; a3f8
sSavedDeck4::  deck_struct sSavedDeck4  ; a44c
sSavedDeck5::  deck_struct sSavedDeck5  ; a4a0
sSavedDeck6::  deck_struct sSavedDeck6  ; a4f4
sSavedDeck7::  deck_struct sSavedDeck7  ; a548
sSavedDeck8::  deck_struct sSavedDeck8  ; a59c
sSavedDeck9::  deck_struct sSavedDeck9  ; a5f0
sSavedDeck10:: deck_struct sSavedDeck10 ; a644
sSavedDeck11:: deck_struct sSavedDeck11 ; a698
sSavedDeck12:: deck_struct sSavedDeck12 ; a6ec
sSavedDeck13:: deck_struct sSavedDeck13 ; a740
sSavedDeck14:: deck_struct sSavedDeck14 ; a794
sSavedDeck15:: deck_struct sSavedDeck15 ; a7e8
sSavedDeck16:: deck_struct sSavedDeck16 ; a83c
sSavedDeck17:: deck_struct sSavedDeck17 ; a890
sSavedDeck18:: deck_struct sSavedDeck18 ; a8e4
sSavedDeck19:: deck_struct sSavedDeck19 ; a938
sSavedDeck20:: deck_struct sSavedDeck20 ; a98c
sSavedDeck21:: deck_struct sSavedDeck21 ; a9e0
sSavedDeck22:: deck_struct sSavedDeck22 ; aa34
sSavedDeck23:: deck_struct sSavedDeck23 ; aa88
sSavedDeck24:: deck_struct sSavedDeck24 ; aadc
sSavedDeck25:: deck_struct sSavedDeck25 ; ab30
sSavedDeck26:: deck_struct sSavedDeck26 ; ab84
sSavedDeck27:: deck_struct sSavedDeck27 ; abd8
sSavedDeck28:: deck_struct sSavedDeck28 ; ac2c
sSavedDeck29:: deck_struct sSavedDeck29 ; ac80
sSavedDeck30:: deck_struct sSavedDeck30 ; acd4
sSavedDeck31:: deck_struct sSavedDeck31 ; ad28
sSavedDeck32:: deck_struct sSavedDeck32 ; ad7c
sSavedDeck33:: deck_struct sSavedDeck33 ; add0
sSavedDeck34:: deck_struct sSavedDeck34 ; ae24
sSavedDeck35:: deck_struct sSavedDeck35 ; ae78
sSavedDeck36:: deck_struct sSavedDeck36 ; aecc
sSavedDeck37:: deck_struct sSavedDeck37 ; af20
sSavedDeck38:: deck_struct sSavedDeck38 ; af74
sSavedDeck39:: deck_struct sSavedDeck39 ; afc8
sSavedDeck40:: deck_struct sSavedDeck40 ; b01c
sSavedDeck41:: deck_struct sSavedDeck41 ; b070
sSavedDeck42:: deck_struct sSavedDeck42 ; b0c4
sSavedDeck43:: deck_struct sSavedDeck43 ; b118
sSavedDeck44:: deck_struct sSavedDeck44 ; b16c
sSavedDeck45:: deck_struct sSavedDeck45 ; b1c0
sSavedDeck46:: deck_struct sSavedDeck46 ; b214
sSavedDeck47:: deck_struct sSavedDeck47 ; b268
sSavedDeck48:: deck_struct sSavedDeck48 ; b2bc
sSavedDeck49:: deck_struct sSavedDeck49 ; b310
sSavedDeck50:: deck_struct sSavedDeck50 ; b364
sSavedDeck51:: deck_struct sSavedDeck51 ; b3b8
sSavedDeck52:: deck_struct sSavedDeck52 ; b40c
sSavedDeck53:: deck_struct sSavedDeck53 ; b460
sSavedDeck54:: deck_struct sSavedDeck54 ; b4b4
sSavedDeck55:: deck_struct sSavedDeck55 ; b508
sSavedDeck56:: deck_struct sSavedDeck56 ; b55c
sSavedDeck57:: deck_struct sSavedDeck57 ; b5b0
sSavedDeck58:: deck_struct sSavedDeck58 ; b604
sSavedDeck59:: deck_struct sSavedDeck59 ; b658
sSavedDeck60:: deck_struct sSavedDeck60 ; b6ac

sCurrentlySelectedDeck:: ; b700
	ds $1

; keeps track of how many unnamed decks have been built
; this is the number that gets appended at the end of
; an unnamed deck (i.e. DECK XXX)
; max number is MAX_UNNAMED_DECK_NUM
sUnnamedDeckCounter:: ; b701
	ds $2

; whether player has had Promotional cards
; to decide whether to show the option
; in the Card Album PC menu
sHasPromotionalCards:: ; b703
	ds $1

; these are initialized to 1 when
; creating a new game but are never used
sb704:: ; b704
	ds $3
sCardAndDeckSaveDataEnd::

	ds $f9

sGeneralSaveData::
sb800:: ; b800
	ds $2

sGeneralSaveDataByteCount:: ; b802
	ds $2

sGeneralSaveDataCheckSum:: ; b804
	ds $2

	ds $2
sGeneralSaveDataHeaderEnd::

sMedalCount:: ; b808
	ds $1

sCurOverworldMap:: ; b809
	ds $1

sPlayTimeCounter:: ; b80a
	ds $5

sOverworldMapSelection:: ; b80f
	ds $1

sTempMap:: ; b810
	ds $1

sTempPlayerXCoord:: ; b811
	ds $1

sTempPlayerYCoord:: ; b812
	ds $1

sTempPlayerDirection:: ; b813
	ds $1

sActiveGameEvent:: ; b814
	ds $1

sDuelResult:: ; b815
	ds $1

sNPCDuelist:: ; b816
	ds $1

sChallengeHallNPC:: ; b817
	ds $1

sb818:: ; b818
	ds $4

sOWMapEvents:: ; b81c
	ds NUM_MAP_EVENTS

sb827:: ; b827
	ds $1

sSelectedPauseMenuItem:: ; b828
	ds $1

sSelectedPCMenuItem:: ; b829
	ds $1

sConfigCursorYPos:: ; b82a
	ds $1

sSelectedGiftCenterMenuItem:: ; b82b
	ds $1

sPCPackSelection:: ; b82c
	ds $1

sPCPacks:: ; b82d
	ds NUM_PC_PACKS

sDefaultSong:: ; b83c
	ds $1

sDebugPauseAllowed:: ; b83d
	ds $1

sRonaldIsInMap:: ; b83e
	ds $1

sMastersBeatenList:: ; b83f
	ds $a

sNPCDuelistDirection:: ; b849
	ds $1

sMultichoiceTextboxResult_ChooseDeckToDuelAgainst:: ; b84a
	ds $1

sb84b:: ; b84b
	ds $1

sb84c:: ; b84c
	ds $f

sb85b:: ; b85b
	ds $10

sb86b:: ; b86b
	ds $10

sEventVars:: ; b87b
	ds $40

	ds $45
sGeneralSaveDataEnd::

	ds $141

; 0: normal duel
; 1: skip
; unused?
sDebugDuelMode:: ; ba41
	ds $1

sChallengeMachineMagic:: ; ba42
	ds $2

sChallengeMachineStart:: ; ba44

sPlayerInChallengeMachine:: ; ba44
	ds $1

sTotalChallengeMachineWins:: ; ba45
	ds $2

sPresentConsecutiveWins:: ; ba47
	ds $2

sPresentConsecutiveWinsBackup:: ; ba49
	ds $2

sChallengeMachineOpponents:: ; ba4b
	ds NUM_CHALLENGE_MACHINE_OPPONENTS

; 0: not dueled
; 1: won
; 2: lost
sChallengeMachineDuelResults:: ; ba50
	ds NUM_CHALLENGE_MACHINE_OPPONENTS

; the current opponent number, 0-4
sChallengeMachineOpponentNumber:: ; ba55
	ds $1

sMaximumConsecutiveWins:: ; ba56
	ds $2

sChallengeMachineRecordHolderName:: ; ba58
	ds NAME_BUFFER_LENGTH

; TRUE if just set new consecutive win record
sConsecutiveWinRecordIncreased:: ; ba68
	ds $1

sChallengeMachineEnd:: ; ba69

	ds $97

; keeps track of last 16 player's names that
; this save file has done Card Pop! with
sCardPopNameList:: ; bb00
	ds CARDPOP_NAME_LIST_SIZE

SECTION "SRAM1", SRAM

UNION

; buffers used to temporary store gfx related data
; such as tiles or BG maps
sGfxBuffer0:: ; a000
	ds $400

sGfxBuffer1:: ; a400
	ds $400

sGfxBuffer2:: ; a800
	ds $400

sGfxBuffer3:: ; ac00
	ds $400

sGfxBuffer4:: ; b000
	ds $400

sGfxBuffer5:: ; b400
	ds $400

NEXTU

	ds $350

; buffer used to store the deck configuration
; from the Auto Deck Machines
; intentionally uses the same address as sSavedDecks
; since TryBuildDeckMachineDeck uses the same
; address in SRAM whether it's an auto deck or a saved deck
; the difference is whether SRAM0 or SRAM1 are loaded
sAutoDecks::
sAutoDeck1::  deck_struct sAutoDeck1  ; a350
sAutoDeck2::  deck_struct sAutoDeck2  ; a3a4
sAutoDeck3::  deck_struct sAutoDeck3  ; a3f8
sAutoDeck4::  deck_struct sAutoDeck4  ; a44c
sAutoDeck5::  deck_struct sAutoDeck5  ; a4a0

ENDU

SECTION "SRAM2", SRAM

	ds $1800

sBackupGeneralSaveData:: ; b800
	ds $bb

	ds $43

; byte 1 = total number of cards collected
; byte 2 = total number of cards to collect
;  (doesn't count Phantom cards unless they
;   have been collected already)
sAlbumProgress:: ; b8fe
	ds $2

	ds $300

; saved data of the current duel, including a two-byte checksum
; see SaveDuelDataToDE
sCurrentDuel:: ; bc00
	ds $1
sCurrentDuelChecksum:: ; bc01
	ds $2
sCurrentDuelData:: ; bc04
	ds $33b

SECTION "SRAM3", SRAM