summaryrefslogtreecommitdiff
path: root/soh/src/code
AgeCommit message (Collapse)Author
2026-03-21Enemy rando cleanup 2 (#6365)Pepe20129
Move stuff to main file, delete header & refactor lists
2026-03-21Fix ADPCM sample buffer overread in audio synthesis (#6364)Paul Schwabauer
The sampleDataStartPad and aligned variables existed solely to satisfy the N64 RSP DMA requirement that source addresses be 16-byte aligned. On PC, aLoadBuffer is a plain memcpy with no such constraint. The alignment dance caused aLoadBuffer to read up to 15 bytes before sampleData and up to 8+ bytes past the end of the sample buffer. On platforms with strict allocator guard pages (e.g. OpenBSD), this triggers a SIGSEGV. A second issue remains after removing the alignment dance: nFramesToDecode is derived from sample counts (loopEnd), but size is not always a multiple of frameSize. loopEnd and size are derived independently during encoding and can disagree on the final partial frame, leaving nFramesToDecode * frameSize exceeding the remaining bytes in the buffer. Remove sampleDataStartPad and aligned entirely. Clamp the load to min(nFramesToDecode * frameSize, audioFontSample->size - sampleDataOffset). The ADPCM decoder operates on DMEM, so a partial last frame in DMEM produces at most a negligible artifact at sound termination.
2026-03-20Custom Item Icons in Textboxes (#6343)Christopher Leggett
2026-03-20Fix Entrance Rando Grotto Voidout Crash when voiding back to an area with a ↵Christopher Leggett
background image (#6379) Hookify bgimage load cam check and add it to entrance rando
2026-03-19Fix rendering double digit key count (#6371)Philip Dubé
2026-03-17Fix RBA gauntlet colors to match console (#6359)Philip Dubé
Also fix tracker to show golden gauntlets while wearing glitched gauntlets, & don't crash save editor
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-05Hookify Hookshot Reticle Changes (#6279)A Green Spoon
2026-03-02Add disable jabu wobble accessibility option (#6280)red
2026-03-01Roc's Feather: avoid OOB access to gItemAgeReqs (#6297)Philip Dubé
This fix is a bit blunt, but in the absence of a better idea it exists
2026-02-28Fix song of storms cutscene (#6310)Philip Dubé
2026-02-28Remove unnecessary includes of OTRGlobals.h in actor overlays (#6306)Philip Dubé
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-02-10fix crash when generating decoupled entrances with boss shuffle (#6189)Philip Dubé
regression from ganon's tower shuffle
2026-01-28Basic Surround Sound support. (#6204)tortugaveloz
2026-01-26Recalculate Available Checks from Current Region (#6165)xxAtrain223
2026-01-20Misc fixes mostly related to custom text refactor (#6174)Philip Dubé
fix goron messages in rando also always include "IS_RANDO" in rando shipinit dependencies don't use rando RNG, trying std::array avoid sprintf, std::array not necessary fix random rupee name crash roll random traps: don't reuse rando rng fix better bombchu typo
2026-01-18Ported BtnSelector from 2ship (#6158)ItsHeckinPat
Allows the rebinding for Resetting the game, Debug Map Select, and Debug No-Clip. Also allows for Speed Modifiers to use the new button combos, instead of only the modifier buttons.
2026-01-17Shuffle Masks (#5536)Philip Dubé
Future improvements can build on this, giving masks abilities, or adding checks for trading mask to someone
2026-01-16Add option to disable Link spinning with the Goron Pot (#6138)Jordan Longstaff
Make Link focus on Goron Pot instead
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-10Fix undefined behavior (#6089)Paul Schwabauer
Fix TimeSplit crash on empty name Initialize OptionValue::mVal to fix undefined behavior Fix undefined behavior in GraveHoleJumps surface type copy. The memcpy was reading 33 SurfaceTypes regardless of the actual count, causing a buffer overread since NTSC 1.0 only has 31 surface types and later versions have 32. Now uses the actual surfaceTypesCount from the collision header. Fix undefined behavior in framebuffer OTR signature check. Use calloc instead of malloc for framebuffer allocation to zero-initialize the memory. This fixes Valgrind warnings about reading uninitialized values when ResourceMgr_OTRSigCheck reads from framebuffer pointers to check for the "__OTR__" signature. Fix undefined behavior in fontLoadStatus initialization. Use calloc instead of malloc when allocating fontLoadStatus array to ensure zero-initialization. This fixes Valgrind warnings about conditional jumps depending on uninitialized values in AudioLoad_SetFontLoadStatus.
2026-01-10Bring back Big Poe Count option, lost in menu refactor (#6126)Philip Dubé
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-10Fix memory leaks in MessageViewer and audio_load (#6124)Paul Schwabauer
Add destructor to MessageViewer to free allocated buffers Free individual strings from ResourceMgr_ListFiles before freeing the array in audio_load.c
2026-01-08Decomp import: rename timer-related functions and variables (#5896)Jordan Longstaff
2026-01-08Add toggle for Link's sword trail (#6112)Garrett Cox
2026-01-05Enable Battle Music for Leever option + Modularize EnemyBGMDisable (#5985)nclok1405
Add "Enable Enemy Proximity Music for Leever" option + Modularize EnemyBGMDisable
2026-01-03Disable Fixed Camera Enhancement (#6083)Jordyn Hardyman
Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
2026-01-03Allow Enemy Randomizer in Debug Save (#5841)nclok1405
2026-01-03modding: alt equipment (#6062)Reppan
Implements object_custom_equip objects that adds more support to have items modified by modders without having to export with hands or do xml edits to load hands. This is autonomous if exported as a object_custom_equip Also adds non existing DisplayList for items that originally did not have a DisplayList. Longshot and Big Goron Sword Sheath is 2 examples
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-30Fix custom tunics not updating on scene change (#6026)aMannus
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-12-03Disable Screen Flash for Finishing Blow option (#5988)nclok1405
2025-11-30Additional Anchor functionality: (#5999)Garrett Cox
- Returned support for custom tunic colors - Ocarina playback now audible - Fixed movement translation issue when climbing or going through crawlspaces - Fixed issue preventing some items from being visible in Dummy hands (namely ocarina) - Fixed stick length not correctly syncing
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-14Merge pull request #5961 from Malkierian/develop-copperMalkierian
Copper -> Develop 11/14
2025-11-13"Assignable Tunic and Boots" setting now allows shields also (#5953)Jordan Longstaff
2025-11-08Various hooks to support anchor (#5929)Garrett Cox
2025-10-09Program Execution Argument Extraction (#5807)Malkierian
* Add function to be able to feed specific path into to process programmatically, and setup drag and drop functionality. * Encapsulate dropped file functionality from Switch and Wii U. * Fix dropped file detection, and fix ShowYesNowBox return checking.
2025-10-09update lus includes for new LUS file structure (#5820)briaguya
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes. * New LUS ref. * Remove default on for cursor always visible. Add option to camera controls next to enable mouse input for autocapture. Set autocapture on startup. * next LUS * clang again * Add "EnableMouse" CVar check to startup SetAutoCaptureMouse. * Back to LUS main. * lus version with fixes we need * very wip * get it building * soh otr * bump lus before fixing soh side stuff * build * still builds * mac error * bump otrexporter * bump to lus main * upstream otrexporter --------- Co-authored-by: Malkierian <malkierian@gmail.com> Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-10-04sequence notifs (updated #5265) (#5824)briaguya
* Adds ability for Notifiations to not make a noise This is probably the only feature that will use it, the noise makes sense for most things we want to use notifications for, but it playing on every scene transition was a bit distracting. * Adds a hook for OnSeqPlayerInit * Uses new hook and displays notification instead of overlay text * Changes names to prevent collisions Will be registering other types of hooks that will need different ShipInitFuncs in this same file later. * Change Icon * Change CVarName and remove now-unused duration slider * Update ConfigMigrator for CVar changes. * clang-format * fix * bring back duration control * config v4 * fix v4 migration --------- Co-authored-by: Christopher Leggett <chris@leggett.dev> Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-09-30[ADD] - 3D Scenes for pre-render areas (#5804)PurpleHato
* Hard removal 2D ones for now * override some scene values for prerender tests (#46) * Adult Link Cloudy * Fix: Child Link Night ToT Exterior * Fix for real now * Tweak: Skybox castle courtyard * WIP - adjusting for patterns * Hooked all code, needs testing * Hookified * Clean up * Update Fog Control * clang * Fix skybox override to only affect 3D pre-rendered scenes Prevent the 3D scene renderer from overriding skyboxes on all scenes Previously, the function was applying skybox changes to every scene, overriding the intended skyboxes throughout the game (Example: Kokiri Forest with a blue sky instead of it's original "greyish" one) Now it only applies custom skybox settings to scenes in the skyboxControlList, preserving original skyboxes for other scenes * Remove commentary and forgot to add Zelda's courtyard skybox * Move code to shipInit. * Early return for VB_SHOULD. * clang * Fix missing ! * Feedback fixes. * clang * Fix CVAR * Modify Skybox for scenes with multiple viewpoints. * setting position change to blend in the "modder stuff can do" * Adressed review * tooltip space missing, oops * InitFunc --------- Co-authored-by: Archez <Archez@users.noreply.github.com> Co-authored-by: Caladius <clatini88@gmail.com>
2025-09-30Allow non-ASCII characters on Windows (#5741)Eblo
2025-09-16entrance shuffle: sign hints (#5335)Philip Dubé
* entrance shuffle: sign hints * update entrance tracker with hint * show sign hints when any entrances shuffled * only hint when entrance shuffled * avoid crash when loading rando file * fix kf exit * correct hint from sign outside kokiri forest * 3 signs on DMT * improve naming
2025-08-13Boss Rush cleanup (#5652)Pepe20129
* Reduce stuff in the `.h`s & use `COND_HOOK` + variants * Move some boss rush stuff from `z_file_choose.c` * clang * Update BossRush.cpp
2025-08-12Turn song text into a notification (#5712)Pepe20129