First, you copied what you said originally but changed GC joystick to 3DS joystick. You've changed your original still unproven theory.
Second, there is no "BIG TIME" design flaw. It wasn't intended to work with GC controllers. It is a 3DS stick, it is designed to work on the 3DS, and honestly nothing else. Same with the PSP stick. Sure, it's similar. But touch screens are similar too. We can get them to sort of work, yes, but as you can see, it doesn't work fully.
The same applies to all swapped joysticks on all controllers. Normally that's a mod only seen on n64s, and it usually works out fine due to the n64 joystick era. An era full of broken joysticks. An era where programmers used bigger deadzones. Meaning? Joystick swapping allowed for more error in values. That said, actual joysticks are waaay more balanced than nubs, so...that has a lot to do with it too. That's where range becomes more of an issue than deadzone.
Third, resistors have nothing to with the range, they never did, although I think they can. Again, things I'm testing. They had to do with balance in my application.
Fourth, the microcontroller thing could work, but why when we can change the range and the deadzone through easier methods. Go ahead and make a bunch of boards, populate them and sell them. If they work great, great. Do that. I don't care. I cant stop you.
---
Let's talk about the problems we are facing, and a bit about what I learned last night.
The 3DS nub doesn't have the full range of the stock GC stick. As ashen said, he was getting like 111's with the GC stick and 90's on the 3ds stick. That's pretty Dang close, and I seemed to get good results when I played my games, so I'm thinking range is probably good, a little improvement probably wouldn't change much, but it'd be nice.
The 3DS nub doesn't have equal resistance on each axis. This isn't too much of a problem, because of how the controller works, and how it marks the "centered" voltages. Tests last night with Herma confirmed that even though each center voltage on each axis was different, pushing it along the axis each way(ie, fully up and fully down) still produced even voltages at the ends of each axis. The problem? The centered voltages change. This is where deadzone comes in.
Let's say you boot up your GC, and the controller recognizes that the 3DS stick's center voltages are 1.5v for the Y and 1.7v for the X. Not a problem, right? Okay, we move the joystick, doesn't matter where or how(well it kinda does). It returns to the center. Y is now 1.7v and X is now 1.5v. The controller now thinks, based on the center points it registered at bootup, that the joystick is being moved. EVER SO SLIGHT but still moved. This. This is crawling/ghost movement. And it's not a flaw in the joystick, because it wasn't designed to be a joystick. It was designed to be a slide pad. And it was designed to be used in a 3DS, which takes this into account. A GC controller doesn't.
How do we solve this? I'm testing out tons of theories, but so far I'm pretty sure it /should/ be achievable through a combination of resistors and the right voltage. I've got a ton of numbers to work with. Essentially, the goal is making the 3ds stick more like the original GC joystick, which is what the controller and games are programmed for.
At the same time, taking a page from the N64's book is totally a viable option, using a 3rd party controller can potentially produce completely different results. Essentially, my theory is that there are two deadzones. There is one coded into the controller, and there is one on each game. The objective is to get the joystick compatible with the controller, thus compatible with every game.
SS