WIP: feat(gameplay): add experimental cutscene skipping #200

Draft
brunobaccari wants to merge 5 commits from brunobaccari/Longshot:feat/longshot-experimental-cutscene-skip into main
First-time contributor

Why

Some cutscenes do not expose the game's normal skip prompt. This adds an optional experimental way to request that prompt and confirm with its displayed button. It stays off by default.

What changed

  • Gameplay adds Skip cutscenes (Experimental), saved as skip_unskippable_cutscenes. English and PT-BR help warn that skipping can leave story progress incomplete or soft-lock a save; save first. Dialogue overlap and incomplete conversation/chest support remain explicit.
  • Two guarded lifted permission sites retain the native input, confirmation, readiness and completion paths. The override is restricted to the exact opening timeline names Dm_Kokiri_0000 and Dm_Kokiri_0030, read from the active player's own resource. Unknown names, suffix matches and unreadable memory keep native permissions. The existing Skip opening remains independent.
  • Log cutscene skip: override allowed for timeline ... once per timeline execution. The normal timeline-start hook resets the diagnostic even with Skip opening off. This logs permission being enabled, not proof that the player confirmed a skip.
  • New option ID56; Skip opening ID52 and frame cap ID53 are unchanged. No MkwVkHost/MkwVkRenderer layout change; API21 is unchanged.
  • Source-reading menu fixtures and README/options documentation follow the new row. The new INI mapping is outside the comment for renamed rows.

Flags and settings

Flag What it does Default now Recommendation Helps on Doesn't help on Untested on
skip_unskippable_cutscenes / Gameplay → Skip cutscenes (Experimental) Requests the native skip prompt for the opening movie and Navi waking Link only; confirmation is still required Off (0) Keep off by default; save first when opting in The two named opening timelines Other scenes retain native permissions; conversation/chest support remains incomplete, and no missing flags or items are supplied Current revised head in the game; Linux application/runtime

No environment/build switch is added. Keep skip_opening=0 when validating this interactive toggle.

Measurements

main: 514591a3 (2026-11-13)
this PR: feat/longshot-experimental-cutscene-skip @ 7d821fc0

Hardware: Windows 11 Pro 26300, Ryzen 5 3600, 64 GiB RAM, Radeon RX 5500 XT, driver 32.0.21045.16010; Builder Python/llvm-mingw for directed checks. Linux focals use Alpine 3.22, GCC/G++ 14.2.0, Python 3.12.16 in Docker/WSL2. Current runtime measurements are pending.
Scene: Current-head opening movie and authored-unskippable 3D cutscene, followed by save/reload, are pending.
Method: API readback identifies current head 7d821fc0 on main 514591a3. No new validation result is added by this description update. At the earlier d3c79356 / main d9648863 checkpoint, a source-only comparison (git range-diff) confirmed all five PR patches were unchanged from the previously checked 3b44463f / main f3fe1763 series. Upstream menu/input code changed, so earlier test results are kept with their original commits rather than relabeled as current-head runs. On 3b44463f, twelve of thirteen focused Windows scripts passed and the i18n script had one failure also reproduced on main f3fe1763. Earlier Linux checks were on f2487bc7 / main fbd42024. No complete current-head suite, application build, runtime or performance result is claimed.
How to reproduce: Build both named revisions from the same supported dump, use physically copied saves and identical settings, keep Skip opening off, and compare the native dialogue-skip shortcut with the experimental toggle off/on. Confirm the actual destination scene and control, then save and reload. Warm the scene before two interleaved runs per revision; captures are outside timing samples.

main @ 514591a3 this PR @ 7d821fc0
New experimental toggle Absent Off by default in source; no new runtime run
Source comparison Target base verified by API Current head verified by API; earlier patch-series/interface comparison remains recorded at d3c79356
Focused checks No new matched run Previous Windows results are from 3b44463f, detailed under Testing
Host portability No full matched baseline run yet Previous Linux host compilation was on f2487bc7; not rerun on this head
Full suite/build/runtime Pending coordinated baseline Pending; the earlier full-suite attempt was interrupted
Interleaved performance comparison Pending Pending

Previous Windows run on 3b44463f / main f3fe1763 (not a new run on 7d821fc0):

test_menu_i18n.py: 4 tests OK, 1 FAIL on this PR and main f3fe1763 (same stale Debug help translation)
test_readme_menu_rows.py: 5 tests OK
test_cutscene_skip.py: host/diagnostic harness and 24 readiness combinations pass; 6 Python tests OK
test_opening_skip.py: PASS, including reset with Skip opening off
Linux: earlier f2487bc7 checks passed; not rerun after this rebase
git diff --check: clean

Older evidence on main 0c74253d and PR 080c3873 is historical only: a Windows build, 484 passed / 6 failed / 33 skipped with baseline failure checks, limited Linux fixtures/host-TU compilation, and scripted opening/3D skip observations. Later upstream renderer changes and this review follow-up invalidate transferring those results to the current head. Historical FPS runs varied too much to establish zero cost or a speed change.

Testing

