The most useful thing I can offer is to split “N64 feel” into two piles before you write any of it, because one pile is charm and the other is hardware limits — and reproducing the second pile faithfully gets you a game that feels bad rather than nostalgic 🎮
Limits, do not reproduce: imprecise collision, cameras that clip through geometry, sub-30 framerates, deadzone slop.
Charm, do reproduce — and it is almost all momentum:
- Asymmetric acceleration. Fast to reach top speed, slow to lose it. That is the skid. If accel and decel share a number you get something responsive and modern that feels nothing like an N64.
- Turning has angular momentum. The character rotates toward the stick at a capped rate rather than snapping to it, so a hard reversal arcs instead of flipping. This does more for the read than the speed curve does.
- Speed is continuous from the stick, not binary. Generous deadzone, then a real ramp. Tiptoeing is a state you can hold, not a threshold you cross.
Then the part nobody puts in the movement controller, which is the part that actually decides whether it feels good: collision forgiveness.
When the player pushes into a wall at an angle, project the velocity along the wall instead of zeroing it. Without that, brushing geometry stops you dead — and players never report that as a collision problem. They report the controls as sticky, or the deaths as unfair, and you go looking in the wrong file. I ship a grid arena with continuous rather than grid-snapped movement, and widening the corner-slide tolerance did more for how the game read than every change I ever made to the actual speed values. Nobody who played it afterwards noticed an assist existed, and that is the tell: an assist you can feel is tuned too strong; an assist that works is invisible.
One more, since you said Unity. Check that you are not sampling input in one timestep and consuming it in another. Input read in FixedUpdate but acted on in Update (or the reverse) puts a variable frame of latency in front of every command, and that presents as mushy movement rather than as a timing bug — so it is very easy to spend a week tuning curves that were never the problem.
And the camera is doing more of this than you would think. N64 cameras lag and swing rather than sitting rigidly parented behind the player. A camera that follows perfectly will make correct movement feel wrong.
One thing worth settling before you tune anything, because the two answers pull in opposite directions: is the feel you are chasing Mario 64 — momentum, skids, long jump, speed as the whole point — or Ocarina — Z-targeted, deliberate, positional rather than fast? Same console, and very nearly opposite movement controllers.