D330 (#103): mouse no longer drives the stick inside the in-level watch

Auto-Aim / Look Ahead "wouldn't stay on": in the watch, current_menu is
still RUN_STAGE and hipDirectCompute declines on its !watch gate, so mouse
motion fell through to the legacy stick fallback (~3 counts/px/poll). A
~15 px flick crossed the watch's +/-0x2E threshold, which on a selected
option picks OFF/ON (game_option_toggle_input) and otherwise flips pages.
The mouse now contributes nothing while the watch is open or paused;
keyboard and pad drive the watch as before. Save/load round trip ruled out.

Build clean; bunker1 golden 3/3. Mouse feel-check owed (needs real motion).
This commit is contained in:
James Dansereau committed 2026-09-23 11:09:52 -04:00
1 parent f89311e9e3
commit c1b5b6e519
4 files changed
+45

No files matched your search

+8
View File
@@ -564,6 +564,14 @@ through a converter or a runtime bswap fixup reads scrambled.
- Controller state has one source: `port/src/input.c`. `libultra.c`'s SI
section marshals `inputComputePad()` into `g_contPad[]`; it is driven by
`osContStartReadData` (per logic tick), no separate `video.c` frame hook.
- **The in-level watch/pause is not a "menu" to `input.c`** (`current_menu`
stays `RUN_STAGE`), but it reads the stick as **discrete** input: ±0x2E
on X picks an option value or flips a page, and Y scrolls rows. Any path
that turns a continuous device (the mouse) into stick deflection must be
gated off there (`!outside_watch_menu || pause_state`), or small hand
motion becomes phantom menu choices. D330/#103: mouse → legacy stick
fallback silently reset Auto-Aim/Look-Ahead to OFF. The direct-write
look paths already gate on this; the fallbacks must too.
## D. N64 hardware idioms fast3d does not emulate