Tested: For current 7d821fc0, API readback verified the head and base 514591a3. No completed source-test, application-build or runtime result is added by this metadata update. At the earlier d3c79356 checkpoint, read-only API/Git checks verified its base, head and unchanged PR patch series. On prior 3b44463f, twelve focused scripts passed: test_option_ids.py, test_cutscene_skip.py, test_opening_skip.py, test_oot_damage.py, test_damage_debug_menu.py, test_menu_keys.py, test_readme_menu_rows.py, test_audio_output_menu.py, test_stick_dead_zone.py, test_framegen_preset.py, test_menu_env_overrides.py, and test_rumble_menu.py. These cover both feature IDs/callbacks, exact timeline allowlist, native/Off behavior, malformed pointers, log reset/deduplication, 24 readiness combinations, damage scaling and Debug visibility, menu navigation/persistence and source-reading fixtures. git diff --check passes. Independent comparison found no actionable issue: upstream damage functions and the PR skip functions were preserved, and MkwVkHost / MkwVkRenderer match main exactly.

Baseline failure: test_menu_i18n.py runs five tests: four pass and test_texts_are_the_menus fails because an existing PT-BR Debug help key no longer matches the English menu text. The same five-test run fails identically on actual main f3fe1763 files. The conflict repair does not alter that upstream translation.

Earlier evidence: On f2487bc7 / main fbd42024, eight Linux focal scripts and both changed host translation units passed with official standalone headers. Exact patch anchors also matched the preserved partial f647a072 lift, with idempotence checked. These earlier checks are not a new full build or runtime result for the rebased head.

Read-only inspection of the locally owned supported build e0f3ccfaf50065ae4ea01eb5aeb13b1a45da3348 confirmed the resource/name relationship used by the allowlist against both NSO and image. No game bytes, disassembly, generated code or binaries are included in this PR.

Not tested: A complete current-head full suite (the attempt was interrupted during local build contention and is not counted as a full result), complete Windows application build, current UI screenshots, movie and authored-unskippable 3D skip followed by save/reload, second-movie playback/decoder continuity, and interleaved performance runs are pending. Earlier Linux compilation was limited to the changed host translation units and fixtures; no Linux rerun, full Linux application/renderer build or GPU execution is claimed for this rebased head. Audio is muted in local scripted runs, so audible playback has not been checked. Conversations/chests remain incomplete.

Needs other testers: None requested while author validation and review fixes are in progress. This is not a claim that untested platforms or paths are covered; no external test request was sent.

Screenshots

Current-head screenshots are pending. Existing attachments show the historical 080c3873 implementation and must not be treated as evidence for this revised head:

Risk and rollback

Skipping can omit authored story actions, flags, items, songs, age/time changes or warps and leave progress incomplete or a save soft-locked. Save first and keep the experimental option off by default. The native completion path alone does not prove story-state integrity. Disable the toggle (skip_unskippable_cutscenes=0) to restore native permission; reverting this PR removes the option. Skip opening remains separate.

Reviewer notes

Current state (2026-11-13): head 7d821fc0 is based on 514591a3. Prior patch-series comparisons remain evidence at their named commits. The separate author validation session is using this current head; no completed game result is claimed here. Both adjacent option IDs remain in gpu/vk/vk_api.h. The PR is WIP because full-suite, complete platform builds, current screenshots, save/reload and interleaved measurements remain pending. Existing review/comments are preserved; no checkbox is ticked solely to pass the description job.

Review follow-ups in a dedicated worktree address the help/docs warning (13988), INI comment placement (13989), coverage restriction (13990) and diagnostic logging (13991). The atomic option snapshot is retained because it protects reads from game threads. Current runtime validation and save/reload remain prerequisites; no request-changes review is claimed as dismissed.

Issues

None.

Checklist

For everyone

  • One topic.
  • The title is a Conventional Commit (type(scope): description).
  • Rebased on current main. — API readback: 514591a3, 2026-11-13.
  • python -I -B tests/run_all.py run and passing (any failure that also fails on main is named above).
  • Tested in the game, or what wasn't is named under Testing.
  • Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests).
  • Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported.
  • No game files, dumps, build output or generated files.
  • third_party/ untouched (a new folder with a PROVENANCE.md instead).
  • The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled.

If applicable

  • AI assistance recorded with Assisted-by: / Co-Authored-By: trailers.
  • Flags noted, and the switch reference updated (docs/development.md, the README).
  • Screenshots for a change that shows on screen.
  • A row in docs/tested-configurations.md for each measured run.
  • A game-free test added for the fix, failing on main and passing here.
  • A check under tests/ that reads changed source updated in this PR, not weakened.
  • Host code builds on both Windows (llvm-mingw) and Linux, with UTF-8 paths.
  • Docs updated.

Unchecked boxes name validation still pending on the revised head. This PR remains WIP; a successful description job in WIP does not establish readiness or complete these checks.

