summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-08-29Cleanup mExcludeLocationsOptionsArea (#7131)Philip Dubé
2026-08-29Fix loop condition in WriteExcludedLocations function (#7127)HighTierHumann
2026-08-29Bump libultraship for the WASAPI shutdown hang (#7128)David Racine
Picks up Kenix3/libultraship#1212, where WasapiAudioPlayer's destructor never closed the stream or released the client, and #1239.
2026-08-27Bugfix for AlwaysOnFixes.cpp as well as a fallback to prevent crashes when ↵HighTierHumann
attempting to display an textId 0 (#7123) Add guard to check if camera mode is CAMERA_MODE_FIRST_PERSON before applying fixes Also adds missing PLAYER_IA modes for magic arrows, as well as applying camera fix for Hookshot outside of just lakeside lab. Move gameinteractor for change aiming camera inside bow/sling/hook aiming block
2026-08-26Fixed carpenter guard hylian jabbernut requirement (#7121)TOFenrir
Made the boss introduction scene skip only work on the carpenter guards if the player has hylian nut or has not shuffled the ability to speak.
2026-08-25Prevent double give by treasure chest game shopkeeper (#7118)Chris
2026-08-25Gamepad Mapper (#7116)Malkierian
Also one more Torch VS fix.
2026-08-25fix logic bugs with Bombchus (#7117)Pepper0ni
2026-08-25Side room pot 5 and 6 logic fix (#7107)Matthew-Whisenant
2026-08-25clean up includes (#7114)Philip Dubé
2026-08-23Remove unused field `progressive` from Item (#7113)Philip Dubé
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-23MQ DC: standing in corner slingshot can hit through eye through boulder (#7109)Philip Dubé
2026-08-23Restore the realId assignment in AudioLoad_AsyncLoadInner (#7105)David Racine
The function declares realId and then indexes with it thirteen times - the load-status tables, AudioLoad_SearchCaches, the table entry it reads size and address from, every cache allocation, and the status write at the end - but nothing assigns it. It has read an uninitialised local since "Custom Sequences" (#2066) dropped the assignment in 2022. Restoring the line puts back the value the rest of the function expects. For SEQUENCE_TABLE and FONT_TABLE, AudioLoad_GetRealTableIndex returns the id unchanged, so this is only a correctness fix in practice: the paths that reach this function today go through the sequence script's async load command, which is rare enough that the garbage index has not been tied to any report.
2026-08-22Fix item tracker fishing pole & roc's feather (#7103)Philip Dubé
ITEM_ cases should not be mixed into RG_ cases
2026-08-22Enemy rando, make Keese not fall if not dead + fall downscale (#7101)djevangelia
2026-08-22Disable2DBackgrounds Fixes (#7102)Jameriquiah
2026-08-22Drop the seqLoadStatus bounds checks made redundant by #6932 (#7100)David Racine
#6917 guarded the three seqLoadStatus accessors against sequenceMapSize because the array was allocated at exactly that size, so a custom sequence id past it read and wrote off the end. #6932 sized the array to sequenceMapSize + 0xF to match sequenceMap, which covers the whole id space rather than rejecting the ids outside it, and also protects the writers those guards never saw: AudioHeap_AllocCached and AudioHeap_PopCache index seqLoadStatus directly. The guards are now not just redundant but bounded wrong - they treat the ids in [sequenceMapSize, sequenceMapSize + 0xF) as absent from a table that now has room for them. Nothing breaks today because every entry starts at 5, so AudioLoad_IsSeqLoadComplete answers true regardless and AudioLoad_SetSeqLoadStatus already declines to overwrite a 5 - but once the heap cache path moves such an entry off 5, the guard blocks an update that should happen. Reverting them restores the three functions to their decompiled form. The sizing from #6932 and the id check in AudioLoad_SyncInitSeqPlayerInternal remain the actual protection.
2026-08-20Resolve the Fast3dGui cast once per scope instead of per call (#7095)David Racine
Reaching the Fast3d GUI is spelled out in full at every call site: std::dynamic_pointer_cast<Fast::Fast3dGui>( Ship::Context::GetRawInstance()->GetWindow()->GetGui())->GetTextureByName(name) Each one locks the Context weak_ptr, copies a shared_ptr for the window and one for the GUI, then runs a dynamic_cast, only to drop all three again. InputViewer::DrawElement does that 43 times per frame, and the item tracker and save editor repeat it once per icon drawn. Binding it to a local once per scope leaves the behaviour identical and reads better. The local goes in the innermost block that covers the call sites, so it stays behind the guards that were already there: DrawElement still resolves nothing when the input viewer is off. RenderButton keeps its inline casts. Its two call sites are in exclusive branches, so a local would add a cast on the path that takes neither.
2026-08-20Try fix mac build flakiness in CI with mdutil -a -i off (#7094)Philip Dubé
2026-08-18Hookify fish, refactor fishsanity (#7091)Philip Dubé
2026-08-18Set ToD in non-rando LACS & MSCS skips (#7092)Philip Dubé
2026-08-17Hookify masks / timeless equipment (#7088)Philip Dubé
2026-08-17Adjust fishing prize threshold when minigame weight adjusted (#7089)Philip Dubé
cleanup IS_RANDO usage in randomizer hook_handlers.cpp
2026-08-17Fix crash when loading unversioned oot_save.sav (#7090)Philip Dubé
2026-08-17Add a Skip Warp Cutscenes enhancement (#7059)David Racine
Warp song cutscenes were skipped for randomizer players whether they wanted it or not: Demo_Kankyo cut the departure animation short from a hardcoded IS_RANDO branch, and entrance rando cleared respawnFlag so the arrival never played. There was no way to get the vanilla warp back, and no way for a vanilla playthrough to skip it. Drop both and put the behavior behind a Skip Warp Cutscenes toggle, defaulting on in randomizer so existing rando warps are unchanged. It kills the departure actor as it spawns and puts the arrival spawn mode back to IDLE, which covers both halves of the warp. Entrance rando's destination override moves off Demo_Kankyo's update onto a new OnWarpSongLeave hook fired from Environment_WarpSongLeave. That is where every warp path -- the cutscene, the skip toggle, and the spawn failure fallback -- commits its destination, so the override no longer depends on the departure actor being alive to see it, and a warp song shuffled onto a grotto return keeps its grotto respawn. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17Enemy rando, let enemies air walk over voidout floor in clear rooms (#7005)djevangelia
Behind a setting Add timed rooms + Fire Temple modifications
2026-08-16Draw keys on keyring with code, consolidate dungeon key counting code (#7087)Philip Dubé
Remove CustomKeyModels option, always enabled
2026-08-16use ccache for windows too (#7086)Philip Dubé
MSVC support added in 4.6
2026-08-16Fix entrance overrides being different between loading spoiler vs starting ↵Philip Dubé
seed (#7085)
2026-08-16Shuffle Silver: fix gtg room setting room cleared instead of flag (#7084)Philip Dubé
2026-08-16Intro Skip: adjust Link's position & camera to match values after watching ↵Philip Dubé
intro (#7077)
2026-08-16generate-builds.yml: consistently use max-size 2G, prefer j4 over j3, ↵Philip Dubé
evict-old-files: job (#7083)
2026-08-16Silence warnings on Windows for dependencies, bump torch (#7082)Philip Dubé
2026-08-16More pragma once (#7081)Philip Dubé
libultraship uses pragma once, we were already using it in many headers
2026-08-16Enemy rando, GTG hammer room air spawn fix (#7079)djevangelia
2026-08-15Enemy rando, fix healthy big Guays not dying (#7065)djevangelia
2026-08-15Enemy rando, exclude Withered Deku Babas from clear rooms (#7078)djevangelia
2026-08-14bombchu bowling setting: first item (#7070)Philip Dubé
desirable for speedrun settings that want less variance. also use for moving rando logic into hooks
2026-08-14Format JSON, include CI check (#7071)Philip Dubé
2026-08-14Add advanced option for teleport trap (#6986)Garrett Cox
2026-08-14Decomp, three audio functions (#7069)djevangelia
2026-08-14Torch CMake and Extraction Flow cleanup (#7063)Malkierian
* Fix yaml-cpp inclusion for VS building. * Fix double-finds for rom files in the binary directory. * Fix archive generation targets. * Port over Proxy's change on 2ship to old ROM deletion to search all applicable subdirectories.
2026-08-14Update the "Hell Mode" preset (#7066)Pepe20129
2026-08-13Keep an unlisted combobox value from killing the menu (#7062)David Racine
A stored value with no entry in the combo map threw out of map::at while drawing, which took the whole menu down as soon as a search matched the widget. Fall back to the default and log the offender. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-13Pick up newly added source files without a manual re-configure (#7060)David Racine
The source globs did not use CONFIGURE_DEPENDS, so adding a file under soh/ or src/ left it out of the build until cmake was re-run by hand, silently and with no warning. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-13Keep the save editor's sword state alive long enough to draw (#7061)David Racine
fmt::format returns a std::string by value, so taking c_str() of the temporary left BeginCombo reading freed memory whenever the melee weapon state fell outside the known cases. Hold the text in a std::string instead. Use spdlog::fmt_lib in the save editor Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12Fix graveyard sign checks at night (#7057)A Green Spoon
2026-08-12Adds native OOTRS archive support to remove need for custom packing. (#7056)Malkierian
2026-08-10Enemy rando, remove switch flag setting from Wolfos (#7055)djevangelia