Skip to content

Fixed Gyro not working - #8

Merged
Kenix3 merged 1 commit into
HarbourMasters:developfrom
MelonSpeedruns:gyro-fix
Mar 22, 2022
Merged

Fixed Gyro not working#8
Kenix3 merged 1 commit into
HarbourMasters:developfrom
MelonSpeedruns:gyro-fix

Conversation

@MelonSpeedruns

Copy link
Copy Markdown
Contributor

No description provided.

@Kenix3
Kenix3 merged commit ae05072 into HarbourMasters:develop Mar 22, 2022
PurpleHato referenced this pull request in PurpleHato/Shipwright Jun 4, 2022
leggettc18 referenced this pull request in leggettc18/Shipwright Jun 30, 2022
leggettc18 referenced this pull request in leggettc18/Shipwright Oct 18, 2022
briaguya0 pushed a commit that referenced this pull request Dec 11, 2022
* Initial Auto-Location Tracking

* Updates styling for checked items in Check Tracker

* Fixes crashing issues with Check Tracker rendering

* Auto scroll Check Tracker windows to current area

* Checks Tracker only shows checked locations once in game

* Fixes issue where Check Tracker would auto-scroll to wrong location when entering a grotto

* Fixes gerudo fortress checks showing in tracker when settings have them removed

* InfTable Check Location Fixes: Lost Dog Richard, Rolling Gorons, HBA 1000, Thawed Zora

* Fixes most Event Chk Inf Checks on Check Tracker, and Frogs

* Check Tracker - Song from Malon now works

* Check Tracker
- Fixes Claim Check check not tracking
- Fixes spoiler for Claim Check check when getting Biggoron's Sword
- Fixes LACS being spoiled and not tracking

* Check Tracker - Fixes #2 for Skull Mask and Mask of Truth checks

* Check Tracker
- Adds support for merchants
- Fixes #7 for Bomchu Salesman
- Fixes #12 for Medigoron

* Check Tracker - Fixes #8 for Song from Saria

* Check Tracker - Fixes #9 for Adult Shooting Gallery

* Check Tracker - Fixes #10 for Composer Grave

* Check Tracker - Fixes #14 for Song from Ocarina of Time

* Check Tracker - Fixes #16 for Shooting the Sun

* Check Tracker - Fixes #19 for Darunia's Joy

* Save Editor - Adds missing label for Treasure Chest Game

* Check Tracker - Fixes Great Faries checks

* Check Tracker - Fixes Sheik at Temple

* Check Tracker - Fixes Great Fairy auto-scroll to wrong location

* Check Tracker - Updates blue warp checks
- Fixes Bongo Bongo and Twinrova checks

* Check Tracker - Fixes Dampe's Gravedigging Tour

* Check Tracker - Fixes Prescription to King Zora

* Check Tracker - Fixes Bazaar showing under wrong area on tracker between adult/child

* Check Tracker - Fixes scroll for Hyrule Market and Bazaar

* Check Tracker - Fixes giving Adult Trade Items shown on tracker: Broken Sword, Saw, Cojiro, Eyeball Froge, and Eyedrops

* Cleans up item_location

* Check Tracker - Item List
- Fixes item list not updating when changing seeds/options
- Separates item exclusion list from item check list
- Clean up comments

* Check Tracker - Adds Skip functionality to buttons

* Check Tracker - Refactors adult trade items to RandomizerInf

* Check Tracker - Fixes an issue where any time an item is removed the tracker would cause an application crash

* Check Tracker - Item names are now dependent on file language

* Check Tracker - Fixes Gerudo Card check not showing in Fast setting

* Reorders headers to (hopefully) avoid CI build conflicts on linux/consoles

* Explicitly defines vector header in randomizer.h to fix compile errors

* Complete Refactor of Check Tracker ImGui

* Adds missing check tracker files to CMakeLists

* Reverts the Item_location whitespace cleanup from ad10807

* Check Tracker - Loading Fixes
- Fixes a bug where loading a save file a second time would add all the checks again
- Fixes a bug where the check tracker would not render at all until in a save file