## Why Some cutscenes do not expose the game's normal skip prompt. This adds an optional experimental way to request that prompt and confirm with its displayed button. It stays off by default. ## What changed - Gameplay adds **Skip cutscenes (Experimental)**, saved as `skip_unskippable_cutscenes`. English and PT-BR help warn that skipping can leave story progress incomplete or soft-lock a save; save first. Dialogue overlap and incomplete conversation/chest support remain explicit. - Two guarded lifted permission sites retain the native input, confirmation, readiness and completion paths. The override is restricted to the exact opening timeline names `Dm_Kokiri_0000` and `Dm_Kokiri_0030`, read from the active player's own resource. Unknown names, suffix matches and unreadable memory keep native permissions. The existing **Skip opening** remains independent. - Log `cutscene skip: override allowed for timeline ...` once per timeline execution. The normal timeline-start hook resets the diagnostic even with Skip opening off. This logs permission being enabled, not proof that the player confirmed a skip. - New option ID56; Skip opening ID52 and frame cap ID53 are unchanged. No `MkwVkHost`/`MkwVkRenderer` layout change; API21 is unchanged. - Source-reading menu fixtures and README/options documentation follow the new row. The new INI mapping is outside the comment for renamed rows. ## Flags and settings | Flag | What it does | Default now | Recommendation | Helps on | Doesn't help on | Untested on | |---|---|---|---|---|---|---| | `skip_unskippable_cutscenes` / Gameplay → Skip cutscenes (Experimental) | Requests the native skip prompt for the opening movie and Navi waking Link only; confirmation is still required | Off (`0`) | Keep off by default; save first when opting in | The two named opening timelines | Other scenes retain native permissions; conversation/chest support remains incomplete, and no missing flags or items are supplied | Current revised head in the game; Linux application/runtime | No environment/build switch is added. Keep `skip_opening=0` when validating this interactive toggle. ## Measurements main: 514591a3 (2026-11-13) this PR: feat/longshot-experimental-cutscene-skip @ 7d821fc0 Hardware: Windows 11 Pro 26300, Ryzen 5 3600, 64 GiB RAM, Radeon RX 5500 XT, driver 32.0.21045.16010; Builder Python/llvm-mingw for directed checks. Linux focals use Alpine 3.22, GCC/G++ 14.2.0, Python 3.12.16 in Docker/WSL2. Current runtime measurements are pending. Scene: Current-head opening movie and authored-unskippable 3D cutscene, followed by save/reload, are pending. Method: API readback identifies current head 7d821fc0 on main 514591a3. No new validation result is added by this description update. At the earlier d3c79356 / main d9648863 checkpoint, a source-only comparison (`git range-diff`) confirmed all five PR patches were unchanged from the previously checked 3b44463f / main f3fe1763 series. Upstream menu/input code changed, so earlier test results are kept with their original commits rather than relabeled as current-head runs. On 3b44463f, twelve of thirteen focused Windows scripts passed and the i18n script had one failure also reproduced on main f3fe1763. Earlier Linux checks were on f2487bc7 / main fbd42024. No complete current-head suite, application build, runtime or performance result is claimed. How to reproduce: Build both named revisions from the same supported dump, use physically copied saves and identical settings, keep Skip opening off, and compare the native dialogue-skip shortcut with the experimental toggle off/on. Confirm the actual destination scene and control, then save and reload. Warm the scene before two interleaved runs per revision; captures are outside timing samples. | | main @ 514591a3 | this PR @ 7d821fc0 | |---|---|---| | New experimental toggle | Absent | Off by default in source; no new runtime run | | Source comparison | Target base verified by API | Current head verified by API; earlier patch-series/interface comparison remains recorded at d3c79356 | | Focused checks | No new matched run | Previous Windows results are from 3b44463f, detailed under Testing | | Host portability | No full matched baseline run yet | Previous Linux host compilation was on f2487bc7; not rerun on this head | | Full suite/build/runtime | Pending coordinated baseline | Pending; the earlier full-suite attempt was interrupted | | Interleaved performance comparison | Pending | Pending | Previous Windows run on 3b44463f / main f3fe1763 (not a new run on 7d821fc0): ```text test_menu_i18n.py: 4 tests OK, 1 FAIL on this PR and main f3fe1763 (same stale Debug help translation) test_readme_menu_rows.py: 5 tests OK test_cutscene_skip.py: host/diagnostic harness and 24 readiness combinations pass; 6 Python tests OK test_opening_skip.py: PASS, including reset with Skip opening off Linux: earlier f2487bc7 checks passed; not rerun after this rebase git diff --check: clean ``` Older evidence on main `0c74253d` and PR `080c3873` is historical only: a Windows build, 484 passed / 6 failed / 33 skipped with baseline failure checks, limited Linux fixtures/host-TU compilation, and scripted opening/3D skip observations. Later upstream renderer changes and this review follow-up invalidate transferring those results to the current head. Historical FPS runs varied too much to establish zero cost or a speed change. ## Testing **Tested:** For current `7d821fc0`, API readback verified the head and base `514591a3`. No completed source-test, application-build or runtime result is added by this metadata update. At the earlier `d3c79356` checkpoint, read-only API/Git checks verified its base, head and unchanged PR patch series. On prior `3b44463f`, twelve focused scripts passed: `test_option_ids.py`, `test_cutscene_skip.py`, `test_opening_skip.py`, `test_oot_damage.py`, `test_damage_debug_menu.py`, `test_menu_keys.py`, `test_readme_menu_rows.py`, `test_audio_output_menu.py`, `test_stick_dead_zone.py`, `test_framegen_preset.py`, `test_menu_env_overrides.py`, and `test_rumble_menu.py`. These cover both feature IDs/callbacks, exact timeline allowlist, native/Off behavior, malformed pointers, log reset/deduplication, 24 readiness combinations, damage scaling and Debug visibility, menu navigation/persistence and source-reading fixtures. `git diff --check` passes. Independent comparison found no actionable issue: upstream damage functions and the PR skip functions were preserved, and `MkwVkHost` / `MkwVkRenderer` match main exactly. **Baseline failure:** `test_menu_i18n.py` runs five tests: four pass and `test_texts_are_the_menus` fails because an existing PT-BR Debug help key no longer matches the English menu text. The same five-test run fails identically on actual main f3fe1763 files. The conflict repair does not alter that upstream translation. **Earlier evidence:** On `f2487bc7` / main `fbd42024`, eight Linux focal scripts and both changed host translation units passed with official standalone headers. Exact patch anchors also matched the preserved partial f647a072 lift, with idempotence checked. These earlier checks are not a new full build or runtime result for the rebased head. Read-only inspection of the locally owned supported build `e0f3ccfaf50065ae4ea01eb5aeb13b1a45da3348` confirmed the resource/name relationship used by the allowlist against both NSO and image. No game bytes, disassembly, generated code or binaries are included in this PR. **Not tested:** A complete current-head full suite (the attempt was interrupted during local build contention and is not counted as a full result), complete Windows application build, current UI screenshots, movie and authored-unskippable 3D skip followed by save/reload, second-movie playback/decoder continuity, and interleaved performance runs are pending. Earlier Linux compilation was limited to the changed host translation units and fixtures; no Linux rerun, full Linux application/renderer build or GPU execution is claimed for this rebased head. Audio is muted in local scripted runs, so audible playback has not been checked. Conversations/chests remain incomplete. **Needs other testers:** None requested while author validation and review fixes are in progress. This is not a claim that untested platforms or paths are covered; no external test request was sent. ## Screenshots Current-head screenshots are pending. Existing attachments show the historical `080c3873` implementation and must not be treated as evidence for this revised head: - [Historical menu warning, experimental off](https://git.magicbean.dev/attachments/f5a915c7-7f3a-412e-92ca-b084ba200234) - [Historical opening prompt, experimental on](https://git.magicbean.dev/attachments/ba8c5204-0031-43b8-9490-02efcd4db3a2) - [Historical main without the experimental prompt](https://git.magicbean.dev/attachments/80a9628d-9622-4870-9064-04d1fb314105) ## Risk and rollback Skipping can omit authored story actions, flags, items, songs, age/time changes or warps and leave progress incomplete or a save soft-locked. Save first and keep the experimental option off by default. The native completion path alone does not prove story-state integrity. Disable the toggle (`skip_unskippable_cutscenes=0`) to restore native permission; reverting this PR removes the option. Skip opening remains separate. ## Reviewer notes Current state (2026-11-13): head `7d821fc0` is based on `514591a3`. Prior patch-series comparisons remain evidence at their named commits. The separate author validation session is using this current head; no completed game result is claimed here. Both adjacent option IDs remain in `gpu/vk/vk_api.h`. The PR is WIP because full-suite, complete platform builds, current screenshots, save/reload and interleaved measurements remain pending. Existing review/comments are preserved; no checkbox is ticked solely to pass the description job. Review follow-ups in a dedicated worktree address the help/docs warning (13988), INI comment placement (13989), coverage restriction (13990) and diagnostic logging (13991). The atomic option snapshot is retained because it protects reads from game threads. Current runtime validation and save/reload remain prerequisites; no request-changes review is claimed as dismissed. ## Issues None. ## Checklist ### For everyone - [x] One topic. - [x] The title is a Conventional Commit (`type(scope): description`). - [x] Rebased on current `main`. — API readback: `514591a3`, 2026-11-13. - [ ] `python -I -B tests/run_all.py` run and passing (any failure that also fails on `main` is named above). - [x] Tested in the game, or what wasn't is named under Testing. - [x] Testing filled in: what was tested, what wasn't, and what needs other testers (with test requests). - [ ] Measured: main and this PR at named commits, on the same PC, scene and settings, at least 2 interleaved runs each, the median reported. - [x] No game files, dumps, build output or generated files. - [x] `third_party/` untouched (a new folder with a `PROVENANCE.md` instead). - [x] The license is OK: GPL-3.0-or-later, nothing incompatible and nothing decompiled. ### If applicable - [x] AI assistance recorded with `Assisted-by:` / `Co-Authored-By:` trailers. - [x] Flags noted, and the switch reference updated (docs/development.md, the README). - [ ] Screenshots for a change that shows on screen. - [ ] A row in `docs/tested-configurations.md` for each measured run. - [x] A game-free test added for the fix, failing on `main` and passing here. - [x] A check under `tests/` that reads changed source updated in this PR, not weakened. - [ ] Host code builds on both Windows (llvm-mingw) and Linux, with UTF-8 paths. - [x] Docs updated. Unchecked boxes name validation still pending on the revised head. This PR remains WIP; a successful description job in WIP does not establish readiness or complete these checks.
Author
First-time contributor

