Files
goldeneye-pc-port/docs/input-and-aim.md
T
James Dansereau 1d15e5695a v0.5.0 final pass: AI and Deck fixes (D565-D567), docs and site refresh
Fixes:
- D565: AI awareness no longer follows two player render settings. Fog
  distance is floored at 100 (below it the shortened clip hid guards from
  AI on-screen checks); the D466 gameplay fog cull is rescaled to the game's
  own FOV (identity at defaults).
- D566: Steam Deck Game Mode no longer shows the on-screen keyboard at
  launch (SDL text input stopped; screen-keyboard hint off).
- D567: opening PC Options from the front end with a pad no longer drags
  the game's crosshair to the top-left corner.

Docs and site:
- README News/Status/Features/controls brought up to date; the unpublished
  v0.4.1 work is folded into v0.5.0 everywhere; stats to v0.5.0.
- Release notes reordered: player-facing highlights first, finding labels
  and verification at the bottom.
- Site status rewritten; favicon is now the exe icon (make_icon.py writes
  docs/favicon.ico).
- ROADMAP: AI review results, update-check follow-up, stale rows closed.

Verified: Windows + Linux builds; Windows pixel gate Surface 1 PASS;
Deck build deployed for the maintainer's Game Mode checks.
2026-10-06 21:06:48 -04:00

33 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: Input and aim
description: How the GoldenEye 007 PC port maps keyboard, mouse and modern controllers onto the N64's controller, including mouse aim.
date: '2026-10-05'
modified_time: '2026-10-05'
---
## Input and aim
`port/src/input.c` maps **SDL2 keyboard, mouse and gamepad** events into the
N64's own controller structs, so the game's input code runs unmodified.
**Mouse aim** is modelled on the *GEPD* mouse-injector behaviour that the 1964
"GoldenEye/Perfect Dark Edition" bundle used — an **independent
reimplementation** of that behaviour (not derived code), credited to its
author in the README. It comes in two styles, the N64's own aim feel or a
centered FPS-style, with per-device sensitivity, smoothing and Y-inversion.
**Controllers:** modern pads get a dual-stick layout, deadzones,
sensitivity, southpaw, trigger thresholds, Rumble-Pak vibration, and
PlayStation/Nintendo button names. **Everything is rebindable** — keyboard,
mouse and each controller — in the F10 options overlay. Split-screen needs one
controller per extra player.
**Control style** offers **Ext** (this port's scheme) or **Original**, the
game's own N64 styles 1.1–2.4, chosen per seat. New profiles start with
**Look ahead** off (it fights mouse look) and **Crouch** on Toggle; the
game's own Look up/down row was removed in favour of **Invert look** on the
Mouse and Controller pages.
*More: [internals](internals.md) §7 (input & saves); the aim model's
provenance is the D194 lineage in `port/src/input.c`.*