It's not hard to hook up N64 controllers to your PC and use those with the emulator.
Actually,
Mario Kart 64 is one game that shows how inadequate emulators are.
On my old N64, one of the nicer-looking unlicensed controllers I tried was called "The Rock." I noticed that it allowed a range of motion that was slightly higher than a real N64 controller. In
Blast Corps, pushing the stick all the way would cause your character to do a backward moonwalk if you were in a walking vehicle or on foot. You could duplicate it with a regular controller by deliberately messing-up the calibration (centering). In
Mario Kart 64, that controller would cause random spin-outs while driving. You would suddenly hear a sound like you ran over a banana peel. You can even cancel it before spinning out by tapping the brake (just like a banana peel).
I noticed that emulators ALL allow you to over-steer and they ALL have this problem in
Mario Kart 64. Even Nintendo's own emulated versions (Wii Virtual Console) do it.
In Zelda, you can rotate the stick 360 degrees and press B to slash your sword. This would do a quick spin attack that doesn't use magic. It's much harder to perform the move on any emulated version.
There used to be a solution: The N64 Adaptoid. You had to install the optional driver to get the direct-access API, then use an emulator that supported an Adaptoid input plug-in. This also allowed you to use a real, physical Memory Pak, Rumble Pak, 64GB Pak, Microphone Pak, etc.
Unfortunately, the driver was never updated for 64 bit and I'm not even sure if it worked with XP.
I believe this problem should actually affect all emulated platforms. If you use an adapter with a console controller, there's a mathematical algorithm that converts the circular axis to a square axis, losing some precision in the process. Then, the emulator converts a square axis back to a circle axis and even more precision is lost.
I really believe we need drivers with direct-access APIs for ALL console adapters, but I've never seen another one that did it.