Commit Graph

4293 Commits

Author SHA1 Message Date
Philip Dubé 57dc840d61 Audio editor: support setting track to None (#7372) 2026-10-12 23:04:07 +00:00
Philip Dubé a93fec2634 Add setting to limit minimum heat/water timer (#7373)
Useful with rando settings where player never gets more than 3 hearts
2026-10-12 20:47:51 +00:00
Chris 12d8fad5a1 Hide shuffle indicators on excluded checks (#7364) 2026-10-12 02:10:59 +00:00
Philip Dubé 92ff8407f6 Fix AssumeEntrancePool breaking due to renamed region (#7375) 2026-10-11 20:57:21 +00:00
Philip Dubé 87db67588c optimize rando generation (#7369) 2026-10-11 20:07:14 +00:00
Philip Dubé 7be5a4feac Fix missing open chest logic in Jabu MQ (#7367) 2026-10-11 03:10:17 +00:00
Philip Dubé b24f707ecb Fix child link model blipping after ledge climb when interpolating (#7360) 2026-10-10 17:10:35 +00:00
Pepper0ni 2d529b3155 Damage boost trick implementation Part 1 (#7293) 2026-10-09 20:30:08 +00:00
sharpmantis 316c02f70a Interpolate skinned limb vertices (horse body and legs) (#7282)
Matrix interpolation cannot cover SKIN_LIMB_TYPE_ANIMATED limbs: their
vertices are deformed on the CPU and referenced through
gSPSegment(0x08, ...) without any recorded matrix, so recorded matrix
interpolation never moves them.

Record each skinned limb's pose (double-buffered, keyed by the vertex
entry) and blend the previous and current poses for every displayed
frame, right before the graphics commands are run. Ties the blend to a
logical-frame counter so a limb that was skipped for a frame falls back
to its exact pose instead of blending against a stale one.
2026-10-09 16:01:40 +00:00
sharpmantis 2884ad6de6 Interpolate ribbon trail vertices (sword slashes, arrows, ...) (#7335)
Weapon trails (EffectBlure) are CPU built vertex blocks, one segment per
sample of the weapon position; matrix interpolation cannot touch them, so
above 20 fps they pop segment by segment.

A trail is a history: its sample indices shift every logical frame, so only
its newest end has to be blended, sliding from the previous sample towards
the current one. Only frames that appended a sample are recorded, otherwise
a finished trail keeps collapsing its last segment.
2026-10-09 15:45:31 +00:00
Philip Dubé 35297e8635 Fix 3 interpolation issues (#7342)
1. DontInterpolateChild LW scrub spawning & phantom ganon crossing painting
2. Don't interpolate MTXMODE_NEW relative to actor when interpolating, fixes Ganondorf's light ball
2026-10-09 14:52:19 +00:00
David Racine 6e7a9b47f0 Fix undefined left shifts of 1 by 31 (#6640)
Shifting a signed 1 into the sign bit is undefined, and UBSan reports it
as "left shift of 1 by 31 places cannot be represented in type 'int'".

The switch-flag helpers in z_actor.c take the bit position at runtime, so
every flag from 0x00 to 0x3F goes through the same shift. Flag 0x3F lands
on bit 31: the Potion Shop Granny sets and clears it while brewing the Odd
Potion, so this is reached in ordinary play, not just in theory.

The same shift appears as a constant in gBitFlags, in the two player state
flags that occupy bit 31, and in ENHORSE_FLAG_31.

Suffixing the 1 with u moves the shift to unsigned, where the value is
defined. Every flag field involved is already u32, so the results are
unchanged.
2026-10-09 13:49:46 +00:00
theofficialgman 1595a94df3 Add ARM64 Linux CI (#7281) 2026-10-09 13:34:48 +00:00
Jordan Longstaff 098c671394 Rename Business Scrub animations from decomp (#7348) 2026-10-09 13:27:44 +00:00
Philip Dubé ecd889c201 speedrun presets: no BSM, always allow ATE (#7325) 9.3.0 2026-10-06 02:03:14 +00:00
Philip Dubé f3d881144a Fix water entrance graph typo (#7324) 2026-10-06 01:28:33 +00:00
Philip Dubé 17ed8e714a just hash preset file, not settings (#7322)
avoids hash including misc debug mode options even when we've forced it to be disabled
2026-10-06 00:55:09 +00:00
Philip Dubé de955ba63f 9.3.0 Dewey Alpha (#7313) 2026-10-05 23:39:06 +00:00
Philip Dubé 3d8cd5aa88 Remove FQwc preset. Skip learning song
Also render exempt settings on preset selection, with values they'll have in-game
2026-10-05 23:38:48 +00:00
Philip Dubé 0ce4c0fccd Hookify Ganondorf/Ganon skips (#7321)
These were often only applied in rando or boss rush,
vanilla would only skip with entire tower escape skipped
2026-10-05 21:32:01 +00:00
amafresh325 94f950f8d7 German (#7315)
Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-10-05 16:54:09 +00:00
Philip Dubé 7cdf69b20b Use WriteFileSafely more (#7317)
Include config version check on speedrun settings
2026-10-05 14:38:23 +00:00
Philip Dubé 4afcb78331 speedrun mode (#7073)
prevent Esc menu while speedrun file loaded, instead toggles gameplay stats / time splits

render RUN tag on speedrun files

don't persist speedrun preset into player's settings
2026-10-05 05:19:52 +00:00
Philip Dubé b69cb6607e Fix "return to spawn" from boss room inside grotto (#7314) 2026-10-05 01:58:58 +00:00
Chris 5508cf3633 Add migrations for presets and drag-and-drops (#7312) 2026-10-05 01:38:04 +00:00
David Racine 9308ba7940 Carry sound font ids in 16 bits (#7260)
Each streamed track brings its own sound font, so a pack with more than
~217 of them pushes font ids past 255. Stored in 8 bits they wrapped onto
vanilla fonts or onto 0xFF, which reads as "no font": the track played
vanilla instruments or nothing at all.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 23:39:10 +00:00
Philip Dubé 7459f6b905 Start with misc flags set in debug saves (#7311) 2026-10-04 23:19:39 +00:00
Pepper0ni 9512f337c7 set min save editor hearts to 1 because rando (#7307) 2026-10-04 19:44:11 +00:00
Pepper0ni d9ddeeb3e0 Update Hell Mode preset, add Demise Difficulty (#7306) 2026-10-04 19:43:52 +00:00
Philip Dubé 86dea7d1b1 Fallback to English for spoiler entries with TODO_TRANSLATE (#7305)
Key collision was breaking non-English rando

Translate a few items based on official sources / simple names
2026-10-04 17:27:39 +00:00
Chris 316d8e6a1b Excluded Locations Migration (#7302) 2026-10-04 17:27:22 +00:00
Philip Dubé 3ea7aa9b77 Fix boss rush name being garbage with non-PAL encoding (#7304) 2026-10-04 17:27:08 +00:00
Philip Dubé 12e17c68a8 don't set nextEntranceIndex in Play_Init, breaks FWWW (#7300)
instead tracker uses gSaveContext.entranceIndex
2026-10-04 15:39:07 +00:00
Philip Dubé 94be08c27e Extractor: pass Torch ROMs as big endian (#7301)
Needed for hashing. Adjust code to reduce copying
2026-10-04 14:44:49 +00:00
Philip Dubé 31c0d85544 Fix playthrough paring to not rely on checks past wincon (#7275)
Implement DelayItem to bypass SetPlacedItem setting price,
which when restored would leave behind price of RG_NONE
2026-10-03 18:29:17 +00:00
Philip Dubé 9d81cb03cf WriteFilesSafely (#7299)
Log filesystem op failures, don't rename after write failed

refactor SaveContext handling, use std::lock_guard
2026-10-03 18:10:19 +00:00
Philip Dubé 4d7b885dbd Fix item tracker not working during credits (#7298) 2026-10-03 15:34:01 +00:00
Philip Dubé e4f019f561 SwitchAge: prevent Link walking without collision for a bit (#7286) 2026-10-03 14:33:49 +00:00
Chris 45b9321593 [Bugfix] - Vanilla Shopsanity Prices (#7295) 2026-10-03 14:32:11 +00:00
David Racine e07916487d AudioSequenceFactory: fix mono streamed tracks not playing (#7291)
In WriteMonoSingleSeq, layerPlaceholderOff was recorded before WriteNoshort,
causing a stray 0x00 byte to be emitted into the mono channel script. The
0x00 decoded as a delay of 0 ticks, which deferred the subsequent ldlayer
byte by one tick and left channel->instrument unset when the layer first
processed its note, producing no sound.

Move layerPlaceholderOff to after WriteNoshort so the placeholder writes
the correct address, matching WriteStereoSingleSeq.

Fixes #7264
2026-10-03 13:50:08 +00:00
Chris 69a7cdb179 [Bugfix] Fix crash on exit after rando gen (#7296) 2026-10-03 13:49:25 +00:00
Philip Dubé 9eafd15fe1 Fix grotto entrance misbehaving when entering grotto before last transition not done (#7271) 2026-10-02 15:34:13 +00:00
David Racine 57eea55bd4 Fix a song enlarging on the quest page while the cursor is on L/R (#7263)
The selected-slot index is only assigned when the cursor is on a slot, so on
the page arrows the song icons compared against an uninitialised value.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 02:46:12 +00:00
Chris f4e698f4cc Revert self-pumping audio thread (#7284)
* Revert "Fix audio regression playing audio too slowly (#6894)"

This reverts commit db41e1b5f8.

* Revert "fix(audio): Fix audio stutter when gfx hitches (#6704)"

This reverts commit 4415537deb.
2026-10-01 02:39:23 +00:00
Philip Dubé ad7d0a66d0 Set time of day when skipping sun song cutscene (#7235)
Simulate cutscenes to match various time of day quirks
2026-10-01 02:22:38 +00:00
Philip Dubé ff0209e76f fix logical typos (#7283) 2026-09-29 19:49:27 +00:00
Chris b9bcc5e901 Fix audio thread race on CVar reads during preset apply (#7265) 2026-09-29 03:27:11 +00:00
Philip Dubé aa25eb4d56 mark ganon's tower entrances as oneExit (#7276) 2026-09-28 23:06:03 +00:00
Philip Dubé c42004bc42 Fix AddCheckToLogic bombchu handling (#7274)
1. consistently include shop bombchus
2. fix boolean flip typo, that was filtering out ITEMTYPE_SHOP branch that coerces matching LogicVals
2026-09-28 16:16:27 +00:00
Philip Dubé 4f546bc87e Fix Link being out of bounds while loading into scene on epona with spinning free cam (#7270) 2026-09-28 14:11:22 +00:00