summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
8 daysRevise website and Discord information in READMECaladius-patch-1Caladius
Updated website link and combined website and Discord sections.
9 daysFix save editor v2 (#7170)Philip Dubé
C-button loop should not read D-pad, D-pad keys off index like SyncButtonItemsForSlot, B-button skips, ITEM_NONE while swordless would every empty slot green
9 daysDon't apply inverted X axis aiming to first person movement (#7163)Philip Dubé
9 daysFix megadives with jump clamping (#7164)Pepper0ni
9 daysAdd Skip Warp Cutscene option to All/None cutscene skip buttons (#7160)Philip Dubé
9 daysReduce big octo cutscene skip (#7158)Philip Dubé
Pointless to give control while player waits for big octo to descend (& still play cutscene), just opens up complications & speedrun discussion raised concern about backflip to get behind Big Octo
9 dayswater temple: quadruple water level change when skipping cutscene (#7162)Philip Dubé
prevents falling into water while it descends, reaching 2f cracked wall without tricks
9 daysJabu fish cutscene skip: immediately transition (#7159)Philip Dubé
This avoids awkward pause, also prevents recapturing fish Also cleanup RSK_JABU_OPEN
9 daysLeave Start Randomizer disabled after generation fails (#7157)Philip Dubé
10 daysrender stick/nut bag for upgrades past first (#7156)Philip Dubé
fix typos in their graphics
11 daysIce Trap Name Setting (#6588)Pepe20129
Co-authored-by: Philip Dubé <159546+serprex@users.noreply.github.com>
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>
12 daysprefer spdlog over luslog in C++ code (#7149)Philip Dubé
luslog more meant for C compatibility
12 daysFix missing entries in RC to randinf and new identity pattern to make ↵Pepper0ni
future misses more obvious (#7141)
12 daysrevise randomizerEnumStrings, include fmt compatibility (#7148)Philip Dubé
prefer switch over map, avoids static initializer & reduces code size by over a megabyte
12 daysFix various trick issues (#7145)Pepper0ni
14 daysLogical bunny hood (#7032)Philip Dubé
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2026-09-01Fix seed generation crash (#7140)Philip Dubé
Also fix excluded locations all colliding with TODO name
2026-08-31Fix compat issues loading pre-9.1 saves on 9.2+ (#7132)Philip Dubé
2026-08-31Lang Improvements (#7130)Pepe20129
Massively optimize Lang::Translate & add Lang::TryTranslate. Move all rando option text to lang json. In the future we should have something like .TranslationTooltip() that takes the translation string to use instead of .Tooltip() as that'd allow us to change language at runtime.
2026-08-31Remove completed mask quest option, add all masks to starting items menu (#7104)Philip Dubé
Fix masks not rendering properly with completed mask quest Remove completed mask quest option, add all masks to starting items menu logic: handle starting with masks being able to skip ahead a bit in trade sequence
2026-08-31Avoid randomizer generation races with file select (#7136)Philip Dubé
Fixes both starting file while generating, & starting generation in file loading transition Remove RandoGenerating cvar
2026-08-31[Enhancement] Hide quests in File Select (#7093)Jordan Longstaff
Migrate File Select CVars Co-authored-by: Unreference <87878910+unreference@users.noreply.github.com>
2026-08-30Bombchu logic fix: don't allow bombchus in single bag without bag, eg arms ↵Philip Dubé
dealer (#7134)
2026-08-30Move Tracker namespace to its own file (#7135)Philip Dubé
Reuse for item tracker BeginFloatingWindows
2026-08-30Honour the loop end when reading streamed music (#7129)David Racine
Streamed samples were read a whole block at a time regardless of where the loop ended, so playback ran past it and only then jumped back. The seam therefore landed at a random offset up to a block late instead of where the sample asked for it, which is why a loop that is clean in an editor pops in game. Fixes #5780. Claude-Session: https://claude.ai/code/session_011Ex3z29fQzPEZgwH4EA641 Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-08-30Fix King Zora talkstate not updating (#7125)djevangelia
2026-08-30Fix crash when dying during remote bombchu (#7108)Philip Dubé
2026-08-30Fix check tracker chest game key logic (#7133)Philip Dubé
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é