* Check Tracker - Fixes a bug where checks would sometimes fail to load

* Check Tracker - Fixes duplicated checks when using Only on Pause or Only on Combo

* Check Tracker - Works around issue where single characters don't show in EnhancementCombobox, and fixes a label for combo buttons held option

* Check Tracker - Applies all Check Tracker changes to Item Location

* Check Tracker - Updated Check List
- Adds Link's pocket, either in KF or HM depending on starting age
- Supports Scrubs and Merchants
- Uses enums instead of magic numbers
- Updates DC Scrub Short Names for MQ

* Check Tracker - Adds a performance mode option

* Check Tracker - List Fixes (requires new rando generation)
- Fixes Frogs Rupees always visible
- Fixes Kokiri Sword Chest not showing
- Fixes Weird Egg not showing

* Check Tracker - MQ List basic support

* Check Tracker - MQ/Vanilla anti-spoilers

* Check Tracker - Collecting a compass now spoils the area

* Check Tracker - Basic Vanilla Support and fixes
- Vanilla items show in check tracker, even if many won't auto check
- Fixes an issue with Gerudo Fortress Keys
- Refactors IsVisibleInCheckTracker to randomizer_check_tracjer

* Check Tracker - Fixes merge conflict from 08a487f

* Check Tracker - Fixes tracker loading as Floating when default value is set to Windowed

* Randomizer Location Exclusion List
- Adds Scrubs, Merchants, Shops. Adult Trade items, MQ Dungeons, and Bean Salesman
- Fixes Kokiri Sword Chest, Weird Egg, and Frog Song Rupees from misbehaving
- Updates Gerudo Fortress logic to be dependent on Open/Fast/Normal Fortress
- Removes Invalid Check
- Adds RO Enum for MQ settings
- Updates magic values to RO enum

* Location Exclusion List - Scrubs that are always randomized now always show on the list

* For now, removes some extra code only needed for a Check Tracker.

* Randomizer Location Exclusion List - Fixes Eyeball Frog from showing up when Adult Trade Items was off

* Location Tracker - Updates Eyedrops to use RandomizerInf instead of Chest

* Check Tracker - Fixes a bug where Link's Pocket item wasn't acting as checked for area item count

* Check Tracker - Fixes a bug where Locations would incorrectly say Vanilla due to the first check in the area being a non-MQ check

* Check Tracker - Fixes a crash when Check Tracker is docked but not visible

* Check Tracker - Fixes areas being spoiled when loading different save files

* Check Tracker - Only reset variables if they are initialized

* Check Tracker - Cleans up old comments, unused variables, methods, and macros, adds language TODOs,

* Check Tracker - Readds rainbow UI elements after Cosmetics Editor refactor

* Check Tracker - Removal of flag lookup that was refactored, no longer needed header, and some trivial whitespace fixes.

* Check Tracker - Refactors Index to Bitmask code to a macro

* Check Tracker - Changes ordering from alphabetical to RandomizerCheck ordering

* Check Tracker - Wraps everything in a namespace to avoid global variable usage

* Check Tracker - Explicitly defines for-loop scope

* Check Tracker - refactors dungeon lookup from static array to function

* Fixes a bug when using EnhancementColor with alpha

* Check Tracker - Refactors all colour to use direct conversions

* Check Tracker - refactors settings loading and check visibility for readability

* Check Tracker - Fixes a bug where the wrong label showed on the Check Tracker BG Color

* UIWidgets - Adds Alpha bar to EnhancementColor when using alpha parameter
lilacLunatic referenced this pull request in lilacLunatic/Shipwright Jun 13, 2023
Add Master Sword GI draw func based on ToT MS object
EricRobitaille pushed a commit to EricRobitaille/Shipwright that referenced this pull request Jul 26, 2023
Malkierian referenced this pull request in Malkierian/Shipwright Nov 20, 2023
Adds ability to save configuration data to an ini file.
Malkierian referenced this pull request in Malkierian/Shipwright Nov 20, 2023
* Organizes libultraship files into directories.

