I NEED HELP GETTING MY Classic Pro Controller to work on SNES9x GX

Discussion in 'Wii - Emulation and Homebrew' started by gonzo9002, Nov 21, 2016.

  1. gonzo9002
    OP

    gonzo9002 Newbie

    Newcomer
    2
    0
    Nov 21, 2016
    United States
    I load up the app and when i have my classic controller pluged in it wants to scroll all over the place i have 2 they are both 3rd party i was reading there is a way you can fix it but i am not a programer is there a file i can simply download and replace to get it working this one guy wrote a discription on how but i dont understand where to start with this.....


    ic3guy
    Re: Snes9x 4.0.7 Classic Controller Issue
    January 26, 2010 03:21AM Registered: 6 years ago
    Posts: 3
    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).

    No 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.

    Hope this has been helpful.