I just got last week my new logic analyzer: http://www.pctestinstruments.com/
Awesome little device!
I've been using the original Cube64 adapter made by Micah Dowty back in 2004 to play my N64 games since 2005. Since then I've saw several bug and some frustrating limitation.
So in an attempt to improve the Cube64 adapter (and playing with my new LA ;) ) I decided to create a project called Cube64-DX:
http://code.google.com/p/cube64-dx/ <= This is a URL (I hate how the forum display link)
So far what I've done:
1- Added support to "legacy" n64 0xFF command used by early n64 games like Mario 64, SW: Shadows of the Empire, Cruis'n USA.. This command ask for controller identity just like to more conventional 0x00 command.
2-Some game like Cruis'n USA don't like the rumble pak and you end-up in a error screen of death ;) To pass this screen you need to remove the rumble pak and reset the game. Obviously you can't do that with an GC controller. So I added a little key combo (AL+AR+X) so you can set the controller to display as a controller with empty slot. Doing this on boot of Cruis'n USA allow to avoid the error screen. This can be also used to simply disable the rumble feedback too.
3-Added support to PIC12F683 since their is not much space to add more instruction into flash in previously supported PIC.
4- Added support for the Wavebird, this needed a special init to work.
5- Added the ability to save up to 4 keys map preset. Using the combo keys AL+AR+"one of the key pad direction" you can select one of the 4 presets into the eeprom. You can change the key map as usually. When you switch to a preset it is saved in the eeprom so next time you boot the last preset you used will be load automatically!
Personally I use this to have a different key config for platform game, racing, fps, combat.
The only bug left I guess is that rumble emulation don't work with golden eye, I took a look with my LA and I saw that the game made several read/write to the rumble pak with somewhat random data. Currently the adapter support only sending CRC for write of 32 time the same byte which all CRC stored in a table. Unfortunately the current pic used are too slow to implement a real CRC.
To support golden eye rumble I will need to change for a faster PIC something running over 40MHz so I can implement the CRC for real.
I guess the 20MHz PIC are already pushed to their limit, the smaller one do not even have enough flash memory to add feature like wavebird and multi key map.
The only thing I could add is support for an hardware mux controlled by the PIC that could allow switching between the adapter and a real N64 controller. Why this? You could then put a controller pak into the real n64 controller and then when you need saving you just toggle the mux so the n64 can read/write to memory card, and then you switch back to the gamecube controller for playing.
For the version using faster PIC I plan to add the same thing at a software level, this way I could choose where to route each packet coming from the n64. Controller poll request would be keep for the adapter just like rumble command. But peripheral command like memory card saving/load, transfer pak, bio sensor could be routed to a real n64 controller without any action from the user.
With those fast PIC I guess I could also add 128k SPI eeprom on the adapter so I could have a 4 bank memory card emulated. Since those PIC have hardware I2C protocol I could also add support for the Wii classic controller as input in addition to GC pad.
BTW, I didn't tested the older PIC since I didn't received my mcirochip order yet ;)
I can only confirm that the 12F683 that I use to develop work perfect!! Anyway their is no reason to still use the older PIC since they are too small to hold the new features!