greenham

Untitled

Jul 31st, 2019
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.
Add Comment
Please, Sign In to add comment