* Adds StormLib, ZAPDUTILS, and tidies up /lib/

* Moves include up a directory and moves abi.h to include.

* Fixes gitignore to only ignore build folders, and commits forgotten files.

* update CMakeLists and `#include`s to match directory structure

* Windows CMake now builds project files.

* Restructure CMake project

* feat: sdl via vcpkg (#1)

Co-authored-by: briaguya <briaguya@alice>

* Build via VS generator

* Use ccache for faster building

* Error CI workflow on no lib generated

* Remove unused lib (mINI)

* Update embedded lib (nlohmann-json)

* Cleanup main CMakeLists.txt

* Remove unecessary header

* Use Ninja for MSVC

* Update embedded lib (spdlog)

* Update embedded lib (StormLib)

* Improve CMake structure

* define NOMINMAX for certain windows files

* Add and run clang-format

* Add and run clang-tidy

* Add CI workflow for clang-format/tidy

* Split CI workflows

* Use new format validation

* Fixes typos preventing patch OTRs from working on Switch (#8)

* Removes third party BinaryTools and re-implements and reloacates ZAPDUtils Binary Tools. (#7)

* Removes third party BinaryTools and implements ZAPDUtils' into LUS.

* Attempts to make the Linter happy.

* Another run of linter fixing improvements.

* Should be last linting-related change.

* Fixes tidy-format-validation to only check src and include directories in the git diff

Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Christopher Leggett <chris@leggett.dev>
inspectredc pushed a commit to inspectredc/Shipwright that referenced this pull request Nov 30, 2023
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 20, 2026
…e arms

The N64->OoT3D retarget left child Link's head pitched fully down (looking at
the ground) and both upper arms reaching forward / splayed out, in n64-anim mode
(the default). Root cause: the auto-derived per-bone constant corrections for the
head (b10) and shoulders (b14/b18) were wrong — a single side-view check hid that
the arms were abducted (a forward-reaching arm foreshortens to 'hanging' from the
exact side).

Hand-woven vs the OoT3D own-CSAB ground truth (linksrc 3ds):
- b10 head: C(zyx)=(6,2,-126) levels the head (was -86, ~40deg short).
- b18 right shoulder / b14 left shoulder: mode-2 mirror pair C=(-148,+-20,+-62)
  brings the upper arm down AND in (not forward, not splayed).
Validated from 6 idle angles AND across the walk cycle (constant correction does
not stiffen locomotion). Legs/neck/forearms unchanged.

New tooling: REPL 'linkpin <0|1>' pins the player's world pos+yaw each frame so
the view is byte-deterministic across linkcorr tweaks (linkfreeze alone left Link
free to idle-turn and desync the comparison).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015KmgkqKbUPLjaZ7P2JUmSy
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 20, 2026
…ro tooling; re-diagnose

Reverts the SoH3D_PosedBoneWorldPos cache-based held-actor attach from
b7071a6. That approach was wrong on two counts: (1) it recomputed the hand
position from the render-side skin cache (a workaround, not a real attachment),
and (2) it was verified against a FAKE carry state — the linkcarry tool only set
the held-flags, never the real carry action, so Link's arms were never raised.
A real-pickup playtest showed the cucco floating at Link's chest with arms down.

Real diagnosis (now with a working real-pickup harness): the visible HarbourMasters#6 bug is
that the 3DS Link rig does NOT reproduce the carry (arms-overhead) pose, in BOTH
anim modes. The carry arms-up pose IS present in player->skelAnime.jointTable at
draw time (dumped: L/R_SHOULDER limb-14/17 Z rotation goes idle 31504/32608 ->
carry 3749/4082, a ~150 deg swing — the upper-body carryB anim composited via
AnimationContext_SetCopyTrue). N64 Link composites + draws it (arms up); the
kLinkChildBoneCorr shoulder retarget (b14/b18 mode-2 constant C, hand-tuned for
idle/walk in HarbourMasters#8) cannot reproduce a pose that far from idle, so the 3DS arms stay
down. HarbourMasters#6 is therefore gated on the shoulder retarget being correct across the
full pose range (deepens HarbourMasters#8) — not on held-actor positioning.

Keeps the genuinely reusable tooling: REPL `linkgrab [frames]` drives a REAL
cucco pickup headless (asel the cucco, then linkgrab holds it in front of Link
and injects fresh A rising edges until heldActor is set — the engine's real grab
action then fires, B shows Throw). This is the reliable repro the kanban rule
requires before any fix. Drops the misleading linkcarry/linkheldfix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013iagTYD2yxSsoBfjQBcSzk
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 20, 2026
…d_link.cpp (dedicated handling + hand-weave)

Pure refactor: move all 3DS-Link-specific policy out of the catch-all soh3d.c
into a dedicated soh3d_link.cpp + soh3d_link.h, so Link has its own special
handling and hand-weaving home (the low-level CMB skeleton FK stays in
soh3d_model.cpp as a render primitive that link.cpp calls).

Moved: SoH3D_TryDrawPlayer, the equipment mesh-id mask (LinkBoyMidMask/
ComputeMidMask), the bonecorr table + hand-weave state (gLinkBoneCorr, pose
freeze, EulerToMat3/Mat3ToEuler, SoH3D_LinkBoneCorrEnsure), linkpin
(SoH3D_LinkApplyPin), the cucco-grab repro driver (SoH3D_LinkWalkInject), and
all 14 link* REPL commands (SoH3D_LinkRepl, dispatched first in the REPL chain).
Exposed the shared helpers (SoH3D_ReplReply/SceneTint/ResolvePlayerCsab/
WalkN64Skeleton + a few globals) via soh3d.h with a proper extern "C" guard.

Also adds retarget mode 5 = conjugation C·R·C⁻¹ in soh3d_model.cpp — a basis
change (vs the one-sided mode 2/3 constants that are only right near the tuned
pose), the tool the carry-pose hand-weave will use so a single hand-tuned C
holds across idle/walk/carry.

Behavior preserved: builds clean; 3DS Link draws idle identically (verified
live, Kakariko), linkcorr table intact (HarbourMasters#8 values unchanged).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013iagTYD2yxSsoBfjQBcSzk
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 20, 2026
The HarbourMasters#8 mode-2 shoulder corrections posed idle correctly but left the LEFT
arm hanging when carrying a cucco. Root cause: the N64 jointTable's two
shoulders are a sagittal mirror at idle (L upper-arm Z ~ +180 deg, R ~ -180)
but NOT a mirror in carry (both ~ +20 deg), so a single 3-DOF C tuned to the
idle mirror cannot also route the carry swing for both arms.

Re-derived the six arm bones (b14/b15/b16 left, b18/b19/b20 right) to mode-4
(C*R*C2) via the new two-pose Procrustes fit: each bone's idle output is
pinned to its prior value (idle unchanged) while carry is mapped to OoT3D's
own nml_carryB_wait CSAB pose. Verified live in N64 src: idle arms down,
walk arm-swing natural, carry arms raised. Multi-angle.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015qR4D4AifkFpYtqgauSR9P
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 20, 2026
… toggle (default OFF, unverified)

Root cause confirmed + quantified for the "3d3 Link teleports while climbing"
report: SoH3D_PosedGroundOffset grounds the LOWEST visible posed vertex to
actor.world.pos.y. That vertex is a planted foot only while standing; the
climb poses raise a foot/knee, so within nml_climb_up groundOff oscillates
cyclically (-1095..-1715, a foot lifting/planting) and across climb clips it
swings far wider (climb_upL -2644, upR -4193, startB -8443 vs idle -1263) =
up to ~93 world units at scale 0.011. Non-climb poses (down/hang) stay stable.
The cyclic in-clip oscillation proves the grounding is mis-tracking a moving
climb foot -> the body bobs/teleports vertically while climbing.

Fix: gate on the climb CSAB name and freeze groundOff to the last non-climb
value (continuous with standing, no jump at entry). REPL `climbgroundfix 0|1`
A/B toggle. DEFAULT OFF: the freeze direction is NOT yet live-verified on a
real sustained climb (every reachable ladder void/transitions; flat-ground
walls fail the grab-ledge gate) and a forced-pose-on-flat-ground A/B can't
resolve correctness without the real climb's rising actorY. Off = no behavior
change until verified. N64-retarget path (linksrc 1) untouched (that's HarbourMasters#8).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014PQT4mzuxBUj58CYDjJGTQ
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 21, 2026
…ived upper-body retarget)

Root cause: the prior bonecorr table's head bone b10 carried a hand-woven
correction that TWISTED the whole upper body ~126deg and pitched head/chest
forward (b10 is the OoT3D CHEST -- head AND arms hang off it), so 3dn Link
looked at the ground with arms crossed in front. And the arm rows' mode-4
carry-fit pinned its IDLE constraint to the item-B idle / old output, leaving
PLAIN idle (nml_wait) unconstrained -> crossed arms.

Fix: head/spine/legs are now the quantitative idle-fit vs OoT3D's own idle
CSAB (soh3d_link_retarget_derive, residual ~0.1) -> head level, torso
untwisted, arms hang. The 6 arm rows are re-fitted mode-4 against TWO real
OoT3D ground-truth poses -- plain idle (nml_wait_free, IDLE_FROM_CSAB=1) AND
carry (nml_carryB_wait) -- so one correction serves HarbourMasters#8 idle (arms down) and
HarbourMasters#6/HarbourMasters#85 carry (arms up). ~0.8 residual is irreducible (Grezzo re-authored the
arm motion at a different magnitude than N64).

VERIFIED live (3dn): plain idle front+side (head level, arms at sides), walk
cycle (legs cycle, arms swing, no stiffening).

Tooling: REPL `linkcorr limb <bid> <n64limb>` remaps a bone's driving N64
limb live (was rebuild-only) for structural-mismatch testing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KffNLJBceMD3PUaG8t5Ck3
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 21, 2026
…asters#86)

Per "trace via animation state, not eyeballed pixels": dump Link's live anim state so a
transient is read as a numeric discontinuity. Reports the resolved base+upper CSAB,
curFrame/animLength/playSpeed/morphWeight, upperLimbRot (the literal upper-torso euler),
headLimbRot.y, shape.rot.y/yaw/focus.rot.y, and speedXZ. Driven under freeze/step.

HarbourMasters#86 finding (quantitative, Kokiri, 3d3, freeze/step): the walk-stop transition is CLEAN
across straight / full-run / angled-turning stops:
- CSAB sequence is proper: nml_run_free (speed-driven loco) -> nml_walk_endR_free settle
  (curFrame 0->10) -> nml_wait_free idle.
- shapeY/yaw ramp smoothly into the walk direction at the START then HOLD constant through
  the stop -- no yaw snap. upperLimbRot.y stays 0; focusY shows no stop-time discontinuity.
- No ~90deg torso snap reproduces. Matches HarbourMasters#70/HarbourMasters#83: the 3d3 transient cluster appears
  resolved by the prior HarbourMasters#7/HarbourMasters#8 work.
- Lone latent nit (NOT the cause): walk_end settles match the isLoco "walk" strstr so they
  are speed-driven for 1 frame at the stop -- but only ever at curFrame=0, so visually
  identical to the one-shot path. Left unchanged (no observable effect to fix).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018qR9VBpgoWRQCNew29Wooe
SomeoneIsWorking added a commit to SomeoneIsWorking/Shipwright that referenced this pull request Jun 21, 2026
… root cause)

The OoT3D bone map was verified vs the live game (oot3d-decomp/docs/link_bone_map.md):
the spine in this table is shifted one bone too low — b10(chest)<-HEAD, b11(head)<-HAT.
Correct = b9<-UPPER, b10<-rest, b11<-HEAD, b12<-HAT. Documented in the header; data not
changed yet (shipped idle is confirmed fine; the fix touches the live retarget path and
must be gated on tools/soh3d_anim_qa.py).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SBKMRMqmp4X6qEMEd8y7jf
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.

2 participants