summaryrefslogtreecommitdiff
path: root/soh/include
AgeCommit message (Collapse)Author
11 daysFix flare dancer crash (#7122)Pepe20129
Expand the main `GfxPool` buffers to 1MiB
11 daysReopen the OPUS decoder when a note moves to another sample (#7137)David Racine
The decoder cached on a note was keyed on nothing, so a note reused for a different streamed sample carried on decoding the previous track. Audible as the wrong custom music: the sequence and soundfont the audio editor reports are correct, only the samples reaching the mixer are not. Reproduced on the game-start cutscene chain with a streamed music pack in 4 of 6 runs; 0 of 6 after. Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-08-23Clear fire timer when blue warp skip bypasses chamber of sage (#7112)Philip Dubé
Avoids timer from Volvagia carrying over to DMC
2026-08-18Hookify fish, refactor fishsanity (#7091)Philip Dubé
2026-08-14Decomp, three audio functions (#7069)djevangelia
2026-08-09fix(audio): bound audio-heap cache tables (SIGSEGV with large custom music ↵Pedro Nascimento
packs) (#6932) Root cause of three identical field crashes (audio thread, opcode fetch through a pointer with its low 32 bits overwritten, seconds after scene transitions): AudioHeap_AllocPermanent writes permanentCache[index] with index = permanentPool.count and no bound against the 32-entry array. In SoH every soundfont sync-load is forced permanent, and custom sequences whose SEQ.xml says CachePolicy="Temporary" ALSO allocate permanently (the factory stores the LUS enum where CACHE_TEMPORARY == 0, while AudioLoad_SyncLoad's switch reads 0 with the ROM convention 'permanent'). A pack with ~60 streamed customs plus vanilla fonts pushes count past 32 within a session, after which each allocation sprays a {ptr, size, tableType/id} triplet at 24-byte stride through gAudioContext - entry[135]'s ptr field lands exactly on seqPlayers[0].scriptState.pc and entry[156] on seqPlayers[1]'s (both verified against the crash-dump registers). - permanentCache raised 32 -> 512 (12 KB) and AllocPermanent refuses allocations past the array instead of corrupting memory. - Same unbounded-index disease fixed in the three sibling writers: AllocCached's persistent path (16-entry array; CACHE_EITHER degrades to temporary, hard persistent requests fail cleanly), AllocPersistentSampleCacheEntry, AllocTemporarySampleCacheEntry. - seqLoadStatus malloc sized for the full id space (sequenceMapSize + 0xF) matching sequenceMap; custom ids above sequenceMapSize previously overflowed the allocation by up to 15 bytes. Upstream SoH bugs, not branch-introduced - this branch's many-track packs merely made the overflow reachable in normal play. Standalone upstreamable fix.
2026-08-09Save editor v2 (#6474)PurpleHato
2026-08-08Hookify Skeleton Unregisters (#6988)Jameriquiah
Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-08-08Decomp, some camera names (#7043)djevangelia
2026-08-08Savestates, add `sEffectContext` (#7042)djevangelia
2026-08-08Polish, Twinrova intro cutscene skip with Kotake/Koume appear on climb (#7001)djevangelia
2026-08-06Shuffle Silver (#5659)Philip Dubé
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com> Co-authored-by: leggettc18 <chris@leggett.dev>
2026-07-31Decomp, naming (OnePointCS, itemAction, blure, wall/floor types) (#7007)djevangelia
2026-07-25BetterSaveMenu: Less redundant override and run exit and load hooks (#6984)Christopher Leggett
Running the OnExitGame and OnLoadGame Hooks fixes some interactions this menu had on the Check Tracker and the Available Checks system. OnLoadGame overwrote the menu's changes to the next entrance override which were needed for Return to Spawn to work correctly, so I needed to add a new gSaveContext flag for it so that the menu code can set the spawn entrance after all the other entrance overriding code has executed. This also allows any future changes to `Entrance_SetSavewarpEntrance` to take effect when using this menu.
2026-07-24Constant-size texture scroll display lists via G_SETTILESIZE_LERP (#6902)Philip Dubé
Rewrite Gfx_TexScrollEx / Gfx_TwoTexScrollEx / Gfx_TwoTexScrollEnvColorEx to emit one command per tile instead of one baked tile size per interpolated frame, so texture DL memory no longer scales with InterpolationFPS
2026-07-22Fix problems with Zelda's Letter & Weird Egg hatching (#6962)Philip Dubé
2026-07-19Polishing, climb everything door opening + sloped ledge climb up (#6936)djevangelia
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-19Decomp, update AudioOcarina (code_800EC960.c) (#6941)djevangelia
2026-07-18Vanilla bugfix, ladder cutscene softlock (#6804)djevangelia
2026-07-12Add save state wiring for Barinade, Bongo Bongo, & Morpha (#6914)Philip Dubé
Rename various variables across codebase to match decomp, many had been renamed when exposed for previous save state mechanism
2026-07-12Decomp pull, some `z_player` and global changes (#6908)djevangelia
2026-07-09Decomp, update `z_en_holl.c` (#6890)djevangelia
2026-07-08Bugfix, child Hookshot first person in Hylia lab (#6847)djevangelia
2026-07-07pull decomp changes: actor functions, z_en_horse.c (#6877)Philip Dubé
2026-07-04Decouple GBK from LACS (#5838)Philip Dubé
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-06-27Cleanup unused includes & remove remaining LUS umbrella includes (#6813)Tim Schneeberger
2026-06-23Reduce LUS header bloat & improve build speed (#6802)Tim Schneeberger
* Avoid `randomizer_check_tracker.h` in widely used `randomizer.h` due to transitive `libultraship.h`/`UIWidgets.hpp` inclusion * Avoid `libultraship.h` inclusion in heavily used `GameInteractor.h` header * Remove unused libultraship includes * Break huge unneeded transitive include chain (via UIWidgets.hpp) This avoids that changing just UIWidgets.hpp, for example, would retrigger a rebuild of like half the project. There were a huge transitive include chains, mostly via MenuTypes.h and UIWidgets.hpp. Because of that, I'm splitting UIWidgets into a second header file UIWidgetOptions.hpp, which can be consumed by MenuTypes.h. MenuTypes.h is split into BackendTypes.h to avoid pulling in Fast3D/Windowing/GUI stuff into unrelated code. Example chain, one of many: libultraship.h <- UIWidgets.hpp <- MenuTypes.hpp <- randomizer/option.h <- randomizer/item_location.h <- trial.h <- static_data.h <- SeedContext <- (basically all randomizer related sources, lots of other sources in Enhancement, more...) * Avoid libultraship.h in Notification.h and ObjectExtension.h; these headers are also heavily used * Add missing include * Remove unused libultraship includes * Include only ship/window/GuiWindow.h in GUI-related headers instead of libultraship.h * Cleanup ConfigUpdater.h and playthrough.cpp * Remove libultraship.h from Anchor.h and fix transitive dependencies in OTRGlobals.cpp * Remove unused libultraship.h includes in Anchor code
2026-06-22Fix numerous Small Key Tracking bugs, excess items now more reliably turn ↵Pepper0ni
into Blupees (#6750)
2026-06-14rando: option to allow swordless epona items (#6727)Philip Dubé
2026-06-13Ivan: New Farore’s Wind (#6735)Shishu the Dragon
2026-06-04Fix anchor get item crash (#6678)A Green Spoon
* remove Roc's GID and prevent OOB from prior versions * change OOB gi to stone of agony
2026-04-19func_$hex renaming from upstream (#6498)Philip Dubé
2026-03-20Custom Item Icons in Textboxes (#6343)Christopher Leggett
2026-03-19Refactor Maps & Compasses coloring hook, remove PreFunc (#6351)Philip Dubé
PreFunc for map/compass coloring & jabber nut coloring doesn't work in file select menu, could make them always enabled in file select, but this seems simpler Also fix map colors & ice cavern compass color
2026-03-17Enemy rando cleanup (#6327)Pepe20129
Change Actor_SpawnEntry to use VB Move adult zelda collapse stalfos to a explicit hook Move dark link to a explicit hook Some more canRandomize that were not needed Move bg_haka & bg_haka_tubo to explicit hooks Move en_vali to an explicit hook Move bg_mori_bigst to an explicit hook Fix door opening before the enemies are killed Remove `canRandomize` parameter Move bg_haka_huta to explicit hooks
2026-03-02move speed modifier settings to cheats (#6277)Philip Dubé
Combine into one speed modifier. Refactor config migrations. Add v6
2026-02-26Port Scrolling Texture Interpolation over from 2Ship (#6224)Christopher Leggett
2026-02-17hookify additional reticles (#6278)A Green Spoon
2026-02-14Enable missing music entries in audio editor (#5685)Jordan Longstaff
* Enable missing music entries in audio editor * Fix mislabeled tracks "Ocarina of Time" and "Seal of Six Sages" (mirrored in decomp)
2026-01-28Shuffle Speak (#5538)Philip Dubé
Shuffles 6 languages (Deku, Gerudo, Goron, Hylian, Kokiri, Zora) to learn before being able to use Speak command with actors of that type. Other actors can still always initiate speech Owl speaks anything (relevant for owl flights)
2026-01-15Upgrades Custom Messages to Hooks and ShipInit (#5101)Christopher Leggett
Defines the hook for OnTextLoad. Intercepts message loading with hooks. Adds file to handle the CustomMessage creation for items. Handles Ice Traps, Triforce Pieces, and Custom Items. Handle maps, compasses, and keys Converts gossip stone hints to hook. Handle one-off merchant messages. Convert scrubs and shop text and remove now-unused code Convert Sheik and Ganondorf hint text. Convert skulltula people messages. Convert more static hints Specifically Dampe, Greg, Warp Songs, Frogs, Loach, Fishing Pole, and Saria Convert Biggoron Hint. Convert Big Poes hint. Convert Anju hint dialogue. Convert Malon hint. Convert Horseback Archery hints. Convert Mask Shop SIgn hint Convert Lake Hylia Switch related text. Convert Shooting Gallery bow reminder message Convert random rupee names. Convert Rando-Relevant Navi Enhancement. Convert Random Goron messages Convert Injecting Skull token counts. Add in a way to AutoFormat with an item icon.. Fix some errors with skull tokens and apply icon Convert heart container item counts. Convert Inject Item Count for Heart Pieces. Port Better Bombchu Shopping. Convert Market Sneak Port Quit Fishing At Door and clean up unused stuff. Reintroduce missing Mysterious warp song hint Make ShipInitFuncs static Adds and uses per-item articles for get item messages Fix Entrance Hints and port toggle from dev-copper
2026-01-15fix build and run on OpenBSD (#6050)Fabien Romano
2026-01-10Add Roc's Feather (custom item) to Rando Item Pool (#6035)aMannus
This adds Roc's as a fully implemented item into the randomizer pool. When both Roc's and Nayru's is found, you can swap between them on the pause menu Many people have contributed to this over time, so huge shoutout to: - kentonm, this item is directly inspired by their Roc's Feather from their romhack Indigo. Also provided me with their GI model, icon texture and animation to use. - PurpleHato, for providing the images for the item name shown on the kaleidoscope. - Dana The Elf, providing another custom animation for the item. - Reppan, for helping to tweak the animation and exporting the GI model for me.
2026-01-08Decomp import: rename timer-related functions and variables (#5896)Jordan Longstaff
2026-01-02Added "firstInput" stat and repurposed the "fileCreatedAt" stat. (#6070)Glought
- The "firstInput" stat is set on first input in game. Used for RTA Timing. - The "fileCreatedAt" stat is now set when then save file is created (After the player is done entering the file name). Useful for seeding non rando randomizers like Mirrorworld, Enemy Randomizer, extraTraps, etc.
2025-12-04Add in Progressive Bombchu Bags (#5836)Christopher Leggett
* Adds new Progressive Bombchu Bags option Also changes existing code to account for Bombchu Bags becoming a drop down with 3 values instead of a checkbox * Handle the new lower capacities for ammo refills * Handle what happens when receiving a bombchu bag * Remove the trick name of Progressive Bombchu Bag Since, you know, that's an actual thing now. * Implements Bombchu Bag handling next to Progressive Bombchu Handling * clang-formatting * Add extra bag for plentiful items * Address review comment * Move bombchu upgrade level to gSaveContext and add save/load * Use logic's saveContext for correct logic calculations * Remove RG_PROGRESSIVE_BOMBCHU * Fix Bombchu Refill obtainability * Don't add normal chus to the pool if chu bags are on. * cmake-format * Properly reset bombchuUpgradeLevel on savefile init * Fix error with va_arg on linux * Fixes small error in the Bombchu Bag description * Fix bug with bombchu obtainability * clang-format * Fix infinite bombchu text * fix clang-format
2025-11-24Modularize Hurt Container mode hook (#5874)Jordan Longstaff
* Modularize Hurt Container mode hook * Hook condition was wrong - fixed it * Change type of hurtEnabled for clarity * Change type back to bool * Add VB hook * Don't duplicate health capacity modifier calculation * Add constants, replace magic numbers * Clang format * Publicize more health unit macros * Make mod file self-contained
2025-11-13"Assignable Tunic and Boots" setting now allows shields also (#5953)Jordan Longstaff
2025-11-03Implement logger changes (#5914)Malkierian
* Implement logger changes, and make default log level dynamic based on debug/release. * Bump LUS. * typo Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com> --------- Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
2025-10-28Modularize Pause Warp hook (#5869)Jordan Longstaff
* Modularize Pause Warp hook * Make RegisterPauseMenuHooks static * Merge pausewarp.c into hook module * Use brackets with if statements * Fix timer bug with spoiling items