Ran the full Windows suite: 484 passed, 6 failed, 33 skipped, with source and fixture hashes unchanged. All six failures also reproduce on clean main and are named in the description. The actual new host C and directed fixtures passed on Linux. Release builds and in-game measurements are still in progress; this remains WIP.

Ran the full Windows suite: 484 passed, 6 failed, 33 skipped, with source and fixture hashes unchanged. All six failures also reproduce on clean main and are named in the description. The actual new host C and directed fixtures passed on Linux. Release builds and in-game measurements are still in progress; this remains WIP.
Author
First-time contributor

The complete Windows standalone build linked the executable and Vulkan renderer with zero failures, and the generated output contains both guarded skip patches. The actual changed host translation unit compiled on Linux with the official runtime headers; no full Linux application or GPU run is claimed. Main advanced only in README/CONTRIBUTING; final rebase follows the ongoing scripted game comparison. The experimental setting remains off by default and the dialogue/chest limitations are retained. Functional skip and repeated measurements are still pending, so this remains WIP.

The complete Windows standalone build linked the executable and Vulkan renderer with zero failures, and the generated output contains both guarded skip patches. The actual changed host translation unit compiled on Linux with the official runtime headers; no full Linux application or GPU run is claimed. Main advanced only in README/CONTRIBUTING; final rebase follows the ongoing scripted game comparison. The experimental setting remains off by default and the dialogue/chest limitations are retained. Functional skip and repeated measurements are still pending, so this remains WIP.
brunobaccari changed title from WIP: feat(gameplay): add experimental cutscene skipping to feat(gameplay): add experimental cutscene skipping 2026-11-13 15:32:47 +00:00
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from 080c387311
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 6s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 99a0d64f0c
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 19s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
2026-11-13 15:33:36 +00:00
Compare
Merge branch 'main' into feat/longshot-experimental-cutscene-skip
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 47s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
Website / Website on Cloudflare (pull_request) Has been cancelled
5d2ef0afba
HumanBean left a comment

