Skip to content

Add deferred dialogue audio with owned callbacks for API 3 - #119

Closed
Roxas2712 wants to merge 32 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-dialogue-audio
Closed

Roxas2712 wants to merge 32 commits into
UNDERdecoded:mainfrom
Roxas2712:codex/portable-dialogue-audio

Conversation

@Roxas2712

@Roxas2712 Roxas2712 commented Oct 22, 2026 •

Copy link
Copy Markdown

Adds play_cry, text_sound and engage_music to API-3 portable scripts on generations 1–3. Cues are validated before admission, armed for the next show_text/ask, and played after typing through the native dialogue/audio controllers. Questions wait for audio before presenting their native choice; cries preserve auto-close versus explicit button-wait behavior.

Depends on #118 and its prerequisites. Merge that first. Focused review: https://github.com/Roxas2712/Gen2Recomped/compare/1fa9d59d90fbb6391a4a6cf994de56c016f40436...8a6eca8ebcc5501bc390f39de6aeba75b2878d48

Retained callbacks are once-only and inert beneath unrelated UI or after retirement. A reentrant unload during playback or source polling aborts the native update before it can pop a foreign overlay. Assets are revalidated at arm, construction and playback. Native 600-frame gates prevent stalled sources from trapping dialogue.

Validation:

  • 112 targeted assertions covering all eight versions, malformed/missing cues, changed assets, audio/choice ordering, timeout, stale callbacks and reentrant sound/poll/music unloads.
  • 160 cross-engine comparisons / 320 isolated runs against pinned Gen1Recomp; both clean feature and combined integration heads.
  • Feature 93/103 engine suites; integration 98/108. Exactly the baseline 17 failed assertions and 10 failed suites remain; SDK 3/3 and B30 pass.
  • Format/diff checks pass. Synthetic font/text data and a fake audio-device clock drive actual native dialogue controls; no imported-ROM or PCM equivalence claim.

Combined cry+text_sound plays both on the host. The reference Gen1 options merge drops the text sound in that combination; shared comparisons cover the individual cues instead of reproducing that defect.

Hosted workflows await maintainer approval for this fork (action_required): API 3, ci. No hosted pass is claimed.

# Conflicts:
#	src/mods/Loader.lua
# Conflicts:
#	docs/modding.md
#	src/mods/Loader.lua
#	src/world/WorldAPI.lua
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant