forked from AmazingAmpharos/OoT-Randomizer
-
Notifications
You must be signed in to change notification settings - Fork 243
Expand file tree
/
Copy pathconfig.asm
More file actions
354 lines (318 loc) · 7.35 KB
/
config.asm
File metadata and controls
354 lines (318 loc) · 7.35 KB
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
;==================================================================================================
; Settings and tables which the front-end may write
;==================================================================================================
; These values must be properly aligned to prevent an Address Error Exception on access. You can
; see what address a symbol was given after building in the build/asm_symbols.txt file.
; Byte values do not need to be aligned.
; Halfword values must be on an even byte boundary. ".align 2" can fix this value type's alignment.
; Word values must be on a byte boundary divisible by 4. ".align 4" can correct a misalignment.
; Doubleword values must be on a byte boundary divisible by 8. ".align 8" can fix a misalignment.
; This is used to determine if and how the cosmetics can be patched
; It this moves then the version will no longer be valid, so it is important that this does not move
COSMETIC_CONTEXT:
COSMETIC_FORMAT_VERSION:
.word 0x1F073FE2
CFG_MAGIC_COLOR:
.halfword 0x0000, 0x00C8, 0x0000
CFG_HEART_COLOR:
.halfword 0x00FF, 0x0046, 0x0032
CFG_A_BUTTON_COLOR:
.halfword 0x005A, 0x005A, 0x00FF
CFG_B_BUTTON_COLOR:
.halfword 0x0000, 0x0096, 0x0000
CFG_C_BUTTON_COLOR:
.halfword 0x00FF, 0x00A0, 0x0000
CFG_TEXT_CURSOR_COLOR:
.halfword 0x0000, 0x0050, 0x00C8
CFG_SHOP_CURSOR_COLOR:
.halfword 0x0000, 0x0050, 0x00FF
CFG_A_NOTE_COLOR:
.halfword 0x0050, 0x0096, 0x00FF
CFG_C_NOTE_COLOR:
.halfword 0x00FF, 0x00FF, 0x0032
CFG_BOOM_TRAIL_INNER_COLOR:
.byte 0xFF, 0xFF, 0x64
CFG_BOOM_TRAIL_OUTER_COLOR:
.byte 0xFF, 0xFF, 0x64
CFG_BOMBCHU_TRAIL_INNER_COLOR:
.byte 0xFA, 0x00, 0x00
CFG_BOMBCHU_TRAIL_OUTER_COLOR:
.byte 0xFA, 0x00, 0x00
CFG_DISPLAY_DPAD:
.byte 0x01
CFG_RAINBOW_SWORD_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_SWORD_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_BOOM_TRAIL_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_BOOM_TRAIL_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_BOMBCHU_TRAIL_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_BOMBCHU_TRAIL_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_IDLE_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_IDLE_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_ENEMY_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_ENEMY_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_NPC_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_NPC_OUTER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_PROP_INNER_ENABLED:
.byte 0x00
CFG_RAINBOW_NAVI_PROP_OUTER_ENABLED:
.byte 0x00
CFG_DPAD_DUNGEON_INFO_ENABLE:
.byte 0x01
GET_ITEM_SEQ_ID:
.halfword 0x0000
CFG_SPEEDUP_MUSIC_FOR_LAST_TRIFORCE_PIECE:
.byte 0x00
CFG_SLOWDOWN_MUSIC_WHEN_LOWHP:
.byte 0x00
CFG_RAINBOW_TUNIC_ENABLED:
.byte 0x00
CFG_TUNIC_COLORS:
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
CFG_AUDIOBANK_TABLE_EXTENDED_ADDR:
.word AUDIOBANK_TABLE_EXTENDED
CFG_CORRECT_MODEL_COLORS:
.byte 0x00
CFG_UNINVERT_YAXIS_IN_FIRST_PERSON_CAMERA:
.byte 0x00
CFG_DPAD_ON_THE_LEFT:
.byte 0x00
CFG_INPUT_VIEWER:
.byte 0x00
CFG_SONG_NAME_STATE:
.byte 0x00
.area 0xA5A, 0
CFG_SONG_NAMES:
.endarea
CFG_SHOW_SETTING_INFO:
.byte 0x00
.area 0x20, 0
CFG_CUSTOM_MESSAGE_1:
.endarea
.area 0x20, 0
CFG_CUSTOM_MESSAGE_2:
.endarea
.align 4
; Version string
.area 0x24, 0
VERSION_STRING_TXT:
.endarea
; World string (max length "255 of 255" = 10 chars)
.area 0x10, 0
WORLD_STRING_TXT:
.endarea
; Time string
.area 0x24, 0
TIME_STRING_TXT:
.endarea
; web seed ID string (max length 10 chars)
.area 0x10, 0
WEB_ID_STRING_TXT:
.endarea
; Initial Save Data table:
;
; This table describes what extra data should be written when a new save file is created. It must be terminated with
; four 0x00 bytes (which will happen by default as long as you don't fill the allotted space).
;
; Row format (4 bytes):
; AAAATTVV
; AAAA = Offset from the start of the save data
; TT = Type (0x00 = or value with current value, 0x01 = set the byte to the given value)
; VV = Value to write to the save
.area 0x400, 0
INITIAL_SAVE_DATA:
.endarea
.area 0x100, 0
EXTENDED_INITIAL_SAVE_DATA:
.endarea
.area 0x118, 0 ; size must be at least 8 * ((max object_id parameter Patches.add_to_extended_object_table is called with) - 0x192)
EXTENDED_OBJECT_TABLE:
.endarea
FREE_BOMBCHU_DROPS:
.word 0x00
GOSSIP_HINT_CONDITION:
.word 0x00
; 0 = Mask of Truth
; 1 = Stone of Agony
; 2 = No Requirements
FREE_SCARECROW_ENABLED:
.word 0x00
JABU_ELEVATOR_ENABLE:
.byte 0x00
OCARINAS_SHUFFLED:
.byte 0x00
NO_COLLECTIBLE_HEARTS:
.byte 0x00
FAST_CHESTS:
.byte 0x01
SHUFFLE_COWS:
.byte 0x00
SONGS_AS_ITEMS:
.byte 0x00
WINDMILL_SONG_ID:
.byte 0x00
WINDMILL_TEXT_ID:
.byte 0x00
MALON_TEXT_ID:
.byte 0x00
DISABLE_TIMERS:
.byte 0x00
DUNGEONS_SHUFFLED:
.byte 0x00
OVERWORLD_SHUFFLED:
.byte 0x00
HIDEOUT_SHUFFLED:
.byte 0x00
FAST_BUNNY_HOOD_ENABLED:
.byte 0x00
FIX_BROKEN_DROPS:
.byte 0x00
SPOILER_AVAILABLE:
.byte 0x00
PLANDOMIZER_USED:
.byte 0x00
POTCRATE_TEXTURES_MATCH_CONTENTS:
.byte 0x00
KEYRING_BOSSKEY_CONDITION:
.byte 0x00
SHUFFLE_SILVER_RUPEES:
.byte 0x00
CFG_DUNGEON_INFO_SILVER_RUPEES:
.byte 0x00
CUSTOM_KEY_MODELS:
.byte 0x00
SHUFFLE_OCARINA_BUTTONS:
.byte 0x00
EPONAS_SONG_NOTES:
.byte 0x00
CHEST_GOLD_TEXTURE:
.byte 0x01
CHEST_GILDED_TEXTURE:
.byte 0x01
CHEST_SILVER_TEXTURE:
.byte 0x01
CHEST_SKULL_TEXTURE:
.byte 0x01
CHEST_HEART_TEXTURE:
.byte 0x01
POTCRATE_GOLD_TEXTURE:
.byte 0x01
POTCRATE_GILDED_TEXTURE:
.byte 0x01
POTCRATE_SILVER_TEXTURE:
.byte 0x01
POTCRATE_SKULL_TEXTURE:
.byte 0x01
POTCRATE_HEART_TEXTURE:
.byte 0x01
SOA_UNLOCKS_CHEST_TEXTURE:
.byte 0x00
SOA_UNLOCKS_POTCRATE_TEXTURE:
.byte 0x00
CFG_DUNGEON_INFO_REWARD_WORLDS_ENABLE:
.byte 0x00
.area 9, 0
CFG_DUNGEON_REWARD_WORLDS:
.endarea
.align 8
CFG_BIGOCTO_OVERRIDE_KEY:
.word 0
.word 0
.area 6, 0x00
PASSWORD:
.endarea
REWARDS_AS_ITEMS:
.byte 0x00
.area 14, 0x00
CFG_DUNGEON_PRECOMPLETED:
.endarea
DOT_CONDITION:
.byte 0x01
.align 4
; These configuration values are given fixed addresses to aid auto-trackers.
; Any changes made here should be documented in Notes/auto-tracker-ctx.md
AUTO_TRACKER_CONTEXT:
AUTO_TRACKER_VERSION:
.word 6 ; Increment this if the auto-tracker context layout changes
CFG_DUNGEON_INFO_ENABLE:
.word 0
CFG_DUNGEON_INFO_MQ_ENABLE:
.word 0
CFG_DUNGEON_INFO_MQ_NEED_MAP:
.word 0
CFG_DUNGEON_INFO_REWARD_ENABLE:
.word 0
CFG_DUNGEON_INFO_REWARD_NEED_COMPASS:
.word 0
CFG_DUNGEON_INFO_REWARD_NEED_ALTAR:
.word 0
CFG_DUNGEON_INFO_REWARD_SUMMARY_ENABLE:
.word 1
.area 14, 0xff
CFG_DUNGEON_REWARDS:
.endarea
.area 14, 0x00
CFG_DUNGEON_IS_MQ:
.endarea
RAINBOW_BRIDGE_CONDITION:
.word 0x00
; 0 = Open
; 1 = Medallions
; 2 = Dungeons
; 3 = Stones
; 4 = Vanilla
; 5 = Tokens
; 6 = Hearts
LACS_CONDITION:
.word 0x00
; 0 = Vanilla
; 1 = Medallions
; 2 = Dungeons
; 3 = Stones
; 4 = Tokens
; 5 = Hearts
RAINBOW_BRIDGE_COUNT:
.halfword 0x0064
LACS_CONDITION_COUNT:
.halfword 0x0000
TRIFORCE_HUNT_ENABLED:
.halfword 0x0000
TRIFORCE_PIECES_REQUIRED:
.halfword 0xffff
.area 8, 0x00
SPECIAL_DEAL_COUNTS:
.endarea
.area 9 * 0x17, 0x00
CFG_DUNGEON_REWARD_AREAS:
.endarea
CFG_ADULT_TRADE_SHUFFLE:
.byte 0x00
CFG_CHILD_TRADE_SHUFFLE:
.byte 0x00
.area 14, 0x00
CFG_DUNGEON_BOSS_INFO:
.endarea
; First two bytes determine if dungeons and bosses are shuffled or mixed (0 : not shuffled, 1 : shuffled in their pool, 2 : mixed)
; Next 12 bytes say if the dungeon in the i-th entrance has a map
.area 12 * 0x9, 0x00
CFG_DUNGEON_ENTRANCES:
.endarea
.area 21 * 0x9, 0x00
CFG_BOSSES:
.endarea
; Bosses are listed twice, first 12 are sorted by the same order as the dungeon entrances (including the 3 with no bosses), then 9 in the usual dungeon order.
.area 80, 0x00
CFG_HINTS_IDS_AND_TYPES:
.endarea
.align 4