Thanks, this is a careful and small way in. The override changes only the authored bit and leaves the game's own input, confirmation and completion alone. Both lifted sites read the same flag (+952 bit 26 is +955 bit 2). The patches are guarded: an exact function, a unique anchor, idempotent, and a missing site is a WARNING in report(). The row is off by default, saved as skip_unskippable_cutscenes, and the WebGPU path reads it as off (rx_option(56, 0)). It leaves the existing Skip opening hooks alone and doesn't touch MkwVkHost/MkwVkRenderer. Nothing in it depends on the frame rate, so I see no above-60 fps interaction.

Must change

  1. It isn't ready yet, by its own description. The description opens with "WIP: in-game validation, measurements and screenshots are still pending", says "This stays WIP until …", and says "the new permission paths have not yet been observed executing in the game". Measured is unticked. The title has no WIP:, though, so it reads as ready for review. Please put it back to WIP (pr wip 200) until the toggle has been seen working in the game, at least on the opening movie and one authored-unskippable cutscene, followed by a save and reload.
  2. The skip covers every authored-unskippable cutscene, with no list, and the help doesn't say it can break a save. The hook turns the permission on for any event that reaches f_83b63210 or f_80ac8650. The opening-skip notes in host/hos_main.c show why some cutscenes may be locked. The game's flowcharts check IsEventSkipedMostRecent and take a separate skip edge (warp Navi, music, flags, autosave), and the comment there makes a point of saying "Neither timeline writes save data", so other timelines can. A cutscene the designers made unskippable probably has no skip edge written for it. Anything its timeline does mid-play could then be lost on a skip: a flag, an item, a song, a change of age or time, a warp or a scene load. That can leave a save stuck. Please:
    • say so in the help, README and docs: "can leave story progress incomplete or soft-lock a save; save first", not only "may overlap dialogue";
    • log the event or timeline name once whenever the override turns a skip on that the game would have refused (hos_log, as hos_oot_opening does), so a bug report can show which cutscene was skipped;
    • ideally, start from an allowlist of cutscenes checked in the game, or at least a denylist for the known song, item, age and warp ones.
  3. The description no longer matches the PR. It names 080c3873 on 0c74253d and leaves Rebased on current main unticked. The head is now 5d2ef0af, which merges current main (1ef93e79), so that box can be ticked, but the tested commits and numbers need restating against this head.

