Things Found Under Lifted or Destroyed Objects (Bushes, Grass squares, Rocks, Rock Piles, Pots, Signs, and Big Square Blocks) Mini Algorithm Guide Version 1.0 by Assassin 21 August 2013 (and some mysterious earlier date, if the Deja Vu is believed) _______________________________________________________________________________ Upon lifting, slicing down, or bombing a bush (which can be green, purple, or brownish green), lifting a rock (which can be small or large, light or dark, normal or skull), lifting a pot (which can be brown or a skull), lifting a sign (which can be brown or yellow), slicing or bombing a square of grass, dashing into a rock pile, or lifting a large, gray, square block, the game performs the following steps to determine what will be found under it: 1) If there is a nonzero item ID assigned to the lifted/destroyed object, skip to Step 5. 2) If we're indoors, skip to Step 5. 3) If what we're looking under isn't grass or a normal green (not brownish green) or purple bush, skip to Step 5. 4) This step will "randomly" choose an item ID for what's under a bush or square of grass, as there was no specific entity assigned to it (or Item ID 00h - Nothing was literally assigned to it). It has several substeps: A. Randomly skip to Step 5 one half of the time. B. If there are four or more non-Link sprites/monsters onscreen (not counting Sprite 6Ch, whatever that is), skip to Step 5 to avoid overcrowding. C. If we're not in at least Phase 2 of the game (i.e. we haven't brought Princess Zelda to the Sanctuary yet), then skip to Step 5. D. Get our current square of the map. It'll be a 0-63 value, as the overworld maps are 8x8 grids. Two notes: - Large map sections are 2x2, with one square number taking the place of 4 positions. For example, the Mysterious Woods / Skeleton Forest is all indexed with Position 0, rather than with 0, 1, 8, and 9. - The square number actually comes from the bottom 6 bits of a Screen Number variable, which holds 0 - 63 for normal Light World map screens, 64 - 127 for normal Dark World map screens, and 128+ for special screens (e.g. the Master Sword screen, the camp under the bridge, and Zora's Lake). The top two bits are ignored. So the Zora area, for instance, is screen 129, but gets treated like it's Screen 1 (whose random prize/sprite data is a duplicate of Screen 0 - Mysterious Woods, and doesn't disable anything). This oversight allows for a crazy, garbled looking foe to turn up, as Zora's Waterfall lacks the tile set to properly display the Green Soldier. E. Load our 0 to 7 bush/grass prize pack counter, which indexes two prize packs (one for each world) of eight entries each. Increment it for our next use (wrapping to zero if it exceeds seven). On the GBA version, it apparently loads the post-incremented value instead. (Note that this counter is reinitialized to 0 after a system reset or powerdown, even if you'd saved your game. However, on the SNES version, it is retained after Saving, Quitting, and reloading (and you can even temporarily copy it between save slots by saving on one, then loading another).) F. The prize packs for each world are: Light World = 01h, 01h, 01h, 01h, 0Fh, 01h, 01h, 12h (Green Rupee, Green Rupee, Green Rupee, Green Rupee, Green Soldier with Sword, Green Rupee, Green Rupee, Ground Bomb / Land Mine) Dark World = 10h, 01h, 01h, 01h, 11h, 01h, 01h, 03h (Awakening Skull Rock, Green Rupee, Green Rupee, Green Rupee, Blue Helmeted Bull with Poker, Green Rupee, Green Rupee, Bee) Get the Item ID from the slot indexed by our loaded prize pack counter. However, instead proceed to Step 5 without loading an Item ID if both of these conditions are met: - Our intended prize pack slot is preventable in the current world (see list); that is, it has a nonzero prevention flag. - The current map square has this prevention flag present in its list of exclusions. (Each square has a single list used for both worlds.) Preventable "random" sprites: Light World = Slot 4, Slot 7 (Green Soldier with Sword, Ground Bomb / Land Mine) Dark World = Slot 0, Slot 4 (Stal / Awakening Skull Rock, Blue Helmeted Bull with Poker) 5) If we're indoors, skip to Step 7. 6) Randomly exit and return nothing one half of the time. 7) If an ID of 00h (or nothing) was originally assigned to the bush/grass/rock/ pot/rock pile/sign/block, and Step 4 did not change it by picking a new ID, exit and return nothing. 8) If an ID of 04h (Random) was originally assigned to the lifted/destroyed object, randomly pick an item ID ranging from 13h through 16h. Otherwise, just stick with the assigned ID. 9) Convert the Item ID into a sprite using the table below. If the sprite is 00h (Nothing), then don't actually put that on the map (as it'd be a Crow/Raven or Kyune/Horned bird), but exit and don't return anything. Item ID | Sprite (ID) -------------+------------------------------------------------------ 01h | Green Rupee (D9h) 02h | Rock Spider/Beetle/Crab/Hoarder (3Eh) 03h | Bee (79h) 04h | Random (special case - see Step 8) | (Note that Green Rupee is in the data here, but | it's just a placeholder.) 05h | Bomb x 1 (DCh) 06h | Heart (D8h) 07h | Blue Rupee (DAh) 08h | Key (E4h) 09h | Arrow x 5 (E1h) 0Ah | Bomb x 1 (DCh) 0Bh | Heart (D8h) 0Ch | Partial Magic refill (DFh) 0Dh | Full Magic refill (E0h) 0Eh | Cucco/Chicken [LW] or Cucco/Chicken skeleton [DW] | (both 0Bh) 0Fh | Green Soldier with Sword (42h) 10h | Stal / Awakening Skull Rock (D3h) 11h | Blue Soldier with Sword [LW] or Blue Helmeted Bull | with Poker [DW] (both 41h) 12h | Ground Bomb aka Land Mine (D4h) 13h | Green Rupee (D9h) 14h | Faerie/Fairy (E3h) 15h | Heart (D8h) 16h | Nothing (00h - special case, see above) _______________________________________________________________________________ RECOMMENDED READING _______________________________________________________________________________ This document doesn't get into which prize pack slots are disabled by which map squares. To see that information, you'll want to consult the "Commented code and data for item uncovering" on my website: http://home.comcast.net/~assassin17/zelda3_guides.htm OR http://www14.brinkster.com/assassin17/zelda3_guides.htm Compare the map data in the 1A/FB7B structure to the 1A/FBCB or 1A/FBD3 structure (depending on which world), and see when common bits are set. _______________________________________________________________________________ CREDITS _______________________________________________________________________________ - Susan Carriere, for suggesting I create a more readable document to supplement the commented disassembly of the findings under bushes, grass, rocks, etc. Then for providing various helpful feedback on the document: suggesting a preamble, pointing out a step omission which would have allowed keys under pots being randomly missable, asking for elaboration on preventable random prizes, clearing up ambiguity in Step 8, and suggesting I account for the different-sized rocks (which eventually led to me listing every relevant covering object). - Lady_Birdo for pointing out that the glitched enemy at Zora's Waterfall was a soldier. I couldn't tell what I was looking at. - BaronDante for explaining that the glitched appearance stems from the soldier's tile set not being loaded in that area. _______________________________________________________________________________ REVISION HISTORY _______________________________________________________________________________ Version 1.0: 2009 and maybe 2010; July 10-13 and 15, 2013; August 14-16, 18-19, and 21, 2013: - Released a commented disassembly on July 12, 2009, after starting work on it sometime before March 27, 2009. But that wasn't necessarily readable by most humans. - Starting in August 2009 and maybe extending into early 2010, wrote a document that had about 90% of the step content you see here. However, I never uploaded it anywhere, as it wasn't quite done, and the hard drive of the computer housing it crashed. :O I couldn't stomach the idea of re-composing something I'd already done, and figured I'd retrieve it whenever the hard drive was restored. (It's probably just a service sector issue.) However, by mid 2013, still having yet to bring the disk anywhere, I had an epiphany that I am even cheaper than I am lazy. So I decided to bite the bullet and remake the document. - July 10-13 and 15, 2013: Wrote document, then improved it based on Susan Carriere's suggestions. - August 14-16 and 18-19: Added "Stal" as a name for the skull rock enemy, and "Hoarder" and "Crab" for the Rock Beetle/Spider. Added Credits and Revision History sections. Added GBA and reset/reload info to Step 4E. - August 21, 2013: Released document.