View difference between Paste ID: 0yraRyFn and SYq5EqFn
SHOW: | | - or go back to the newest paste.
1
Things Found Under Lifted or Destroyed Objects
2
(Bushes, Grass squares, Rocks, Rock Piles, Pots, Signs, and Big Square Blocks)
3
Mini Algorithm Guide
4
Version 1.0
5
by Assassin
6
21 August 2013 (and some mysterious earlier date, if the Deja Vu is believed)
7
8
_______________________________________________________________________________
9
10
Upon lifting, slicing down, or bombing a bush (which can be green, purple, or
11
brownish green), lifting a rock (which can be small or large, light or dark,
12
normal or skull), lifting a pot (which can be brown or a skull), lifting a sign
13
(which can be brown or yellow), slicing or bombing a square of grass, dashing
14
into a rock pile, or lifting a large, gray, square block, the game performs the
15
following steps to determine what will be found under it:
16
17
1) If there is a nonzero item ID assigned to the lifted/destroyed object, skip
18
   to Step 5.
19
20
2) If we're indoors, skip to Step 5.
21
22
3) If what we're looking under isn't grass or a normal green (not brownish
23
   green) or purple bush, skip to Step 5.
24
25
4) This step will "randomly" choose an item ID for what's under a bush or
26
   square of grass, as there was no specific entity assigned to it (or Item ID
27
   00h - Nothing was literally assigned to it).  It has several substeps:
28
29
   A. Randomly skip to Step 5 one half of the time.
30
   B. If there are four or more non-Link sprites/monsters onscreen (not
31
      counting Sprite 6Ch, whatever that is), skip to Step 5 to avoid
32
      overcrowding.
33
   C. If we're not in at least Phase 2 of the game (i.e. we haven't brought
34
      Princess Zelda to the Sanctuary yet), then skip to Step 5.
35
   D. Get our current square of the map.  It'll be a 0-63 value, as the
36
      overworld maps are 8x8 grids.  Two notes:
37
      - Large map sections are 2x2, with one square number taking the place of
38
        4 positions.  For example, the Mysterious Woods / Skeleton Forest is
39
        all indexed with Position 0, rather than with 0, 1, 8, and 9.
40
      - The square number actually comes from the bottom 6 bits of a Screen
41
        Number variable, which holds 0 - 63 for normal Light World map screens,
42
        64 - 127 for normal Dark World map screens, and 128+ for special
43
        screens (e.g. the Master Sword screen, the camp under the bridge, and
44
        Zora's Lake).  The top two bits are ignored.  So the Zora area, for
45
        instance, is screen 129, but gets treated like it's Screen 1 (whose
46
        random prize/sprite data is a duplicate of Screen 0 - Mysterious
47
        Woods, and doesn't disable anything).  This oversight allows for a
48
        crazy, garbled looking foe to turn up, as Zora's Waterfall lacks the
49
        tile set to properly display the Green Soldier.
50
   E. Load our 0 to 7 bush/grass prize pack counter, which indexes two prize
51
      packs (one for each world) of eight entries each.  Increment it for our
52
      next use (wrapping to zero if it exceeds seven).  On the GBA version,
53
      it apparently loads the post-incremented value instead.
54
      (Note that this counter is reinitialized to 0 after a system reset or
55
      powerdown, even if you'd saved your game.  However, on the SNES version,
56
      it is retained after Saving, Quitting, and reloading (and you can even
57
      temporarily copy it between save slots by saving on one, then loading
58
      another).)
59
   F. The prize packs for each world are:
60
61
      Light World = 01h, 01h, 01h, 01h, 0Fh, 01h, 01h, 12h
62
        (Green Rupee, Green Rupee, Green Rupee, Green Rupee, Green Soldier
63
         with Sword, Green Rupee, Green Rupee, Ground Bomb / Land Mine)
64
      Dark World = 10h, 01h, 01h, 01h, 11h, 01h, 01h, 03h
65
        (Awakening Skull Rock, Green Rupee, Green Rupee, Green Rupee,
66
         Blue Helmeted Bull with Poker, Green Rupee, Green Rupee, Bee)
67
68
      Get the Item ID from the slot indexed by our loaded prize pack counter.
69
      However, instead proceed to Step 5 without loading an Item ID if both of
70
      these conditions are met:
71
      - Our intended prize pack slot is preventable in the current world (see
72
        list); that is, it has a nonzero prevention flag.
73
      - The current map square has this prevention flag present in its list of
74
        exclusions.  (Each square has a single list used for both worlds.)
75
76
      Preventable "random" sprites:
77
       Light World = Slot 4, Slot 7
78
                     (Green Soldier with Sword, Ground Bomb / Land Mine)
79
       Dark World = Slot 0, Slot 4
80
                   (Stal / Awakening Skull Rock, Blue Helmeted Bull with Poker)
81
82
5) If we're indoors, skip to Step 7.
83
84
6) Randomly exit and return nothing one half of the time.
85
86
7) If an ID of 00h (or nothing) was originally assigned to the bush/grass/rock/
87
   pot/rock pile/sign/block, and Step 4 did not change it by picking a new ID,
