scenes: repair Strength and Courage tower wait timing

Open
#573 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
12/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
godot, rust

Research direction

Start in rust/psiv-core/src/scenes/dezo_endgame.rs at Event_StrengthTowerTop and Event_CourageTowerTop, then read the wait_census tests and docs/source-notes/README.md. The issue lists US retail offsets and wait counts that must be matched, and it depends on open work in #519, #565 and PR #566, so confirm those first. Done means the census claims are updated and the wait_census test plus the frame-by-frame scene tests pass against the US image.

Written by the indexing model from the issue text.

Description

later

Child of https://github.com/TusanHomichi/PSIV/issues/571. Finish only this task in one fresh session and one PR. The parent's original authorization boundaries still apply; this child grants no additional authority. Do not read earlier sessions' transcripts.

Child of #571; deliver one PR limited to Event_StrengthTowerTop and Event_CourageTowerTop in rust/psiv-core/src/scenes/dezo_endgame.rs, their timing support, tests and census claims. Read #470, #519, #565 and open PR #566. Await #519's census publication and relevant camera changes when necessary; do not repeat their work.

Make the tower waits block for their US retail counts and execute the correct update loops. For Strength, add the four 15-frame waits at $070E7C/$070E9E/$070EC0/$070EE2, the missing 4/60/30/20/6/30-frame waits at $070F16/$070F28/$070F30/$070F60/$07100C/$0710B2, and both eight-pass Event_StepObject loops at $070F44/$070F58. The steps run map updates without Field_UpdateObjects. Place the $0710DE 60-frame wait after the speed-8 pan, EnemyKilled sound and 30-frame wait. Coordinate that overlapping wait with #565; leave the missing pan back itself to #565.

For Courage, add the four initial two-frame waits, the second round of four $2BC spawns and two Foi sounds at $0711FE..$0712CF, its four two-frame waits and ten-frame wait, and the missing two- and twenty-frame waits at $07139E/$0713F0. Leave the final $071426 thirty-frame wait and missing closing pan to #565.

Establish or reuse one explicit update-policy path sufficient for these repairs: main updates, map updates without field-object updates, and VInt-only waits. Verify the runtime executes that policy. Do not migrate unrelated scenes or take over #470's full census. ObjectAnimation metadata alone must not count as blocking.

Confirm US retail bytes rather than fork rewrites. Preserve protected local inputs and existing gameplay outcomes; grant no deployment, publication or additional authority. Any deliberate omission requires its offset and reason in docs/source-notes/README.md. Update every assigned census claim to an accurate plain Wait or Within claim when implemented. Do not close #571 while other repairs remain.

Verification: Through the documented heavy-run lock, run cargo test --manifest-path rust/Cargo.toml -p psiv-core --lib wait_census with the US image and focused tests that drive both scenes frame by frame. Assert spawn/sound/wait order, both eight-pass steps, completion boundaries and final flags. Add a runtime regression proving Field_UpdateObjects advances during main-update waits and stays idle during map-only and VInt-only waits; distinguish map-update behavior too. Demonstrate the timing and policy checks fail against the original defects. Run affected core/runtime tests and documentation checks.

If this is too big, publish any progress, split it with proj split FILE (a JSON array of title/body/check tasks), then end the session. Wait for the PR to land before declaring this task done.

Dominant language
Rust
Stars
1
Forks
0
Avg merge
8h 43m
Merged PRs (30d)
288

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from TusanHomichi/PSIV

All issues in TusanHomichi/PSIV

Similar issues

More Rust issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.