Dual Inputs (N64 and GameCube) Working for the First Time!
Now don't get too excited. If you've already pledged, it still means you won't get a secondary GameCube input by default. The reason for this is I had to remove several features, as well as re-write a few things in order to get it to even fit in the CPLD!
In order to get it to work currently, I have to remove Rumble Pak support, and the input display feature. Since I already said that these features would be provided, yours will still have them by default. However... some people might prefer a dual inputs rather than these features, so looking forward, I might give backers the option to have a secondary GameCube input, but at the cost of both Rumble Pak support, and the input display feature.
More testing needs to be done, but if you want a GameCube input, it's certainly a step in the right direction!
In case you're wondering, there is still effectively no input lag when compared to using a GameCube controller directly.
Now... onto how it works!
Now, since the GameCube joystick has both a different range, and is shaped differently to the Nintendo 64 joystick... I've had to create yet another mapping function of my own in order to get it to work properly. Now don't worry... my mapping function actually makes sense! It simply scales the x and y values such that the outermost values of the GameCube stick will map as close as possible to the outermost values of the Nintendo 64 stick range.
After mapping the GameCube stick values to the most appropriate N64 stick value... these values are passed through the adapter's inverse mapping function, undoing the Wii VC mapping. The overall effect of this process is that the Wii VC mapping function is replaced with a very subtle mapping function of my own, which maps the entire possible range of GC the joystick, to the entire possible range of the N64 joystick. No squashed range, and no awful deadzone!
The plots below show the outside range of the GameCube stick, Nintendo 64 stick, as well as what the GameCube stick looks like after going through my mapping function.
From the testing I've done, it seems to work very well... though more thorough testing definitely needs to be done! Please let me know if you have any questions or comments.