For people with Deal Extreme and other controller who don't work with Tantric or Henkp fix, i've found this, maybe you could give it a try. I don't have a 3rd party controller i couldn't test it myself i compiled with the fix for almost any controller but seem some need more config
ic3guy
Re: Snes9x 4.0.7 Classic Controller Issue
I figured out a solution for 3rd party classic controller problems. I am sure that the authors of libogc and wiiuse know how to fix it, but like it has been said many times in many places, to support x amount of versions of hardware would be a waste of time. Here is how you can do it on your own if you want. You need to have devkitpro and have the ability to build libogc.
There are two issues at hand. The 3rd party classic controller is not sending the correct "encrypted expansion id code" and also it does not send the proper calibration data. The 3rd party classic controller I got, worked fine in regular games but not in homebrew.
The first thing is to find the correct encrypted expansion id code.
In io.c (of wiiuse) in the function wiiuse_handshake_expansion add the following code above switch(id) in case 3.
printf("WIIUSE EXP_ID: %x\n",id);
Compile libogc. Then compile the devkitpro wii template example. ie: "Hello World". You can follow the codemii tutorial 2. Load up the template example on the wii. It should say "Hello World". Plug your third party classic controller into the wiimote. The id code should pop up. For my controller it was 98999900.
Now, go into wiiuse_internal.h and modify #define EXP_ID_CODE_CLASSIC_CONTROLLER 0x... and put the code that you just got in the last step.
Go into classic.c and remove the WIIUSE_DEBUG("Classic.. to return 0; part (this step has been mentioned on other sites as a fix, but I also had to modify my id code).
Now compile libogc again and compile any piece of homebrew that supports the classic controller and you should be all set. Note that if you do these modifications an official classic controller will now not work.