Commit Graph
29 Commits
Author SHA1 Message Date
Kevin Cathcart 63226e6610 Clean up whitespace 2018-03-28 20:45:53 -04:00
Kevin Cathcart 0565c472ea Death respawn without mirror in light world 2018-03-28 20:37:25 -04:00
Kevin Cathcart 72bae672e8 Add comments about unused ranges in bank 30 2018-03-18 17:31:13 -04:00
Kevin Cathcart 0e46888920 Better detection of falling into Ganon fight 2018-03-16 19:13:18 -04:00
Kevin Cathcart 378dd9dd3b Really fix substitution table 2018-03-16 18:29:45 -04:00
Kevin Cathcart bc513f5693 Fix bad branch 2018-03-16 13:06:51 -04:00
Kevin Cathcart 8dc6429530 Fix Bizarre Pyramid/Waterfall fairy glitches
This will hopefully fixes those weird glitches. The core issue being that the CLC was needed for the no-inventory case, or the game will increment $0D80 again, and put us in the "Link just lied the first time" state instead of the end state like we wanted.
2018-03-16 12:30:48 -04:00
Kevin Cathcart ede55dee85 Fix 2nd silver arrow issue in easy mode
Don't use X/4 to index into `ItemSubstitutionRules`.
2018-03-16 10:36:55 -04:00
Kevin Cathcart 2a7927e53b Make bow at uncle work in retro mode
Hardcoded to 300. Ideally should be front end configurable, but that can come later.
2018-03-14 01:43:08 -04:00
Kevin Cathcart 6c6dac11ff Fully fix dark world spawn
Fix a backwards check
2018-03-14 00:32:43 -04:00
Kevin Cathcart d20fcc08a8 Pyramid spawn updates
Move the pyramid spawn forcing code to run before the Aga1 check. The whole point of the code is to force a pyramid spawn even if you are fighting Ganon in the fake world. (Otherwise a branch to `.done` would have been good enough). It only makes sense to also do the same thing if Aga1 is dead.

The `FORCE_PYRAMID` SRAM flag was only ever set in `SetDeathWorldChecked`, which then branches immediately to the code that clears it so I removed that flag entirely.

Move the spawn on pyramid code from DarkWorldFlagSet to SetDeathWorldChecked, because it never actually ran in the first function, due to the previous observation.
2018-03-13 16:57:43 -04:00
Kevin Cathcart cb0d0cd4d0 Fix Graphical Corruption.
Also fix possible latent bug from lack of indoors checking.
2018-03-13 02:47:22 -04:00
Kevin Cathcart d36dd4839a Update bank map 2018-03-06 12:06:12 -05:00
Kevin Cathcart 341f146cad Patch the right spot 2018-02-24 12:47:06 -05:00
Kevin Cathcart 6f33acb0e1 Fix 3 digit arrow count in non-retro mode 2018-02-23 19:57:58 -05:00
Kevin Cathcart e7a58b2ea8 Remove purple chest despawn code
The blind despawn fix makes this unnecessary. Dungeon Entrance event
hook retained for possible future use, but is commented out.
2018-02-23 19:57:58 -05:00
Kevin Cathcart a94e0e8012 Fixes for Tagalongs for ER
Fixes various tagalong issues that affect Entrance Randomizer, most
involving frog/blacksmith
2018-02-23 19:57:11 -05:00
Kevin Cathcart 8c151e0fc2 Add Quick Swap 2018-02-23 19:20:47 -05:00
Kevin Cathcart 5f25e50551 Fix graphics when throwing items to fairy
This hook will not work without another one that changes the data bank. Which apparently was never checked in due to green mail approach to fixing the freeze did not work out.
2018-02-23 11:50:18 -05:00
Kevin Cathcart 711866d9b3 Update HUD arrow drawing code
Draw arrows (in normal spot) in retro hud only if you have arrows and draw the specific
type you have
2018-02-21 20:22:19 -05:00
Kevin Cathcart 77db3a90da Pack more shops into SRAM 2018-02-15 23:50:07 -05:00
Kevin Cathcart 60eafcaf46 Fix the dark world
Restore fake world fix to previous position