Should change

  • Movies: skipping one goes through the game's own Finalize*Decoder. dec_finalize gives the decoder's ready event back (#110), so I see no leak in the code. But a decoder stopped with 16 submissions waiting hasn't been run. When you test the opening movie, please also skip a second movie in the same session and check that it plays, with its sound.
  • ini_key puts the new key under the comment "rows renamed since their values were first saved keep their keys". It's a new row, so that comment doesn't apply. Move the line above the comment, or just let the key come from the row name.
  • The cutscene_skip_now atomic isn't needed: the other options the game threads read (opts.fov, opts.skip_opening) go straight through the same lambda. It's harmless, but it adds a stub to five test fixtures.

Not checked: the anchors against the real lifted code (I have no code_*.c here). The fixture in tests/test_cutscene_skip.py is put together from the patch's own strings, not taken from the lift, so it can't confirm the addresses either.

Thanks, this is a careful and small way in. The override changes only the authored bit and leaves the game's own input, confirmation and completion alone. Both lifted sites read the same flag (+952 bit 26 is +955 bit 2). The patches are guarded: an exact function, a unique anchor, idempotent, and a missing site is a `WARNING` in `report()`. The row is off by default, saved as `skip_unskippable_cutscenes`, and the WebGPU path reads it as off (`rx_option(56, 0)`). It leaves the existing Skip opening hooks alone and doesn't touch `MkwVkHost`/`MkwVkRenderer`. Nothing in it depends on the frame rate, so I see no above-60 fps interaction. ## Must change 1. **It isn't ready yet, by its own description.** The description opens with "WIP: in-game validation, measurements and screenshots are still pending", says "This stays WIP until …", and says "the new permission paths have not yet been observed executing in the game". *Measured* is unticked. The title has no `WIP:`, though, so it reads as ready for review. Please put it back to WIP (`pr wip 200`) until the toggle has been seen working in the game, at least on the opening movie and one authored-unskippable cutscene, followed by a save and reload. 2. **The skip covers every authored-unskippable cutscene, with no list, and the help doesn't say it can break a save.** The hook turns the permission on for any event that reaches `f_83b63210` or `f_80ac8650`. The opening-skip notes in `host/hos_main.c` show why some cutscenes may be locked. The game's flowcharts check `IsEventSkipedMostRecent` and take a separate skip edge (warp Navi, music, flags, autosave), and the comment there makes a point of saying "Neither timeline writes save data", so other timelines can. A cutscene the designers made unskippable probably has no skip edge written for it. Anything its timeline does mid-play could then be lost on a skip: a flag, an item, a song, a change of age or time, a warp or a scene load. That can leave a save stuck. Please: - say so in the help, README and docs: "can leave story progress incomplete or soft-lock a save; save first", not only "may overlap dialogue"; - log the event or timeline name once whenever the override turns a skip on that the game would have refused (`hos_log`, as `hos_oot_opening` does), so a bug report can show which cutscene was skipped; - ideally, start from an allowlist of cutscenes checked in the game, or at least a denylist for the known song, item, age and warp ones. 3. **The description no longer matches the PR.** It names `080c3873` on `0c74253d` and leaves *Rebased on current main* unticked. The head is now `5d2ef0af`, which merges current main (`1ef93e79`), so that box can be ticked, but the tested commits and numbers need restating against this head. ## Should change - Movies: skipping one goes through the game's own `Finalize*Decoder`. `dec_finalize` gives the decoder's ready event back (https://git.magicbean.dev/MagicBeanDev/Longshot/pulls/110), so I see no leak in the code. But a decoder stopped with 16 submissions waiting hasn't been run. When you test the opening movie, please also skip a second movie in the same session and check that it plays, with its sound. - `ini_key` puts the new key under the comment "rows renamed since their values were first saved keep their keys". It's a new row, so that comment doesn't apply. Move the line above the comment, or just let the key come from the row name. - The `cutscene_skip_now` atomic isn't needed: the other options the game threads read (`opts.fov`, `opts.skip_opening`) go straight through the same lambda. It's harmless, but it adds a stub to five test fixtures. Not checked: the anchors against the real lifted code (I have no `code_*.c` here). The fixture in `tests/test_cutscene_skip.py` is put together from the patch's own strings, not taken from the lift, so it can't confirm the addresses either.
@ -1257,6 +1257,9 @@ Row rows[] = {
"during gameplay. Cutscenes keep their own view.", nullptr, false, true},
{TAB_GAMEPLAY, "Text speed", &opts.text_speed, 0, 3, 1, tx_text_speed,
"How fast the letters of dialogue and other messages appear.", hn_text_speed, false, true},
{TAB_GAMEPLAY, "Skip cutscenes (Experimental)", &opts.allow_cutscene_skip, 0, 1, 1, tx_onoff,
Owner

The help talks about overlapping dialogue, but the bigger risk is that a skipped cutscene leaves a flag, an item, a song, an age or time change, or a warp undone and soft-locks the save. Please say that, and suggest saving first.

The help talks about overlapping dialogue, but the bigger risk is that a skipped cutscene leaves a flag, an item, a song, an age or time change, or a warp undone and soft-locks the save. Please say that, and suggest saving first.
@ -1741,6 +1745,7 @@ const char* ini_key(const Row& r) {
if (r.value == &opts.vsync) return "vsync";
// (rows renamed since their values were first saved keep their keys: an options file from before still loads)
if (r.value == &opts.resolution) return "resolution";
if (r.value == &opts.allow_cutscene_skip) return "skip_unskippable_cutscenes";
Owner

This sits under the comment for rows renamed since their keys were first saved, which a new row isn't. Move it above that comment, or let the key come from the row name.

This sits under the comment for rows renamed since their keys were first saved, which a new row isn't. Move it above that comment, or let the key come from the row name.
@ -0,0 +4,4 @@
int rx_option(int id, int otherwise);
uint64_t hos_oot_cutscene_skip_allowed(uint64_t native_allowed) {
return rx_option(HOS_OPT_ALLOW_CUTSCENE_SKIP, 0) > 0 ? 1 : native_allowed;
Owner

When the option turns a skip on that the game would have refused (native_allowed == 0), log it once per event, ideally with the event or timeline name as hos_oot_opening does. Otherwise a bug report about a stuck save can't show which cutscene was skipped.

When the option turns a skip on that the game would have refused (`native_allowed == 0`), log it once per event, ideally with the event or timeline name as `hos_oot_opening` does. Otherwise a bug report about a stuck save can't show which cutscene was skipped.
@ -248,6 +248,72 @@ def patch_camera_centering(source):
'#include "a64.h"\n', '#include "a64.h"\nextern int hos_disable_camera_centering(void);\n', 1)
# The event's active-state tick extracts its authored skip permission here. Other conditions later disable the same
Owner

This covers every event whose authored bit is clear, with no list. The opening notes in host/hos_main.c show the flowcharts use a separate skip edge (IsEventSkipedMostRecent), which cutscenes made unskippable probably don't have. Could this start from an allowlist of cutscenes checked in the game, or at least a denylist for the song, item, age and warp ones?

This covers every event whose authored bit is clear, with no list. The opening notes in host/hos_main.c show the flowcharts use a separate skip edge (`IsEventSkipedMostRecent`), which cutscenes made unskippable probably don't have. Could this start from an allowlist of cutscenes checked in the game, or at least a denylist for the song, item, age and warp ones?
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from a7de9b7418
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 5s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 8fc74e076f
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 24s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
2026-11-13 16:47:34 +00:00
Compare
brunobaccari changed title from feat(gameplay): add experimental cutscene skipping to WIP: feat(gameplay): add experimental cutscene skipping 2026-11-13 16:54:30 +00:00
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from 8fc74e076f
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 24s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 368c7da4e4
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 21s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
2026-11-13 17:01:22 +00:00
Compare
Author
First-time contributor

Returned this PR to WIP and rebased onto main f647a072 without changing the two feature patches. Commit 368c7da4 adds the save/progress risk warning in English and PT-BR, the README and options reference, and moves the new INI key above the renamed-row comment (13988, 13989). Sixteen lightweight Python checks and diff whitespace validation pass. The description now separates historical evidence from the revised head; event logging, safe coverage limits and the requested save/reload validation remain in progress. The atomic snapshot is retained for cross-thread option reads.

Returned this PR to WIP and rebased onto main f647a072 without changing the two feature patches. Commit 368c7da4 adds the save/progress risk warning in English and PT-BR, the README and options reference, and moves the new INI key above the renamed-row comment (13988, 13989). Sixteen lightweight Python checks and diff whitespace validation pass. The description now separates historical evidence from the revised head; event logging, safe coverage limits and the requested save/reload validation remain in progress. The atomic snapshot is retained for cross-thread option reads.
Author
First-time contributor

Addressed the remaining code requests in f2487bc7 (rebased onto main fbd42024 with identical feature patches): the override now accepts only exact Dm_Kokiri_0000/0030 names from the active player resource, validates mapped ranges, and keeps native permission for all other timelines (13990). It logs override allowed once per timeline execution; the normal starter resets the diagnostic even with Skip opening off (13991). UI/README/docs state the limited coverage and save risk. Windows focused fixtures, 24 readiness cases, eight Linux focal scripts and both changed host TUs with official 64-bit standalone headers pass; source hashes match after the rebase. The full Windows suite is running. This remains WIP: current game behavior, save/reload, decoder continuity, screenshots and interleaved measurements are still pending. No audible-playback or completed-skip claim is inferred from the diagnostic log.

Addressed the remaining code requests in f2487bc7 (rebased onto main fbd42024 with identical feature patches): the override now accepts only exact Dm_Kokiri_0000/0030 names from the active player resource, validates mapped ranges, and keeps native permission for all other timelines (13990). It logs override allowed once per timeline execution; the normal starter resets the diagnostic even with Skip opening off (13991). UI/README/docs state the limited coverage and save risk. Windows focused fixtures, 24 readiness cases, eight Linux focal scripts and both changed host TUs with official 64-bit standalone headers pass; source hashes match after the rebase. The full Windows suite is running. This remains WIP: current game behavior, save/reload, decoder continuity, screenshots and interleaved measurements are still pending. No audible-playback or completed-skip claim is inferred from the diagnostic log.
Author
First-time contributor

The API is available again and now confirms head f2487bc7, base/merge-base fbd42024 and draft=true. Both permission anchors matched newly lifted baseline source, and reapplying either hook was idempotent; this does not claim a completed build. The same menu-wiring test fails the expected option-presence assertion on actual main git objects and passes on this PR. The full Windows attempt was interrupted before completion to avoid concurrent local build contention, so no full-suite pass or regression is inferred. Existing focused Windows/Linux results remain as documented; application/runtime, save/reload and measurements remain pending.

The API is available again and now confirms head f2487bc7, base/merge-base fbd42024 and draft=true. Both permission anchors matched newly lifted baseline source, and reapplying either hook was idempotent; this does not claim a completed build. The same menu-wiring test fails the expected option-presence assertion on actual main git objects and passes on this PR. The full Windows attempt was interrupted before completion to avoid concurrent local build contention, so no full-suite pass or regression is inferred. Existing focused Windows/Linux results remain as documented; application/runtime, save/reload and measurements remain pending.
Author
First-time contributor

Repaired the broken-fork warning without recreating the PR. The fork and feature branch existed, but the internal refs/pull/200/head was still at 2f253b57. Empty commit c53a10b4 triggered Forgejo synchronization; the fork branch, PR API and internal PR reference now all point to it, and a fresh page fetch no longer shows the warning. Its tree is identical to f2487bc7; no source changed and no tests were rerun for this metadata repair. Existing comments/review are preserved. The PR remains WIP, with the previously documented full-suite and runtime checks still pending.

Repaired the broken-fork warning without recreating the PR. The fork and feature branch existed, but the internal `refs/pull/200/head` was still at `2f253b57`. Empty commit `c53a10b4` triggered Forgejo synchronization; the fork branch, PR API and internal PR reference now all point to it, and a fresh page fetch no longer shows the warning. Its tree is identical to `f2487bc7`; no source changed and no tests were rerun for this metadata repair. Existing comments/review are preserved. The PR remains WIP, with the previously documented full-suite and runtime checks still pending.
brunobaccari changed title from WIP: feat(gameplay): add experimental cutscene skipping to feat(gameplay): add experimental cutscene skipping 2026-11-13 17:57:48 +00:00
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from c53a10b4a4
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 3s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 3b44463fe8
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 4s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
Website / Website on Cloudflare (pull_request) Has been cancelled
2026-11-13 18:19:29 +00:00
Compare
Author
First-time contributor

Resolved the gpu/vk/vk_api.h conflict by rebasing onto main f3fe1763, keeping upstream Damage taken ID55 and this PR cutscene-skip ID56. API21/interface layouts are unchanged. Published head 3b44463f; Forgejo now reports mergeable: true and its internal PR reference matches. Twelve focused Windows scripts pass, covering both features and their menu/patch consumers. The thirteenth, test_menu_i18n.py, has one stale Debug-help translation failure reproduced identically on main f3fe1763. No full build, full suite or game run was started for this conflict repair; those pending checks remain explicit in the updated description.

Resolved the `gpu/vk/vk_api.h` conflict by rebasing onto main `f3fe1763`, keeping upstream Damage taken ID55 and this PR cutscene-skip ID56. API21/interface layouts are unchanged. Published head `3b44463f`; Forgejo now reports `mergeable: true` and its internal PR reference matches. Twelve focused Windows scripts pass, covering both features and their menu/patch consumers. The thirteenth, `test_menu_i18n.py`, has one stale Debug-help translation failure reproduced identically on main f3fe1763. No full build, full suite or game run was started for this conflict repair; those pending checks remain explicit in the updated description.
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from 3b44463fe8
Some checks failed
PR description / Description follows the template (pull_request_target) Failing after 4s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
Website / Website on Cloudflare (pull_request) Has been cancelled
to d3c79356b6
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 3s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
2026-11-13 18:39:02 +00:00
Compare
Author
First-time contributor

Updated the description for current head d3c79356 / base d9648863 and returned the PR to WIP. The five patches are unchanged according to range-diff, but previous Windows/Linux evidence remains labeled with the commits actually tested. Full-suite, complete platform builds, current screenshots, save/reload and performance measurements remain pending and unchecked. The update triggered Description run 2234, which passed: https://git.magicbean.dev/MagicBeanDev/Longshot/actions/runs/2234 . Success in WIP is not a claim that those validations passed. A direct rerun of the historical run 2147 was denied with HTTP 403 because this fork account lacks upstream write permission; the new run is the current successful check. No source/branch change, build or game run was made for this description repair.

Updated the description for current head d3c79356 / base d9648863 and returned the PR to WIP. The five patches are unchanged according to range-diff, but previous Windows/Linux evidence remains labeled with the commits actually tested. Full-suite, complete platform builds, current screenshots, save/reload and performance measurements remain pending and unchecked. The update triggered Description run 2234, which passed: https://git.magicbean.dev/MagicBeanDev/Longshot/actions/runs/2234 . Success in WIP is not a claim that those validations passed. A direct rerun of the historical run 2147 was denied with HTTP 403 because this fork account lacks upstream write permission; the new run is the current successful check. No source/branch change, build or game run was made for this description repair.
brunobaccari changed title from feat(gameplay): add experimental cutscene skipping to WIP: feat(gameplay): add experimental cutscene skipping 2026-11-13 18:55:29 +00:00
brunobaccari changed title from WIP: feat(gameplay): add experimental cutscene skipping to feat(gameplay): add experimental cutscene skipping 2026-11-13 19:10:58 +00:00
brunobaccari force-pushed feat/longshot-experimental-cutscene-skip from d3c79356b6
Some checks failed
PR description / Description follows the template (pull_request_target) Successful in 3s
CI / Conventional Commit title (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Has been cancelled
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Has been cancelled
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Has been cancelled
CI / Workflow lint (actionlint) (pull_request) Has been cancelled
Third-party parts / As their notes say (pull_request) Has been cancelled
Third-party parts / The same as upstream (pull_request) Has been cancelled
to 7d821fc029
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 5s
Website / Website on Cloudflare (pull_request_target) Has been skipped
2026-11-13 19:10:59 +00:00
Compare
brunobaccari changed title from feat(gameplay): add experimental cutscene skipping to WIP: feat(gameplay): add experimental cutscene skipping 2026-11-13 20:11:38 +00:00
Author
First-time contributor

Check status review: the Description job failed because this PR was marked ready with five validation boxes still open. Updated the current head/base references and restored WIP, preserving all unchecked boxes and the original commit identities of earlier test evidence. No code, branch or runtime result changed. The metadata edit retriggers the description check.

The eight other pending jobs belong to CI, third-party and website workflows and have need_approval=true; they have not run and require a repository maintainer to approve execution for this fork. The current account has read-only upstream permissions. No build or GPU run was started by this check review.

Check status review: the Description job failed because this PR was marked ready with five validation boxes still open. Updated the current head/base references and restored WIP, preserving all unchecked boxes and the original commit identities of earlier test evidence. No code, branch or runtime result changed. The metadata edit retriggers the description check. The eight other pending jobs belong to CI, third-party and website workflows and have need_approval=true; they have not run and require a repository maintainer to approve execution for this fork. The current account has read-only upstream permissions. No build or GPU run was started by this check review.
Some checks are pending
CI / Conventional Commit title (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 1/2) (pull_request) Blocked by required conditions
CI / Python source checks (ubuntu-24.04, part 2/2) (pull_request) Blocked by required conditions
CI / SPIR-V fixtures (global narrow load/store, direct surface atomics, F2I immediate) (pull_request) Blocked by required conditions
CI / Workflow lint (actionlint) (pull_request) Blocked by required conditions
Third-party parts / As their notes say (pull_request) Blocked by required conditions
Third-party parts / The same as upstream (pull_request) Blocked by required conditions
Website / Website on Cloudflare (pull_request) Blocked by required conditions
PR description / Description follows the template (pull_request_target) Successful in 5s
Website / Website on Cloudflare (pull_request_target) Has been skipped
This pull request has changes conflicting with the target branch.
  • gpu/vk/menu_i18n.h
  • gpu/vk/vk_menu.h
  • gpu/vk/vk_replay.cpp
Some workflows are waiting to be reviewed.
View command line instructions

Manual merge helper

Use this merge commit message when completing the merge manually.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u 'feat/longshot-experimental-cutscene-skip:brunobaccari-feat/longshot-experimental-cutscene-skip'
git switch 'brunobaccari-feat/longshot-experimental-cutscene-skip'
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MagicBeanDev/Longshot!200
No description provided.