Commit Graph

1541 Commits

Author SHA1 Message Date
Jordan Longstaff 236c9c81f5 Hookify Bombchu Bowling options (#6968)
Cuccos get destroyed when options turned on
2026-07-23 03:56:43 +00:00
djevangelia fb657cc5d5 Savestates, more AudioOcarina serialization (#6954) 2026-07-22 13:48:10 +00:00
Philip Dubé d62c5879aa Fix problems with Zelda's Letter & Weird Egg hatching (#6962) 2026-07-22 12:24:31 +00:00
djevangelia 6f14e7b162 Restoration, fix Japanese subtitle + MQ logo (#6953) 2026-07-22 10:21:32 +00:00
Philip Dubé 1ea7206073 Shuffle Zelda's Letter (#6938)
Removes RSK_SKIP_CHILD_ZELDA & RSK_KAK_GATE,
these are managed by RSK_SHUFFLE_ZELDAS_LETTER & RSK_STARTING_ZELDAS_LETTER & RSK_SHUFFLE_WEIRD_EGG
2026-07-19 22:37:45 +00:00
djevangelia 2c9187f27a Bugfix, make CC invisible Link equips invisible (#6926) 2026-07-19 20:52:22 +00:00
djevangelia e579e7b9a4 Polishing, climb everything door opening + sloped ledge climb up (#6936)
Allow player to try opening doors while climbing. Player can't open anything if a door doesn't offer it, so it's ok to try. Handle doors don't change player y position (player walks in the air), so manually lower it.
    Increase y height limit for doors to offer open from 15.0f/20.0f to 50.0f (normal door height). (For shutter doors height could be individualized depending on shutter door type in the future.)
    Make climbing up animation play even for sloped ledges. The animation/action breaks because game thinks player is not on ground. So, at the end of Player_ProcessSceneCollision, if player is in climbing up action, manually set BGCHECKFLAG_GROUND.
2026-07-19 17:04:32 +00:00
Christopher Leggett 8cb0c74592 Better Save Menu: Ability to Reset to Spawn from anywhere (#6937)
Adds an option for a Better Save Menu that, after saving, allows you to effectively soft-reset the current save (either return to spawn or reset to the dungeon entrance), and additionally lets you reset to spawn specifcally, even if you are in a dungeon. This allows for escaping from the rare entrance-rando related softlock that can happen.
2026-07-19 17:01:50 +00:00
djevangelia 29d4ff4205 Decomp, update AudioOcarina (code_800EC960.c) (#6941) 2026-07-19 16:54:43 +00:00
djevangelia dfaed90868 Savestates, player serialization (#6927) 2026-07-18 18:10:01 +00:00
djevangelia 033613a6cf Vanilla bugfix, ladder cutscene softlock (#6804) 2026-07-18 15:02:59 +00:00
djevangelia 852fb86cf2 Rando, prevent carrying abducted Ruto into Bigocto room (#6845)
If Ruto enters Bigocto's room after she has already been abducted, the room behaves weird due to actor functions. Randomizer respawns Ruto after abduction, so this can become a problem.

The easiest solution is probably to just not let player open doors to Bigocto room while carrying Ruto after abduction.
This fix makes shutter doors in randomizer when offering player to open the door - check scene, abduction flag, if door is transition actor index 21 or 3, held actor, and if held actor is Ruto.
Looks like this: https://www.youtube.com/watch?v=2Siq2Z41Pqo

The shutter door in decomp and thus this fix uses macros that are missing here, I copied all of them to the corresponding place in actor.h as they are very useful for actor params and will be added anyway when/if code is synced with decomp.
2026-07-13 15:32:10 +00:00
djevangelia d1d6a564e5 Bugfix, grotto boulder block respawn from water voidout (#6854) 2026-07-13 15:02:11 +00:00
David Racine fdb7e194cc fix(audio): bounds-check fontId to stop OOB crash with large SAF packs (#6916)
AudioLoad_IsFontLoadComplete had a stub `return true` that bypassed all
load-status checks, masking an out-of-bounds write: for large SAF packs
(many custom sequences) SetFontLoadStatus indexed fontLoadStatus[] with
fontId values larger than the fontMapSize-sized array, causing heap
corruption and semi-random crashes.

Remove the stub. Add a (size_t)fontId >= fontMapSize guard in both the
check and the setter: out-of-range IDs (custom SAF sequences that carry
no associated soundfont) are treated as "loaded" in the check and
silently skipped in the write, matching prior observable behavior while
eliminating the OOB access.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 12:12:43 +00:00
Philip Dubé ff7eb482d4 Don't point free cam at sky coming out of crawlspace (#6920) 2026-07-13 04:56:00 +00:00
Philip Dubé 66bb7888b0 Add save state wiring for Barinade, Bongo Bongo, & Morpha (#6914)
Rename various variables across codebase to match decomp,
many had been renamed when exposed for previous save state mechanism
2026-07-12 22:35:19 +00:00
djevangelia a44197712c Bugfix, prevent looping fanfares from softlocking HBA (#6874) 2026-07-12 17:51:26 +00:00
Philip Dubé c94ae8ccf3 wire decomp static savestates with macros (#6904) 2026-07-12 15:09:47 +00:00
Amber Burton 2b423c36aa GIM Restoration (#6865)
All edge cases for bottle combinations and replacement/filling mirrors the real game, as well we produce the compass text, and does not render the item exactly as the original game does. (I would have preferred rendering the item since its only cosmetic but I couldn't find a way to do it).

This also swaps the table redirect stuff for using the direct item id's which is a lot more clear and does not substitute anything for 'good enough' and covers all the edge case ids that have been documented.

This is purely a cosmetic change to present the visual of the item without affecting the cutscene making any tricks for GIM still work and just looks more polished.

This supplies effects of ALL game versions (including MZX build) as well as providing text table.

To note: we still can crash with GIM even when returning item None EVEN at least with returning Kokiri Tunic (I can't really figure out why) and there are a few items in the table that use extra data that I don't know how to implement here just yet but the info is in the docs under "Variable".

In the case of disabling the gim restoration, the game would still crash. This change adds a text id protection to prevent crashing, as well prevents invalid items from crashing directly, and also makes it so the game will no longer crash when having GIM disabled in the menu.

Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-07-12 15:09:06 +00:00
djevangelia 1003c462a8 Decomp pull, some z_player and global changes (#6908) 2026-07-12 14:59:10 +00:00
Jordan Longstaff b81d47d795 Hookify text speed options (#6881) 2026-07-11 18:01:02 +00:00
djevangelia 847e3cd323 Maintenance, edits and addition to Lake Hylia water control (#6884) 2026-07-11 15:18:55 +00:00
djevangelia 50837308b7 Decomp, update z_en_holl.c (#6890) 2026-07-09 15:44:29 +00:00
djevangelia 73df35c6ab Bugfix, child Hookshot first person in Hylia lab (#6847) 2026-07-08 19:58:24 +00:00
djevangelia 2fc787d64b Enhancement, add SoT blocks to one point cutscene skip (#6848) 2026-07-08 16:04:29 +00:00
Philip Dubé 3a12eeaa71 cleanup lake hylia swim spawn hook (#6887) 2026-07-08 13:58:23 +00:00
djevangelia 1133ae221a Bugfix, rando Domain to Lake entry air swim (#6873) 2026-07-08 13:46:34 +00:00
Philip Dubé 5cf03a4cda pull decomp changes: actor functions, z_en_horse.c (#6877) 2026-07-07 01:51:44 +00:00
Philip Dubé 015440fdff Decouple GBK from LACS (#5838)
Triforce Pieces can now be tokens for bridge or ganon's soul. & can be tokens for multiple rewards

Wincon can now be arbitrary conditions

Ganon's Soul (removed from existing boss soul options) can now be arbitrary conditions

Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2026-07-04 20:04:09 +00:00
Philip Dubé 618b7694b1 SpeedModifiers.cpp (#6861)
Prevent speed modifiers affecting dive speed when bunny jump not enabled
2026-07-04 13:25:44 +00:00
Shishu the Dragon b09c0733e2 Ivan: Move ActorDB registration into IvanCoop.cpp (#6815) 2026-07-04 01:51:28 +00:00
djevangelia 2385603496 Bugfix, add Dodongo fire in enemy randomizer (#6855) 2026-07-03 18:14:01 +00:00
djevangelia 1580d7c3d1 Bugfix, Bigocto softlock on early damage (#6842) 2026-07-01 15:40:48 +00:00
Chris c5835669fe Hookifying Various Cheats and FixVineFall (#6827) 2026-06-30 04:10:56 +00:00
Reppan 55b804a673 Add Easy Butterfly Fairy Cvar (#6833) 2026-06-29 19:13:39 +00:00
djevangelia 984ccf80e4 Vanilla bugfix, Goron Link first talk softlock (#6834) 2026-06-29 16:17:49 +00:00
Amber Burton aedddc21e9 Sync's Ganons Trials and Fixes Softlock (#6828)
Previous co op softlock fix introduced a possible trial softlock making barrier never dissappear. This not only ensures that softlock cant happen, it syncs the trial flags in real time and allows all cutscenes to finish playing to properly remove the barrier even if the beams are physically visible in your game.
2026-06-29 04:48:27 +00:00
Reppan a629af2e9f [Enhancement] Improved Roll (#6604) 2026-06-28 13:41:59 +00:00
jdperos 003a009ebc Better Octave Drop logic (#6796) 2026-06-27 15:28:40 +00:00
Tim Schneeberger 633e920969 Cleanup unused includes & remove remaining LUS umbrella includes (#6813) 2026-06-27 00:20:03 +00:00
djevangelia 4b6678b82c Vanilla bugfix, Deku Shield burning drop crash (#6810) 2026-06-24 21:57:28 +00:00
Philip Dubé f95c23ef69 No FMA (#6811) 2026-06-24 19:28:09 +00:00
djevangelia 53b9db5b92 Vanilla bugfix, Hookshot with parent + Hookshot nospawn (#6805) 2026-06-24 18:32:03 +00:00
David Racine 8cf4ff5f14 fix: free look continues from forced view when leaving a fixed camera (#4953) (#6808)
When a scene-forced/fixed camera (e.g. the Spirit Temple boulder-room
alcoves, CAM_SET_PREREND_FIXED / Camera_Fixed3) drives the view, the Free
Look angles in play->camX/camY are left untouched while manualCamera stays
set. On exit, Camera_Free resumed from those stale pre-alcove angles, so
the camera snapped/reversed instead of following the player out.

This does NOT change the forced-camera behavior: the alcove still clamps
exactly as the game intends. It only fixes the hand-off back to Free Look:
when Camera_Free resumes after another camera function drove the previous
frame (detected via a frame-number gap), the free-look yaw/pitch are
re-seeded from the camera's current orientation so the view continues from
where it was left.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 16:24:19 +00:00
OtherBlue cb215ede87 Custom Bottle Contents (#6780) 2026-06-22 05:09:41 +00:00
David Racine 497d34570b fix: free look releases the door peek camera (#6756)
* fix(camera): let free look release the door peek camera

After walking through a door, the door camera (CAM_SET_DOORC) held the view and
only handed control back once the player moved or pressed a button, so the right
stick did nothing until then. With free look the camera appeared frozen after
every door.

Treat right-stick movement as a release condition too, using the same stick
threshold as free-look activation.

* refactor(camera): move door-cam free-look release to a VB_SHOULD hook

Reimplements the door peek camera free-look release as a vanilla-behavior
hook instead of inline logic in z_camera.c, keeping the decomp file close
to upstream.

- Add VB_RELEASE_DOORC_CAMERA wrapping the existing Camera_Special9 release
  condition; the vanilla button/xzSpeed expression is left untouched.
- Move the right-stick / free-look threshold logic into a new enhancement,
  FreeLookDoorCamRelease.cpp, registered with COND_VB_SHOULD and gated on
  FreeLook.Enabled so the hook only exists while Free Look is on.

Behavior is unchanged from the previous fix; this only relocates the logic.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-19 13:58:12 +00:00
David Racine 100bae3b9f feat(camera): option for free look to follow the default camera distance (#6757)
Free Look pinned the camera to the fixed "Camera Distance" setting, so it never
pulled in or out the way the vanilla camera does for the current situation.

Add an opt-in "Follow Default Camera Distance" setting (FreeLook.UseGameDistance)
that uses the game's per-mode default distance instead. The fixed distance slider
is hidden while it is enabled.

Closes #4050

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:34:29 +00:00
nickel246 0744396e0e Redo Fishing Pole Gi Model (#6759)
Replaces the gi model for the randomizer Fishing Pole to be more consistent with the rest of the game's gi models
2026-06-18 13:32:50 +00:00
Pepper0ni 6e6fee8871 Fix Nabooru despawning from spirit when collecting an unrelated check (#6751)
Fix nabooru cutscene skip setting the kidnapped flag too often
2026-06-18 13:32:04 +00:00
David Racine ebdd2c34c7 fix(audio): replace stray custom-sequence printf with a debug log (#6752)
The custom-sequence registration loop printed each assigned seqNum to
stdout via a bare printf, spamming the console with context-free numbers
on every launch. Convert it to LUSLOG_DEBUG and include the sequence name
so it is hidden by default yet useful for diagnosing music-pack loading.
2026-06-18 13:29:45 +00:00