Change how the FixBunnyOnExitToLightworld Code works, and where it is
called from
2018-02-10 22:05:44 -05:00
Kevin Cathcart 0c72ca9e0e Fix not being bunny after defeating aga2 w/o moon Pearl 2018-02-07 01:56:51 -05:00
Kevin Cathcart 16259ce158 Add light world check to more unbunny-ing code
This time the code that tries to unbunny you when leaving a dungeon.This
is needed to make ER's new cross world connects work properly.

Move the fake world fix to happen in time for this.
2018-02-07 01:56:50 -05:00
Kevin Cathcart 3764deb4d3 fix Alt Door frame table
(Apparently trailing commas break things)
2018-02-05 00:11:16 -05:00
Kevin Cathcart b3d8c23d89 Add door frame data for the multi-entrance caves. This will support
mixing single and multi-entrance caves.

I also added the alternate door frame table, which is needed for having
single entrance caves at
Sanctuary and Hyrule castle. (Added as a table rather than hard coding
the ids in order to be more friendly to level editors).

Updated the comments and function name to be clear that we are tracking
the overworld door
id, not the entrance id.

Remove the code that attempts to clear the entrance because the code is
broken (it lacked a needed ".w" suffix, so xkas miscompiled it) meaning
the value was never cleared, which has not caused any issues. Also
having the entrance ID around is generally useful.
2018-01-21 15:31:16 -05:00
Kevin Cathcart 29b44e4167 Create a flag to toggle off Fake Worlds
Add a new rom flag to disable fake Light/Dark worlds from occurring as a
result of underworld travel. (Other methods of fake worlds like YBA Fake
Flute are not changed).

Entrance Randomizer intends to use this flag to fix the Fake Light world
from traveling though sewers when Hyrule Castle is in the dark world, as
well as to implement new shuffle modes that involve deliberate
cross-world caves without needing to grant pearl and mirror like the
current insanity mode does.
2018-01-20 13:42:10 -05:00
Kevin Cathcart 55473a4d01 GT in Kakariko music fix
This fixes music stopping partway up GT when
the player encounters a "PsychoSoldier" (MathOnNapkin's name). Both types
of this sprite sharethe same audio code. They have code to play special
music if chasing link in Kakariko. That is fine in vanilla or item
rando, but if they try to play this music in a dungeon located in
kakariko, this will cause the music to just stop, because that song is
not avaiulable in the dungeon music bank.

This patch fixes this by adding an extra check to make sure we are in
the overworld before playing this song.
2018-01-20 11:21:00 -05:00
Kevin Cathcart bf2b119748 Fix music in Entrance Randomizer
This commit fixes the wrong music when leaving certain caves bug in
Entrance Randomizer.

The vanilla games decides what music to play when re-entering the
overworld in code in `PreOverworld_LoadProperties`. One of the main
things the game uses to decide the correct music is the overworld screen
being loaded. Obviously that is ideal. But it also sometimes bases its
decision on the underworld screen you are leaving.

Why would they do that? Well some screens can be re-entered from
houses/etc that play at half volume. Nintendo did not want to have the
music restart from the begining when leaving those locations, so they
explictly coded the non-half-volume locations to set the music for that
screen, and let the half music volume cases fall though, and get handled
by a special case later in the process.

There is a better apporach though. Simply determine what music should be
playing for this overworld screen, looking only at the overwold screen
index. Then see if "half-volume music" is the last played song command.
If so, check what the actual song playing is. If it matches song for the
overworld screen we are entering, then play the full volume command.
Otherwise play the song for the screen we are entering (which by virtue
of being a new song will always play full volume).

This patch implements that better approach. It basically moves the music
selection code from `PreOverworld_LoadProperties` into the custom code
bank, removes the checks for specific underworld locations, and makes
sure the last bit of code run before actually setting the music is the
one to handle half music, as described above.
2018-01-20 11:20:59 -05:00