88
   exit and return nothing.
89
90
8) If an ID of 04h (Random) was originally assigned to the lifted/destroyed
91
   object, randomly pick an item ID ranging from 13h through 16h.  Otherwise,
92
   just stick with the assigned ID.
93
94
9) Convert the Item ID into a sprite using the table below.  If the sprite is
95
   00h (Nothing), then don't actually put that on the map (as it'd be a
96
   Crow/Raven or Kyune/Horned bird), but exit and don't return anything.
97
98
     Item ID   |  Sprite (ID)
99
  -------------+------------------------------------------------------
100
      01h      |   Green Rupee (D9h)
101
      02h      |   Rock Spider/Beetle/Crab/Hoarder (3Eh)
102
      03h      |   Bee (79h)
103
      04h      |   Random (special case - see Step 8)
104
               |    (Note that Green Rupee is in the data here, but
105
               |    it's just a placeholder.)
106
      05h      |   Bomb x 1 (DCh)
107
      06h      |   Heart (D8h)
108
      07h      |   Blue Rupee (DAh)
109
      08h      |   Key (E4h)
110
      09h      |   Arrow x 5 (E1h)
111
      0Ah      |   Bomb x 1 (DCh)
112
      0Bh      |   Heart (D8h)
113
      0Ch      |   Partial Magic refill (DFh)
114
      0Dh      |   Full Magic refill (E0h)
115
      0Eh      |   Cucco/Chicken [LW] or Cucco/Chicken skeleton [DW]
116
               |    (both 0Bh)
117
      0Fh      |   Green Soldier with Sword (42h)
118
      10h      |   Stal / Awakening Skull Rock (D3h)
119
      11h      |   Blue Soldier with Sword [LW] or Blue Helmeted Bull
120
               |    with Poker [DW] (both 41h)
121
      12h      |   Ground Bomb aka Land Mine (D4h)
122
      13h      |   Green Rupee (D9h)
123
      14h      |   Faerie/Fairy (E3h)
124
      15h      |   Heart (D8h)
125
      16h      |   Nothing (00h - special case, see above)
126
127
_______________________________________________________________________________
128
129
 RECOMMENDED READING
130
_______________________________________________________________________________
131
132
This document doesn't get into which prize pack slots are disabled by which
133
map squares.  To see that information, you'll want to consult the "Commented
134
code and data for item uncovering" on my website:
135
136
http://home.comcast.net/~assassin17/zelda3_guides.htm  OR
137
http://www14.brinkster.com/assassin17/zelda3_guides.htm
138
139
Compare the map data in the 1A/FB7B structure to the 1A/FBCB or 1A/FBD3
140
structure (depending on which world), and see when common bits are set.
141
142
_______________________________________________________________________________
143
144
 CREDITS
145
_______________________________________________________________________________
146
147
- Susan Carriere, for suggesting I create a more readable document to
148
  supplement the commented disassembly of the findings under bushes, grass,
149
  rocks, etc.  Then for providing various helpful feedback on the document:
150
  suggesting a preamble, pointing out a step omission which would have allowed
151
  keys under pots being randomly missable, asking for elaboration on
152
  preventable random prizes, clearing up ambiguity in Step 8, and suggesting I
153
  account for the different-sized rocks (which eventually led to me listing
154
  every relevant covering object).
155
156
- Lady_Birdo for pointing out that the glitched enemy at Zora's Waterfall was
157
  a soldier.  I couldn't tell what I was looking at.
158
159
- BaronDante for explaining that the glitched appearance stems from the
160
  soldier's tile set not being loaded in that area.
161
162
_______________________________________________________________________________
163
164
 REVISION HISTORY
165
_______________________________________________________________________________
166
167
Version 1.0: 2009 and maybe 2010; July 10-13 and 15, 2013; August 14-16, 18-19,
168
             and 21, 2013:
169
170
 - Released a commented disassembly on July 12, 2009, after starting work on
171
   it sometime before March 27, 2009.  But that wasn't necessarily readable by
172
   most humans.
173
 - Starting in August 2009 and maybe extending into early 2010, wrote a
174
   document that had about 90% of the step content you see here.  However, I
175
   never uploaded it anywhere, as it wasn't quite done, and the hard drive of
176
   the computer housing it crashed. :O  I couldn't stomach the idea of
177
   re-composing something I'd already done, and figured I'd retrieve it
178
   whenever the hard drive was restored.  (It's probably just a service sector
179
   issue.)  However, by mid 2013, still having yet to bring the disk anywhere,
180
   I had an epiphany that I am even cheaper than I am lazy.  So I decided to
181
   bite the bullet and remake the document.
182
 - July 10-13 and 15, 2013: Wrote document, then improved it based on Susan
183
   Carriere's suggestions.
184
 - August 14-16 and 18-19: Added "Stal" as a name for the skull rock enemy, and
185
   "Hoarder" and "Crab" for the Rock Beetle/Spider.  Added Credits and Revision
186
   History sections.  Added GBA and reset/reload info to Step 4E.
187
 - August 21, 2013: Released document.