-
Notifications
You must be signed in to change notification settings - Fork 7
/
RAM Map.txt
1690 lines (1507 loc) · 74.4 KB
/
RAM Map.txt
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
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
800589AA,2 - Player's HP when starting a new game, in quarters of hearts.
(This is hardcoded as part of function init__21dSv_player_status_a_cFv)
8022DDBA,2 - X position of the Nintendo logo during bootup.
8022DDBE,2 - Y position of the Nintendo logo during bootup.
8022DEEA,2 - X position of the Dolby logo during bootup.
8022DEEE,2 - Y position of the Dolby logo during bootup.
(These four values are hardcoded as part of function phase_2(dScnLogo_c *))
8034F13C,18 - List of icons that can show up on the Tingle Tuner? (agbTbl$7009)
8034F69D,1 - Empty string "".
8034F7D8,4 (34C7D8,4 in main.dol) - Stage name the player starts a new game in ("sea").
80058BA7,1 (055AE7,1 in main.dol) - Room number the player starts a new game in (0d44, Outset Island).
80058BAF,1 (055AEF,1 in main.dol) - Spawn ID the player starts the game at (0d206, on Aryll's Lookout).
8034FCC0-8034FD0F Item data. m_data__12daItemBase_c
00,4 - Field item gravity. (Float)
08,4 - ? (Float)
10,4 - speed? (Float)
16,2 -
18,2 -
1A,2 -
1C,2 - Number of frames to take to do a complete Y rotation.
42,2 -
8034FD10 - Shop item display data. mData__12daShopItem_c
Entry length 0x20.
Index in this list is the item ID. Item IDs 00 through FE have entries.
00,4: X scale.
04,4: Y scale.
08,4: Z scale.
0C,4: X offset.
10,4: Y offset.
14,4: Z offset.
18,2: X rotation.
1A,2: Y rotation.
1C,2: Z rotation.
1E,2: Padding.
80352EA0-80352EDF - List of blue fog spawn patterns for each room of Earth Temple.
The index in this list is the room number of a room in the M_Dai stage.
There are decimal 16 entries in total for rooms 0-15. Rooms 16-20 don't get entries.
Each entry is a word, which is a number 0-4 for which blue fog spawn pattern to use.
Or the number can be -1 if no blue fog appears in this room.
The actual behavior of the blue fog depending on the number 0-4 is hardcoded in the function poison_move.
8035ABE4-8035B54F - List of figurines. (l_CharaData)
Entry length 0x12.
0x86 entries in total.
00,2: X ???
02,2: Y ???
04,2: Z ???
06,2: X pos? "Geo"
stored to the struct dSnap_Obj+0x0C,4 after converting to float and multiplying by something
08,2: Z pos? "Geo"
stored to the struct dSnap_Obj+0x10,4 after converting to float and multiplying by something
0A,2: (this / 1000.0) = ? (for comparison)
0C,2: arg r8 to "SetInf"
stored to the struct dSnap_Obj+0x1C,2
0E,2: ? (for comparison)
10,1: Affects which archive to load the figurine's model from. ("FigRoomId")
00 - Figure.arc
01 - Figure2.arc
02 - Figure1.arc
03 - Figure0.arc
04 - Figure6.arc
05 - Figure5.arc
06 - Figure3.arc
07 - Figure4.arc
08 - Figure2a.arc
09 - Figure2b.arc
0A - Figure6a.arc
0B - Figure6b.arc
0C - Figure6c.arc
11,1: ???
8035C36C-8035C61F - List of Link's texture animations. (daPy_lk_c::mTexAnmIndexTable)
Entry length 4. 0xAD entries in total.
00,2: File index of the BTP animation from LkAnm.arc to play. (Swaps Link's facial textures out.)
02,2: File index of the BTK animation from LkAnm.arc to play. (Scrolls Link's pupil UVs around.)
8035C764 - List of Link's animations. (daPy_lk_c::mAnmDataTable)
Entry length 8. There are 0xEA entries in total.
Argument r4 to setSingleMoveAnime is an example of an index in this list.
00,2: Lower body anim. File index of the BCK animation from LkAnm.arc to play.
02,2: Upper body anim. File index of the BCK animation from LkAnm.arc to play.
04,1: Left hand model index.
05,1: Right hand model index.
06,2: Texture animation index.
This number is an index in list 8035C36C.
8035CEEC,4 - Link's maximum forward movement speed. (17.0)
Seems to be used for both running forward and autojumping forward.
8035CF0C,4 - Link's Idle animation speed. (1.1)
8035CF14,4 - Link's walking animation speed. (0.8)
Walking refers to when you press the control stick only partially in a direction. (The game blends between the walking and running animations depending on how far it's pressed.)
This value doesn't just control the speed the animation plays at, but also how fast Link actually moves forward at a particular control stick strength.
8035CF1C,4 - Link's running animation speed. (2.3)
8035D388: Hero's Sword size 1. (20.0)
8035D38C: Hero's Sword size 2. (1.5)
8035D390: Master Sword size 1. (30.0)
8035D394: Master Sword size 2. (2.5)
8035D4B8,4 - Link's minimum forward movement speed when doing an autojump. (9.0)
8035D72C,4 - Link's maximum ? ledge grab height. (110.0)
8035D730,4 - Link's maximum ? ledge grab height. (130.0)
8035D734,4 - Link's maximum tall ledge grab height. (170.0)
8035F9B8-8035F9F7 - List of Ballad of Gales warp destinations.
Entry length 7. There are 9 entries in total.
00,1: X pos of the sector on the sea chart (-3 to 3).
01,1: Y pos of the sector on the sea chart (-3 to 3).
02,1: Warp index of this warp.
03,1: Warp index of the warp to the left of this one.
04,1: Warp index of the warp to the right of this one.
05,1: Warp index of the warp above this one.
06,1: Warp index of the warp below this one.
8035BD34 - List of item IDs given from certain story-important cutscenes (STB cutscenes).
master sword, pearls, etc.
(this is equivalent to offset 358D34 in main.dol)
this list is read from by 800e7420, execute__10daDemo00
All the entries in the list:
39 Master Sword (Powerless)
3A Master Sword (Half Power)
3E Master Sword (Full Power)
6A Din's Pearl
6B Farore's Pearl
69 Nayru's Pearl
30 Delivery Bag
3B Hero's Shield
35 Fire and Ice Arrows
FF (No item)
803398D8-8033A647 - Mapping of actor IDs to rel filenames. (DynamicNameTable)
Entry length 8.
Total entries: 0x1AE (though the very last one is just an end marker with actor ID = -1).
00,2: Actor ID. This is the ID mentioned in list 80372818.
02,2: Padding (always 0x0000).
04,4: Pointer to the rel filename.
80372818-80374EC3 - Actor info. (l_objectName)
This is a mapping of actor names to the data corresponding to that name.
Entry length 0xC.
Total entries: 0x339.
00,8: Actor name.
08,2: Actor ID. This is the key in list 803398D8.
0A,1: Actor subtype index.
When multiple different actor names correspond to a single REL file, this index is what distinguishes them.
Many REL files just ignore this value and instead use their parameters to know which way to behave.
But some, like d_a_tag_md_cb.rel actually rely on this to determine what they should do.
0B,1: GBA type.
This is used by treasure chests and salvage points, passed as argument r7 to drawPointSingle__6dMap_cFUcfffScsUcUcUc
In the main executable, this value for some unknown entity type is passed as argument r8 to setCollectPoint__6dMap_cFUcUcfffScsUcUcUcUc
803B9218 - List of each REL. (DMC)
The actor ID is the index in this list.
Each entry is a pointer to the DynamicModuleControl struct for this REL.
For actor IDs that are in main.dol and have no REL, the pointer will be 0 instead.
Format of each DynamicModuleControl:
Each DynamicModuleControl is 0x2C bytes long.
0C,4: Pointer to ???
10,4: Pointer to where the REL is loaded in RAM.
1C,4: Pointer to the REL name for this REL (without the .rel extension).
80363120 - List of which files to preload for each stage. (PreLoadInfoT)
Entry length 0x10.
00,4: Pointer to the stage name, a string.
04,4: ???
08,4: Pointer to a list of which files to preload for this stage.
This is a list of pointers to strings, which are the names of arc files in the res/Object folder, without the .arc file extension.
0C,1: ???
0D,1: Number of files to be preloaded.
g_fopAcTg_Queue:
80372028,4 - Pointer to last entity/node in RAM?
8037202C,4 - Pointer to first entity/node in RAM?
80372030,4 - Number of entities/nodes currently in RAM?
80375080 - List of stage layer tables.
This has which DZx chunk names are for each layer. e.g. ACT0 is the ACTR chunk for layer 0.
80375E1C-80375FBB (372E1C in main.dol) - Shop item data.
Entry length 0x10.
00,4: Item ID.
04,4: Negative prerequisite item ID you need to NOT own before you can buy this item.
08,4: Prerequisite item ID you need before you can buy this item.
-1 for no prerequisite? Or -1 might be an invalid prerequisite?
0C,1: Bitfield affecting what can prevent you from buying the item.
& 01 - This item has a prerequisite item. This bit must be set for the prerequisite item ID above to do anything.
& 02 - This item has a negative prerequisite item. This bit must be set for the negative prerequisite item ID above to do anything.
& 04 - This item has a maximum number of it you can carry. (Bombs, bait, etc.)
& 08 - This item requires you to own a bottle. Doesn't need to be empty.
& 10 - This item requires an empty bottle.
& 20 - This item costs rupees to buy.
0D,3: Padding.
80375FBC-80376263 (372FBC in main.dol) - Shop item set data.
Entry length 0x14.
00,4: Pointer to the shop item data for this item. (In list 80375E1C.)
04,4: Message ID shown when you select this item in the shop.
08,4: Message ID that asks you if you're sure you want to buy this item.
0C,4: ??
10,4: Number of the item given...?
803764DC-803764FF - List of pointers to the shop item positions for each shop.
Each pointer points to a list of X,Y,Z positions of each of the items in the shop.
Entries 00-07 each have 3 items, or 9 floats. Entry 08 has 12 items, or 36 floats.
00 8037632C Item_set_pos_data_dshop - ?
01 80376350 Item_set_pos_data_bmshop1 - ?
02 80376374 Item_set_pos_data_bmshop2 - ?
03 80376398 Item_set_pos_data_bshop_3 - Beedle's shop with the Bait Bag (on Outset and probably other islands).
04 803763BC Item_set_pos_data_bshop_4 - Beedle's shop with ?
05 803763E0 Item_set_pos_data_bshop_5 - Beedle's shop with ?
06 80376404 Item_set_pos_data_bshop_6 - Beedle's special shop ship on Rock Spire.
07 80376428 Item_set_pos_data_bshop_7 - ?
08 8037644C Item_set_pos_data_rshop_0 - Zunari's shop on Windfall.
80377018-8037705F - List of position offsets(???) for carryable weapons (Boko).
Entry length 0xC.
6 entries in total.
The index in this list is the parameter of the weapon entity.
00,4: float
04,4: float
08,4: float
80377754-8037775F - List of BGM IDs that can be started by events in event_list.dat.
Each entry is a word, the BGM ID. 3 entries total.
The index in this list is the "BGM_ID" property of a "BGM_START" action of a "DIRECTOR" actor in an event.
0 - 80000007 - Inside FF1
1 - 80000012 - Meet Tetra
2 - 80000017 - Fairy Woods
8037ED40-8037EDCF - List of "cam move BG" types. (dCamera_c::mvBGTypes(void))
0x24 entries in total.
Each entry in this list is a pointer to a string. That string is the name of the camera movement type.
These are all the entries:
00 80359A60 ????
01 80359A65 Field
02 80359A6B Dungeon
03 80359A73 Plain
04 80359A79 DungeonDown
05 80359A85 DungeonUp
06 80359A8F DungeonCorner
07 80359A9D Jump
08 80359AA2 DungeonWide
09 80359AAE Room
0A 80359AB3 FieldCushion
0B 80359AC0 OverLook
0C 80359AC9 Corridor
0D 80359AD2 Subject
0E 80359ADA DungeonPassage
0F 80359AE9 Cliff
10 80359AEF Cliff2
11 80359AF6 MajTower
12 80359AFF Boss01
13 80359B06 Boss02
14 80359B0D Gamoss
15 80359B14 MiniIsland
16 80359B1F Amoss
17 80359B25 Cafe
18 80359B2A P_Ganon1
19 80359B33 P_Ganon2
1A 80359B3C WindBoss
1B 80359B45 P_Ganon3
1C 80359B4E G_BedRoom
1D 80359B58 G_Roof
1E 80359B5F G_BedRoom2
1F 80359B6A Boss04
20 80359B71 WindHall
21 80359B7A BigBird
22 80359B82 DStairs
23 00000000 [empty string]
80371618,24 - Data related to the game heap. (GameHeapCheck)
80371618,4 - Pointer to the string "Game".
8037161C,4 - Pointer to the game heap.
Game heap format:
78,4: Pointer to the first free block of memory.
7C,4: Pointer to the last free block of memory.
80,4: Pointer to the first used block of memory.
84,4: Pointer to the last used block of memory.
Format of each block of memory in the game heap:
00,2: 0x0000 for free blocks. For used blocks, constant 0x484D? (Maybe the string "HM"...?)
02,1: 0x00?
03,1: 0x00 for free blocks, 0xFF for used blocks?
04,4: Size of this block of memory.
08,4: Pointer to the previous block of memory of this type. (e.g. The previous free block if this is a free block.)
0C,4: Pointer to the next block of memory of this type.
10,[size]: The actual data in this block of memory.
803F772C,4 - The active/current heap of memory. (sCurrentHeap__7JKRHeap)
This global variable has a pointer to the last allocated memory block on the game heap.
This is used by constructors to know what memory to use.
This is accessed as r13-0x69B4.
803842B0 (3812B0 in main.dol) - List of item resources. (dItem_data::item_resource)
Entry length 0x24. Index is an item ID.
00,4: Pointer to a string, the name of the .arc containing this item's model.
04,4: Pointer to a string. Filename of the item icon to show in the inventory for this item.
Item icon textures are stored in: /files/res/Msg/itemicon.arc
08,2: File index within the .arc of this item's 3D model.
0A,2: File index within the .arc of this item's texture animation (BTK).
0C,2: (equivalent of 08,2 for field items)
0E,2: File index within the .arc of this item's TEV register animation (BRK).
10,2: (equivalent of 0C,2 for field items)
12,2: File index within the .arc of this item's bone animation (BCK).
14,1: Keyframe index in the TEV register animation to use.
This is used for rupees (and chu jelly) to give them a different color.
All rupees have the same model and texture, and have the same TEV register animation that simply cycles through all the different colors.
By pausing the TEV register animation on different keyframes, different rupees have different colors.
15,1: Padding?
16,2: Message ID of the item's name.
This is used for when you hover over the item on the pause screen.
Note that this message ID plus 0xC8/0d200 is the description to be shown when you press A while hovering over it on the pause screen.
1E,1: ?
20,2: Maximum amount of memory that may be needed to instantiate this item's assets, or 0 for no max.
Argument r5 to entrySolidHeap.
803866B0 (3836B0 in main.dol) - List of field item resources. (dItem_data::field_item_res)
These are items that appear freely placed in the world as ACTRs.
Entry length 0x1C.
Format:
00,4: Pointer to a string, the name of the .arc containing this item's field model.
04,2: File index within the .arc of this item's 3D model.
06,2: File index within the .arc of this item's texture animation (BTK).
08,2:
0A,2: File index within the .arc of this item's TEV register animation (BRK).
0C,2:
0E,2: File index within the .arc of this item's bone animation (BCK).
10,1: Keyframe index in the TEV register animation to use.
This seems unused - the equivalent value in the item resources is instead used even for field items.
18,2:
list is read by 800f55f4
func CreateItemHeap in d_a_itembase.c is what actually creates the item
803882B0 (3852B0 in main.dol) - item_info?
Entry length 4. Index is an item ID.
00,1: ? this is an integer but gets converted to a float before being used by setShadow.
01,1: Y offset.
02,1: Radius. This affects how close to the player the item needs to be for it to be picked up.
03,1: Bitfield.
& 01 - This item does not fade out and disappear after a time limit.
& 02 - Item is permanently deactivated.
It acts the same as if the item has an activation switch that isn't set yet where it can't be picked up, except it never activates from a switch.
& 04 - Set for small keys, big keys, and the telescope, but seems to never be read by code?
& 10 - Shadow related. Call dComIfGd_setShadow instead of dComIfGd_setSimpleShadow2?
803886B0 - Item particle effect info.
Entry length 4. Index is an item ID. (Not all items have entries here. It only goes from item 00 to item 80.)
00,2: Particle ID of the "appear effect", or 0x8466 for none?
02,2: Particle ID of the "special effect", or 0x8466 for none?
803888C8 (3858C8 in main.dol) - List of item get function pointers. (item_func_ptr)
803769E0,200 - Chain texture. (l_chainS3TCTEX)
8038BD40,200 - Hookshot chain texture. (l_chainS3TCTEX)
8038E8C4-8038F673 - List of Link's possible states. (daPy_lk_c::mProcInitTable)
Entry length 0x10.
0xDB entries in total.
The index in this list is Link's state index (argument r4 to commonProcInit).
00,C: Link's PTMF (pointer to member functions) struct for this state.
00,4: "Delta to this pointer" (usually 0).
04,4: Offset in virtual table (usually -1: does not use a virtual table).
08,4: Pointer to the execute function of this state.
If 04,4 is not -1, this value is instead the offset of the virtual function entry in the vtable.
0C,4: Initial value to set Link's 3618,4 bitfield to when entering this state.
8038F8E4,39C - List of Link event actions. (daPy_lk_c::mDemoProcInitFuncTable)
Entry length 0xC.
The index in this list is Link's event action index. e.g. 11 (0xB) for 011get_item.
08,04: Pointer to the initialization function for this Link state.
Note that this list is just all 00s in main.dol. It's initialized at runtime by __sinit_d_a_player_main_cpp.
8038DDAC,4 - Bitfield of damage types the player's sword should do? maybe?
80371DD4,4 - Bitfield of damage types for...? skull hammer maybe?
80392260-803922A7 - List of image to show on the sea chart to represent that you've gotten the treasure from this sector's salvage point.
Each entry is a pointer to the filename of the image to show.
The index in this list is the type of chart from the chart data. e.g. Index 0 is an image of a Triforce.
80393688-803936A7 - List of BLO1 UI layout files for each song's interactive tutorial that appears in the message box. (mLayout)
(8 entries, each is a pointer to a string which is the filename of the BLO1 file in files/res/Msg/msgres.arc.)
803FB4C0-803FB4C7 - List of the number of notes that are in each song for the purposes of the interactive tutorial that appears in the message box. (mBeatNum)
8039B5F4 - List of Wind Waker songs.
7 bytes long.
00,1: Number of notes in the song. (3, 4, or 6.)
01,6: Array of song notes.
0 - Center
1 - Up
2 - Right
3 - Down
4 - Left
8039BC30-8039C08F - List of NPC voices/message sounds. (JAIZelBasic::charVoiceTable)
Entry length 4. 0x118 entries in total.
The index in this list is the sound value from a sound command in a message.
00,2: Unknown 1?
02,2: Unknown 2?
How NPC voices/message sounds work:
Sound ID 481F (JA_SE_CV_COMMON_PEOPLE) is used for all NPC voices/message sounds.
The contents of the sound is changed by calling JAISound::setPortData with r4 = 8 and r5 = (unknown_1 << 8 | unknown_2).
What each sound index in this list is:
0: N/A. Don't play any sound.
1: Aryll: "Ah!"
2: Aryll: "Wah!?"
7: Aryll: "Auhh!?"
95: Aryll: "Hai!"
104: Aryll: "Oyyyy!"
105: Aryll: "Hoyyyy!"
106: Aryll: "Haiiii~!"
8039C090-8039C21F - List of Link voices. (JAIZelBasic::linkVoiceTable)
Entry length 8. 0x32 entries in total.
The index in this list is the link voice index (argument r4 to daPy_lk_c::voiceStart).
00,1: The SE index of the voice sound effect. (Voices are in category 1.)
8039C280-8039C2E3 - List of 1st dynamic scene waves. (BGM related) (m_dy_wave_set_1st__11JAIZelBasic)
Entry length 2. 0x32 entries in total.
1st dynamic scene wave index is an index in this list.
00,1: One scene wave to load (or 0 for blank). (This is argument r3 to loadSceneWave.)
01,1: Another scene wave to load (or 0 for blank). (This is argument r3 to loadSceneWave.)
8039C2E4-8039C30B - List of 2nd dynamic scene waves. (BGM related) (m_dy_wave_set_2nd__11JAIZelBasic)
Entry length 2. 0x14 entries in total.
2nd dynamic scene wave index is an index in this list.
00,1: One scene wave to load (or 0 for blank). (This is argument r3 to loadSceneWave.)
01,1: Another scene wave to load (or 0 for blank). (This is argument r3 to loadSceneWave.)
8039C30C-8039C4EF (39930C in main.dol) - List of stage BGM info. (BGM related) (m_scene_info__11JAIZelBasic)
Each entry is 4 bytes long. 0x79 entries in total.
The spot ID of a particular stage is its index in this list (see list 8039C5B8 for more info on spot IDs).
00,2: BGM ID to play.
02,1: 1st dynamic scene wave index to load.
03,1: 2nd dynamic scene wave index to load.
8039C4F0-8039C5B7 (3994F0 in main.dol) - List of island BGM info. (BGM related) (m_isle_info__11JAIZelBasic)
Each entry is 4 bytes long. 0x32 (decimal 50) entries in total.
The island's room number is its index in this list.
00,2: BGM ID to play.
02,1: 1st dynamic scene wave index to load.
03,1: 2nd dynamic scene wave index to load.
8039C5B8-8039C797 (3995B8 in main.dol) - List of BGM spot names. (BGM related) (spot_dir_name__11JAIZelBasic)
Each entry is 4 bytes long. 0x78 entries in total.
Each entry is a pointer to a string that is a stage name.
The "spot ID" for a particular stage is the index of that stage's name in this list +1.
803A2D14,1 - Hour of the current time of day (integer 0-23).
803A2D15,1 - Minute of the current time of day (integer 0-59).
803A2D16,1 - Current day of the week (integer 0-6).
803A2D18,2 - Bitfield of what the time of day was on the previous frame.
& 00FF - Minute of the current time of day (integer 0-59).
& FF00 - Hour of the current time of day (integer 0-23).
So a bitfield value of e.g. 0x53B (0d1339) is equivalent to a time of 5:59AM.
803A2D1A,1 - ?
803A2F05,1 - The Sea Floor Group Info of the DZB collision group Link is currently located above, used for audio-related purposes. (Officially called "GrpSoundId".)
If 0, Link is not above the sea floor. Sea related music will not play. (Except for room 0 of the sea - that's always considered the sea floor.)
Otherwise, it's a bitfield as follows:
& 3F - The room ID of the sea sector Link is in. This controls
& 40 - Link is above the Inner Sea of a sector's sea floor.
& 80 - Link is above the Outer Edge of a sector's sea floor.
If neither &40 nor &80 are set, Link is instead above the Inner Edge of a sector's sea floor.
Definitions of the different types of sea floor are as follows:
"Inner Sea": The center of a sector's sea floor, not on the border. (Collision group named "soko".)
"Inner Edge": The inner border of a sector's sea floor. (Collision group named "soko_uti".)
"Outer Edge": The outer border of a sector's sea floor. (Collision group named "soko_soto".)
"Outer Sea": Part of the sea floor that is not specific to any sector, is part of room 0 of the sea and is between sectors.
803A2F0C,4 - ? related to time of day or music?
803A2F10,4 - Might be what the next scene music to play should be?
If this is 0, music does not get played on Windfall.
But if it's 8000003B music does get played on Windfall.
80398B60,40 - Directory name for wave banks.
"Audiores/Banks/"
803A2F16,1 - Related to currently playing music...?
803A2F1A,1 - The next 1st dynamic scene wave index to load.
803A2F1D,1 - The next 2nd dynamic scene wave index to load.
803A2F20,1 - The next island room number the player is about to go to, for deciding what the next BGM should be.
803A4C25,1 - Ship sail state. 1 if sailing, 0 if not.
(This variable is part of the JAIZelBasic audio struct, so it's likely used for controlling the sailing music.)
803A4DF0 - Has info on the current controller input state. (g_mDoCPd_cpadInfo)
803A4DF0,4 - Control stick horizontal axis. Float from -1 to 1.
803A4DF4,4 - Control stick vertical axis. Float from -1 to 1.
803A4E00,4 - C-stick horizontal axis. Float from -1 to 1.
803A4E04,4 - C-stick vertical axis. Float from -1 to 1.
803A4E20,1 - Bitfield of whether certain buttons are currently being pressed down.
01 - A button is down
02 - L button is down
04 - R button is down
08 - Z button is down
10 - D-pad up arrow button is down
20 - D-pad down arrow button is down
40 - D-pad right arrow button is down
80 - D-pad left arrow button is down
803A4E21,1 - Bitfield of whether certain buttons are currently being pressed down.
01 - ??? button is down
02 - ??? button is down
04 - ??? button is down
08 - ??? button is down
10 - Start button is down
20 - Y button is down
40 - X button is down
80 - B button is down
803A4E22,1 - Bitfield of whether certain buttons were just pressed this frame.
01 - A button was just pressed this frame
02 - L button was just pressed this frame
04 - R button was just pressed this frame
08 - Z button was just pressed this frame
10 - D-pad up arrow button was just pressed this frame
20 - D-pad down arrow button was just pressed this frame
40 - D-pad right arrow button was just pressed this frame
80 - D-pad left arrow button was just pressed this frame
803A4E23,1 - Bitfield of whether certain buttons were just pressed this frame.
01 - ??? button was just pressed this frame
02 - ??? button was just pressed this frame
04 - ??? button was just pressed this frame
08 - ??? button was just pressed this frame
10 - Start button was just pressed this frame
20 - Y button was just pressed this frame
40 - X button was just pressed this frame
80 - B button was just pressed this frame
803B9218 - List of which files (maybe Rels specifically?) are currently loaded.
Entry length 4. 0x1F6 entries in total.
The index in this list is the actor ID.
Each entry is a pointer to something? (e.g. 80ad4e30) Or 0 if it's invalid?
803BDC88-803C2187 - List of room controls. (related to zones?) (dStage_roomControl_c::mStatus) (dStage_roomStatus_c)
Entry length 0x114.
The index in this list is the room number.
There are 0x40 entries in total, the maximum number of rooms a given stage can have.
000,4: Pointer to 803754A4 (_15dStage_roomDt_c virtual table)
104,1: Bitfield relating to room loading??
& 01 - Must be 0 before the room will load in?
& 02 - Room is loading.
& 06 - if nonzero, stop looping over all room controls...?
& 08 - Room is hidden.
Checked by treasure chests, in daTbox_c::checkRoomDisp(int)
& 10 - ???
Checked by treasure chests, in daTbox_c::checkRoomDisp(int)
If 08 is not set and 10 is set, the room is considered loaded and treasure chests will be considered active, otherwise not?
107,1: Zone number? Read by getZoneNo func.
valid zone numbers are 00-1F
108,1: Memory block index for this room.
This is an index in dStage_roomControl_c::mMemoryBlock.
If this index is 0, the game defaults to using the entire Game heap as the memory heap for this room.
10C,4: The unique entity ID of the room entity for this room. (An instance of fopScnM.)
803C2188 - List of memory blocks. (dStage_roomControl_c::mMemoryBlock)
These are pointers to JKRExpHeap instances.
803754A4,13C - _15dStage_roomDt_c virtual table.
This is a list of functions that get or set pointers to each of the DZR/DZS chunk types.
e.g. At offset 0xF0 in here is a pointer to dStage_roomDt_c::getFileListInfo, the function that returns a pointer to FILI.
80375BA0 - List of event bits for having docked at certain islands. (l_landingEvent$5946)
Entry length 4.
5 entries in total.
00,1: The room number of the island.
02,2: The event bit.
The entries:
01 3040 Forsaken Fortress
04 2E02 Gale Isle
0D 0902 Dragon Roost Island
17 0A02 Greatfish Isle
29 0A20 Forest Haven
2D 2E04 Headstone Island
These affect where you respawn when in these sectors.
If a sector is in this list, and the corresponding event bit is not set,
=========== 803C4C08: g_dComIfG_gameInfo (instance of dComIfG_inf_c struct)
803C4C08-803C4C1F - Current player status.
803C4C08,2 - Max HP (in quarters of hearts, counting heart pieces).
803C4C0A,2 - Current HP (in quarters of hearts).
803C4C0C,2 - Current num rupees.
803C4C11,1 - Index of the inventory slot corresponding to the item equipped on the X button, or FF for none.
803C4C12,1 - Index of the inventory slot corresponding to the item equipped on the Y button, or FF for none.
803C4C13,1 - Index of the inventory slot corresponding to the item equipped on the Z button, or FF for none.
These determine what items on the inventory screen are highlighted in yellow.
0x00-0x14 are normal items (index in list 803C4C44).
0x18-0x1F are spoils (index in list 803C4C7E).
0x24-0x2B are bait (index in list 803C4C86).
0x30-0x37 are delivery bag items (index in list 803C4C8E).
803C4C16,1 - Currently equipped sword ID.
38 - Hero's Sword
39 - Master Sword (Powerless)
3A - Master Sword (Half Power)
3E - Master Sword (Full Power)
803C4C17,1 - Currently equipped shield ID.
3B - Hero's Shield
3C - Mirror Shield
803C4C18,1 - Current Power Bracelets ID. Should be 28 to own them.
803C4C1A,1 - Current wallet.
0 - 200 Rupee Wallet
1 - 1000 Rupee Wallet
2 - 5000 Rupee Wallet
803C4C1B,1 - Max magic meter/MP.
803C4C1C,1 - Current magic meter/MP.
803C4C2C,4 - Current time of day. (Float.)
Ranges from 0.0 to 360.0.
803C4C38,8 - Stage name of the player's "return place" (where you will be placed when you reload your save).
The 8th byte must be 00.
803C4C40,1 - Room number of the player's "return place" (where you will be placed when you reload your save).
803C4C41,1 - Spawn ID of the player's "return place" (where you will be placed when you reload your save).
803C4C44-803C4C58 - Inventory. (dSv_player_item_c)
Controls which items are in which slots on the inventory screen. Each slot is one byte.
If the byte is FF it means no item is in the slot.
Otherwise the byte is the item ID of the item in that slot.
The order of slots is from left to right, then top to bottom.
Each inventory slot:
803C4C44,1 - Telescope (20)
803C4C45,1 - Boat's Sail (78)
803C4C46,1 - Wind Waker (22)
803C4C47,1 - Grappling Hook (25)
803C4C48,1 - Spoils Bag (24)
803C4C49,1 - Boomerang (2D)
803C4C4A,1 - Deku Leaf (34)
803C4C4B,1 - Tingle Tuner (21)
803C4C4C,1 - Picto Box (23, 26)
803C4C4D,1 - Iron Boots (29)
803C4C4E,1 - Magic Armor (2A)
803C4C4F,1 - Bait Bag (2C)
803C4C50,1 - Bow (27, 35, 36)
803C4C51,1 - Bombs (31)
803C4C52,1 - Bottle 1
803C4C53,1 - Bottle 2
803C4C54,1 - Bottle 3
803C4C55,1 - Bottle 4
Bottle item IDs:
50 - Empty Bottle
51 - Red Potion
52 - Green Potion
53 - Blue Potion
54 - Elixir Soup (1/2)
55 - Elixir Soup
56 - Bottled Water
57 - Fairy in Bottle
58 - Forest Firefly
59 - Forest Water
803C4C56,1 - Delivery Bag (30)
803C4C57,1 - Hookshot (2F)
803C4C58,1 - Skull Hammer (33)
803C4C59-803C4C6D - List of bitfields of which items you own.
803C4C59,1 - Bitfield of whether you own the telescope + what bottle contents you have ever owned at an point.
0 - Telescope
1 - Unused bottle contents item 4F
2 - Empty Bottle
3 - Red Potion
4 - Green Potion
5 - Blue Potion
6 - Elixir Soup (1/2)
7 - Elixir Soup
803C4C5A,1 - Bitfield of whether you own the sail + what bottle contents you have ever owned at an point.
0 - Boat's Sail
1 - Bottled Water
2 - Fairy in Bottle
3 - Forest Firefly
4 - Forest Water
5 - Unused bottle contents item 5A
6 - Unused bottle contents item 5B
7 - Unused bottle contents item 5C
803C4C5B,1 - Bitfield of whether you own the wind waker + what bottle contents you have ever owned at an point.
0 - Wind Waker
1 - Unused bottle contents item 5D
2 - Unused bottle contents item 5E
3 - Unused bottle contents item 5F
4 - Unused bottle contents item 60
5 -
6 -
7 -
803C4C5C,1 - Bitfield of whether you own the grappling hook.
0 - Grappling Hook
803C4C5D,1 - Bitfield of whether you own the spoils bag.
0 - Spoils Bag
803C4C5E,1 - Bitfield of whether you own the boomerang.
0 - Boomerang
803C4C5F,1 - Bitfield of whether you own the deku leaf.
0 - Deku Leaf
803C4C60,1 - Bitfield of whether you own the tingle tuner.
0 - Tingle Tuner
803C4C61,1 - Bitfield of what picto boxes you own.
0 - Picto Box
1 - Deluxe Picto Box
803C4C62,1 - Bitfield of whether you own the iron boots.
0 - Iron Boots
803C4C63,1 - Bitfield of whether you own magic armor.
0 - Magic Armor
803C4C64,1 - Bitfield of whether you own the bait bag.
0 - Bait Bag
803C4C65,1 - Bitfield of which types of arrows you own.
0 - Regular arrows (Hero's Bow)
1 - Fire and Ice Arrows
2 - Light Arrow
803C4C66,1 - Bitfield of whether you own bombs.
0 - Bombs
803C4C67,1 - ?
803C4C68,1 - ?
803C4C69,1 - ?
803C4C6A,1 - ?
803C4C6B,1 - Bitfield of whether you own the delivery bag.
0 - Delivery Bag
803C4C6C,1 - Bitfield of whether you own the hookshot.
0 - Hookshot
803C4C6D,1 - Bitfield of whether you own the skull hammer.
0 - Skull Hammer
803C4C6E,2 - Timer for how long you have left before your Forest Water reverts to regular water?
803C4C70,1 - ?
803C4C71,1 - Number of arrows you have.
803C4C72,1 - Number of bombs you have.
803C4C76,1 - ?
803C4C77,1 - Maximum number of arrows you can carry.
803C4C78,1 - Maximum number of bombs you can carry.
803C4C7E-803C4C85 - What items are in your spoils bag.
803C4C86-803C4C8D - What items are in your bait bag.
803C4C8E-803C4C95 - What items are in your delivery bag.
Each bag has 8 slots, each is a byte. The byte is what item it is, or FF for no item in that slot.
803C4C98,4 - Bitfield of what delivery bag items you have ever owned at any point ("reserve items").
803C4C9C,1 - Bitfield of what spoils bag items you have ever owned at an point.
803C4C9D,1 - Bitfield of what bait bag items you have ever owned at an point.
Even if you use an item and have none of it left in your inventory, these bitfield still retains information on what items you had.
803C4CA4-803C4CAB - Number of each item in your spoils bag you have.
803C4CAC-803C4CB3 - Number of each item in your bait bag you have.
803C4CB4-803C4CBB - Number of each item in your delivery bag you have.
Each entry is a byte, which is the number of that spoil/bait/letter you own.
803C4CBC-803C4CC8 - Bitfield of which items you own.
803C4CBC,1 - Bitfield of which swords you own.
0 - Hero's Sword
1 - Master Sword (Powerless)
2 - Master Sword (Half power)
3 - Master Sword (Full power)
803C4CBD,1 - Bitfield of which shields you own.
0 - Hero's Shield
1 - Mirror Shield
803C4CBE,1 - Whether you own the Power Bracelets or not. 0 or 1.
803C4CBF,1 - Whether you have the Pirate's Charm or not. Bitfield.
0 - Pirate's Charm
1 - Have read the Pirate's Charm description in the pause menu.
803C4CC0,1 - Bitfield relating to the Hero's Charm.
0 - Hero's Charm is owned
1 - Hero's Charm is currently equipped
803C4CC5,1 - Bitfield of which songs you've learned.
0 - Wind's Requiem
1 - Ballad of Gales
2 - Command Melody
3 - Earth God's Lyric
4 - Wind God's Aria
5 - Song of Passing
803C4CC6,1 - Bitfield of which Triforce shards you own.
803C4CC7,1 - Bitfield of which pearls you own ("symbols").
0 - Nayru's Pearl
1 - Din's Pearl
2 - Farore's Pearl
803C4CDC-803C4CEB - Bitfield of charts you own.
803C4CEC-803C4CFB - Bitfield of charts you've opened up.
803C4CFC-803C4D0B - Bitfield of charts you've completed (got the treasure they point you to).
The treasure chart indexes that are used are every number from 00-32, except 22 and 23 (0x31/0d49 charts in total).
Indexes 0-7 are the Triforce charts.
You can get all 49 treasure charts by setting 803C4CDC to FFFFFFFF and 803C4CE0 to 0007FFF3.
803C4D0C-803C4D3C - List of which sectors you've visited/got mapped out.
Each sector is a byte.
The byte is a bitfield.
0 - Whether you've gotten this sector mapped out by a fishman.
1 - Whether you've visited this sector or not.
803C4D4D,1 - Bitfield of what Triforce charts you've gotten deciphered.
803C4D64,1 - The player's name. "Link" by default.
If the first character here is 0x00, the save file is considered nonexistent.
803C4DA8,1 - Whether you're on new game+ or not, boolean.
(It might actually be a counter for how many times you've cleared the game on this save? Not sure.)
If this is nonzero, the player will appear in their casual clothes even if they own the Hero's Clothes.
803C4DA9,1 - Which placement of salvage points to use for this save file.
This can be from 0 to 3. On a new game it's a random number from 0-2, on new game+ it's always 3.
Each salvage point has four possible locations. Only the location with the duplicate ID corresponding to this value will show up on a given playthrough.
803C4DAC,1 - ???
803C522C-803C532B - Bitfield of event bits you've seen.
Byte Bit
803C522C 01 saw tetra fall into the forest of fairies
803C522D 01 seen intro to fairy woods with tetra hanging? rescued tetra?
803C522E 80 entered forest of fairies? saw tetra in forest of fairies?
803C522F 10 saw rito postman with telescope with aryll
803C5230 08 ???
803C5234 02 tetra dialogue on outset?
803C523A 20 exited forest of fairies with tetra?
803C524C - if this is 20, something with the shop? could be bombs related
803C524C - if this is 10, something with the shop? could be bombs related
803C524C - if this is 08, something with the shop? could be bombs related
803C5256 - if this is 80, link has the hero's clothes (called by 800E7374 in execute func)
803C5261 - if this is 10, you've seen the intro (camera zooming around outset)
803C5262 - if bit 08 is set, collectmap62?
803C5262 - if bit 10 is set, collectmap63?
803C5262 - if bit 20 is set, collectmap64?
803C532A - low 3 bits contain the state of the squid battleship minigame? as in, should it give you the piece of heart, treasure chart 7, or purple rupee.
bits set during vanilla game in order:
803C522F 10 PIRATE_SHIP_ARRIVING_ON_OUTSET
803C522C 01 HAS_SEEN_HELMAROC_ARRIVING_AT_OUTSET
803C522D 08 TALKED_TO_ORCA_AFTER_HELMAROC_ARRIVED
803C525B 10 DID_SWORD_FIGHTING_TUTORIAL
803C522E 80 SAW_TETRA_IN_FOREST_OF_FAIRIES
803C522C 04 FOREST_OF_FAIRIES_BOKOBLINS_SPAWNED
803C522F 01 KILLED_ONE_FOREST_OF_FAIRIES_BOKOBLIN
803C5230 80 KILLED_BOTH_FOREST_OF_FAIRIES_BOKOBLINS
803C522D 01 RESCUED_TETRA
803C523A 20 PIRATES_ON_OUTSET
803C5234 02 LONG_TETRA_TEXT_ON_OUTSET
803C525E 02 SAW_SHIELD_IS_MISSING
(todo: missing event where grandma gives you shield since I already had the shield and it skipped)
803C5250 01 WATCHED_DEPARTURE_CUTSCENE_AND_SPAWN_ON_PIRATE_SHIP
803C5233 20 SAW_PIRATE_SHIP_MINIGAME_INTRO
803C5233 10 COMPLETED_PIRATE_SHIP_MINIGAME
set when you have access to the chest, but haven't opened it yet
803C5234 08 COMPLETED_PIRATE_SHIP_MINIGAME_AND_SPAWN_ON_PIRATE_SHIP
set when you've opened the chest
803C5234 04 TETRA_TOLD_YOU_TO_CLIMB_UP_THE_LADDER
803C5234 01 GOT_CATAPULTED_TO_FF1_AND_SPAWN_THERE
803C5231 20 GOSSIP_STONE_AT_FF1
this makes the pirate ship at outset island waiting for you to get on disappear
803C5230 01 PICKED_UP_FIRST_BARREL_IN_FF1
// Don't show Jail Text anymore
803C5230 02 GRABBED_FIRST_ROPE_IN_FF1
803C5230 04 GOT_THROWN_INTO_JAIL_IN_FF1
803C522F 40 got caught by searchlight in FF1?
803C5251 80 WATCHED_FIND_SISTER_IN_FF1_CUTSCENE
803C525A 01 WATCHED_MEETING_KORL_CUTSCENE
803C523B 80 KORL_UNLOCKED_AND_SPAWN_ON_WINDFALL
note: this also makes tetra hanging by a branch disappear from outset's forest
... (forest haven stuff)
803C5236 20 WATCHED_FOREST_HAVEN_INTRO_CUTSCENE
803C5257 80 TALKED_TO_KORL_AFTER_FH_CUTSCENE
803C5244 01 WATCHED_DEKU_TREE_CUTSCENE
this is for killing all chuchus on deku tree's face
803C5265 40 TALKED_TO_DEKU_TREE_AFTER_FARORES_PEARL_CUTSCENE
this is for having asked the deku tree about the island koroks. it enables the withered trees showing up on the sea chart.
(medli related stuff?)
803C525A 40
803C5267 80
803C5258 08
803C5244 20
803C5260 04 Medli has been kidnapped by a Floormaster
803C525F 04 Saw event where Medli calls to you from within jail
(makar stuff)
switch 21 - set when he plants the seed that causes the floormaster to capture him
803C5260 08 Makar has been kidnapped by a Floormaster
803C5260 40 Saw event where Makar calls to you from within jail
(greatfish/jabun stuff)
803C5265 20 seen cutscene where jabun gives you nayru's pearl?
803C524A 80 QUILL_TELLS_US_JABUN_IS_HIDING_AT_OUTSET
803C5236 01 TALKED_TO_KORL_AT_GREATFISH
803C5256 01 ENTERED_KORL_AFTER_GREATFISH
803C524B 04 WATCHED_WINDFALL_PIRATE_CUTSCENE
(pearl/tower of the gods stuff)
803C5240 10 placed nayru's pearl
803C5240 40 placed farore's pearl
803C5240 80 placed din's pearl
803C524A 40 TOWER_OF_THE_GODS_RAISED
803C525A 80 PEARL_TOWER_CUTSCENE
803C5264 40 TALKED_TO_KORL_POST_TOWER_CUTSCENE
switches checked during the tower raising scene:
55
39
37 (checked every frame)
(forsaken fortress stuff)
803C525C 40 talked to KoRL when entering FF2
803C526B 20 reflected phantom ganon's energy ball? maybe with empty bottle?
803C5244 20 TALKED_TO_KORL_AFTER_HYRULE_2_AND_FF3_ACTIVE
(helmaroc boss on forsaken fortress stuff)
803C5259 01 ANIMATION_SET_2
this is for seeing the cutscene where tetra and her gang free mila maggie and aryll from the prison
but if I just set this and enter the room, while it does skip that event, the game just crashes while the screen is black.
wait no it doesn't crash completely, it popups an error and then continues correctly??
(stuff maybe related to queen fairy)
803C5244 20 TALKED_TO_KORL_AFTER_HYRULE_2_AND_FF3_ACTIVE
this is necessary before queen fairy will meet you.
there might be other conditions though, as this crashes the game?
803C5253 40 SOME_WEIRD_FIRE_AND_ICE_ARROWS_CUTSCENE_FLAG
this seems to mark whether you've arrived inside mother island, regardless of whether you met the conditions to see queen fairy or not.
803C523C 01 WATCHED_FIRE_AND_ICE_ARROWS_CUTSCENE
this is for whether you actually met the queen and got the arrows.
(triforce stuff)
803C5269 04 talked to KoRL after getting all 8 triforce shards
803C525F 80 WATCHED_TEXT_AFTER_FIRE_AND_ICE_ARROWS_CUTSCENE
803C5259 08 HYRULE_3_WARP_CUTSCENE
803C5259 02 TETRA_TO_ZELDA_CUTSCENE
(various)
803C526A 40 got sucked up by cyclos
803C5253 04 defeated cyclos
803C525E 01 talked to KoRL after learning the master sword lost its power, he tells you to go to wind and earth temple
803C5264 08 related to Lenzo
803C525A 20 got the heart piece from watering withered trees with forest water
803C52CA FF event register for which withered trees have been watered?
803C52C6 FF another event register for which withered trees have been watered?
803C52C7 07 another event register for how many withered trees have been watered?
803C5237 20 got the hurricane spin from the event with orca
803C524C 20 bought the empty bottle from beedle
803C524C 10 bought the heart piece from beedle
803C524C 08 bought the Treasure Chart 4 from beedle
803C525F 08 related to makar being captured by floormasters? checked and set in d_a_tag_md_cb.rel
803C5242 01 something related to lenzo (specified at 54C4 in d_a_npc_photo.rel)
803C5264 08 something related to lenzo (checked at 3D08 in d_a_npc_photo.rel)
803C52B2 FF event register for how many shop membership points you have
803C523E 08 TALKED_TO_LENZO_ON_WINDFALL_WITHOUT_CAMERA
803C524A 01 TALKED_TO_MRS_MARIE_ON_WINDFALL
803C523F 80 AGREED_TO_HELP_MRS_MARIE
803C52EE 03 progress you've made in the letter-sorting minigame sidequest
803C523A 08 some flag set by poor mila, and checked by both zunari and her father
803C5239 04 gave 15 green chu jelly to doc bandam and he now stocks green potions
803C5239 02 gave 15 blue chu jelly to doc bandam and he now stocks blue potions
803C522D 02 watered all the withered trees?
(ganon's tower stuff)
switch 00 - phantom ganon killed by light arrows
switch 18 - used phantom ganon's sword to destroy the blockade
803C5266 08 used phantom ganon's sword to destroy the blockade
(warp pots)
803C52CE 07 DRC warp pots
803C52CD 07 FW warp pots
803C52CC 07 DRC-FW-TotG inter-dungeon warp pots (added by the rando)
803C52CB 07 WT warp pots
803C52CF 07 ET warp pots
803C52D0 07 FF-ET-WT inter-dungeon warp pots (added by the rando)
803C4DB4,4 - Player's partner's X pos.
803C4DB8,4 - Player's partner's Y pos.
803C4DBC,4 - Player's partner's Z pos.
803C4DC0,2 - Player's partner's rotation.
803C4DC2,1 - Player's partner's room number.
803C4DC3,1 - Player's partner's ID number. ("Restart option"?)
this is argument r4 to set__19dSv_player_priest_cFUcR4cXyzsSc
1 - Makar
2 - Medli
3 - East Servant of the Tower
4 - West Servant of the Tower
5 - North Servant of the Tower
803C4F88-803C51C7 - List of all stage infos in the save file. (dSv_memory_c)
Entry length 0x24.
There are 0x10 stage infos in total.
The index in this list is the stage ID.
803C4F88-803C4FAB - Stage ID 0 stage info (Sea)
803C4FAC-803C4FCF - Stage ID 1 stage info (Sea Alt)
803C4FD0-803C4FF3 - Stage ID 2 stage info (Forsaken Fortress)
803C4FF4-803C5017 - Stage ID 3 stage info (Dragon Roost Cavern)
803C5018-803C503B - Stage ID 4 stage info (Forbidden Woods)
803C503C-803C505F - Stage ID 5 stage info (Tower of the Gods)
803C5060-803C5083 - Stage ID 6 stage info (Earth Temple)
803C5084-803C50A7 - Stage ID 7 stage info (Wind Temple)
803C50A8-803C50CB - Stage ID 8 stage info (Ganon's Tower)
803C50CC-803C50EF - Stage ID 9 stage info (Hyrule)
803C50F0-803C5113 - Stage ID A stage info (Ship Interiors)
803C5114-803C5137 - Stage ID B stage info (Houses & Misc Places)
803C5138-803C515B - Stage ID C stage info (Cave Interiors)
803C515C-803C517F - Stage ID D stage info (More Cave Interiors & Ship Interiors)
803C5180-803C51A3 - Stage ID E stage info (This stage info's mem bit switches are used to keep track of Blue ChuChus being dead.)
803C51A4-803C51C7 - Stage ID F stage info (Test Maps)
Stage info format:
00,04: Bitfield of the stage's treasure chest open flags.
04,10: Bitfield of the stage's event switches (mem bits).
There are 0x80 bits in total.
These bits are grouped into words.
14,04: Bitfield of the stage's item pickup flags.
18,08: Bitfield of this dungeon's visited rooms.
Note that the first 4 bytes of this bitfield can also be used as item pickup flags (flag indexes 20-3F), though this was never done in the vanilla game.
20,01: Number of small keys you currently have for this dungeon stage.
21,01: Bitfield of dungeon-specific flags for this dungeon stage.
0 - Got dungeon map.