Skip to content

Add Manual Jump, configurable native fence traversal, and fix 3D scene loading - #15

Open
Zadder wants to merge 2 commits into
linkzenic:android-9.3-integrationfrom
Zadder:codex/manual-jump-9.3
Open

Zadder wants to merge 2 commits into
linkzenic:android-9.3-integrationfrom
Zadder:codex/manual-jump-9.3

Conversation

@Zadder

@Zadder Zadder commented Oct 11, 2026 •

Copy link
Copy Markdown

Add optional Manual Jump and configurable native fence traversal

This adds a bindable grounded Jump action and a choice between automatic and manual low-obstacle traversal. With Manual enabled, running into a low fence stops Link; moving into it and pressing Jump uses the existing native vault or short step-up. The latter also covers the Kokiri training fence as child Link.

It also fixes a scene-loading crash when Disable 2D Pre-Rendered Scenes is enabled. The enhancement's temporary SetTimeSettings command had null resource metadata; IResource dereferenced that metadata when tracing its destruction. Constructing the command with metadata prevents the crash while retaining the existing time/skybox logic and keeping the option enabled.

Behavior

  • Manual Jump is opt-in under Settings > Controls. Unchecking it restores vanilla automatic jumps and obstacle traversal regardless of the saved vault mode.
  • The Bindings shortcut opens the existing Link (P1) input editor. Vaulting Mode sits directly under the Jump binding and persists through the normal CVar system.
  • Vaulting Mode defaults to Manual when unset; explicit saved Automatic choices remain respected.
  • Native obstacle classification, eligibility, animation and movement are reused. Manual traversal requires forward movement into a native candidate. A 180 ms buffer waits for the native approach timer while a candidate is already detected.
  • Explicit A-button climbing, tall climbs, ladders, water exits and ledge grabs retain their existing behavior. Normal manual jumps use the vanilla initializer, preserve horizontal speed/yaw and apply a minimum vertical impulse of 6.0.
  • The custom action uses bit 24; PadMgr press/release calculations preserve the full controller action mask.

Validation

  • Android 9.3 debug APK built successfully and installed on an MI 8.
  • Focused harness extracts production functions and passes jump eligibility, input edges, native action priority, buffer acceptance/expiry/cancellation, disabled fallback, short step-ups, and preserved tall/A/water climbing. Geometry and engine services are doubles.
  • On-device child-Link tests at the same Kokiri fence: two movement-only attempts blocked in Manual; moving plus touch-overlay Y Jump triggered the native step-up; Automatic allowed movement-only traversal; disabling Manual Jump with Manual saved restored movement-only traversal.
  • Earlier adult-Link tests verified native low-fence vaulting, Manual suppression and Automatic/disabled fallback. The later child-step-up correction was checked separately as described above.
  • Reproduced a native null-pointer crash loading a valid imported save into Link's House with Disable 2D Pre-Rendered Scenes checked, the user's 45 Djipi/Art Plus mod archives staged, and screenshot-derived graphics/camera settings applied. The crash stack passed through the AfterSceneCommands hook and IResource destructor.
  • The corrected APK built successfully and loaded the same save with that option still checked and the mods/settings retained, including after force-stopping and restarting the app. Link's House, Kokiri Forest, animated Link in the equipment pause menu, and a stationary manual jump were checked. The focused Manual Jump harness also passed again. This is focused mod validation on one phone, not exhaustive scene or mod compatibility testing.
  • Broader movement and physical-controller QA is still needed. This is not exhaustive compatibility testing.

Disclosure and scope

The requester does not know how to code and used GPT 6.1 Sol to implement this contribution. The implementation is AI-generated and is submitted for human review. The requester has tested the resulting build and confirmed the fence behavior works, but does not intend to maintain a separate fork.

This targets android-9.3-integration, based on v9.3.0-android.1 (547a7fd2013c2236c28ee5bfc15f4e13815f4552). No game data, signing keys, generated APKs, personal saves/configuration or engine-submodule changes are included. The normal Android submodule patch was used only for the local build. Documentation and a reproducible source harness are included.

@Zadder Zadder changed the title Add optional Manual Jump and configurable native fence traversal Add Manual Jump, configurable native fence traversal, and fix 3D scene loading Oct 11, 2026
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