RetroPie forum home
    • Recent
    • Tags
    • Popular
    • Home
    • Docs
    • Register
    • Login
    Please do not post a support request without first reading and following the advice in https://retropie.org.uk/forum/topic/3/read-this-first

    Afterglow Prismatic Wired Controller for XBox One

    Scheduled Pinned Locked Moved Help and Support
    6 Posts 2 Posters 3.5k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • R
      ronlaws86
      last edited by

      Has anyone had any joy getting this 3rd party XBone controller to work under the latest retropie?

      I've gotten as far as thinking that the xpad driver does not recognise it, and thus is not loading, i've also had no joy with xboxdrv,

      What i find odd however is the driver does support this pad, the lsusb command shows it as a logic3 device with following,
      Bus 001 Device 005: ID 0e6f:0139 Logic3
      And sure enough this device ID is listed under xpad.c
      (line 182)
      https://github.com/paroj/xpad/blob/1bb421878c002dc198d0d6107e5104441c6ff803/xpad.c

      { 0x0e6f, 0x0139, "Afterglow Prismatic Wired Controller", 0, XTYPE_XBOXONE },

      Which matches what it is, but no joy..

      Trying to clone and compile the (i assume later) version of this kernel module results in compilation error, at first it was a missing kernel header issue, but after (i think) satisfying that, i got a new error

      ././include/linux/kconfig.h:4:32: fatal error: generated/autoconf.h: No such file or directory
      #include <generated/autoconf.h>
      ^
      compilation terminated.
      scripts/Makefile.build:264: recipe for target '/var/lib/dkms/xpad/0.4/build/xpad.o' failed

      I'm now stuck here...

      1 Reply Last reply Reply Quote 0
      • R
        ronlaws86
        last edited by

        Sorry to reply to my own post, but i fixed the issue.

        The above source compile error was due to <censored> Kernel sources that are supplied on github. (missing lots of symlinks and so fourth)

        I instead followed the accepted answer here http://raspberrypi.stackexchange.com/questions/39845/how-compile-a-loadable-kernel-module-without-recompiling-kernel
        to install decent source with required links.

        after that, I re-ran the dkms command as per the xpad instructions here https://github.com/paroj/xpad

        Now this controller works, so I can confirm, Xbox One controller working on retropie using xpad driver (not xboxdrv!) and the shipped version of xpad is hideously out of date.

        1 Reply Last reply Reply Quote 0
        • BuZzB
          BuZz administrators
          last edited by

          The shipped version of xpad is the version in the 4.4 Kernel. Newer versions will come with kernel updates - but it might be worth me adding an updated xpad driver perhaps as a retropie-setup module. Will add it to our bugtracker.

          To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

          R 1 Reply Last reply Reply Quote 0
          • R
            ronlaws86 @BuZz
            last edited by ronlaws86

            @BuZz that might help a lot of people out! the shipped xpad version works fine for most/OEM cases, but 3rd party pads like this one use different vendor/device ids which the default module won't match and load for, even though they are compatible. the version I compiled contains the device ID for my pad, and as expected the pad now works (All be it limited, cant control LEDs etc. but the important functionality works at least)
            An option for bleeding edge xpad under the source install menu would be a good option to have for sure. :D

            1 Reply Last reply Reply Quote 0
            • BuZzB
              BuZz administrators
              last edited by

              I have added the updated xpad driver now to packages -> drivers

              To help us help you - please make sure you read the sticky topics before posting - https://retropie.org.uk/forum/topic/3/read-this-first

              1 Reply Last reply Reply Quote 0
              • R
                ronlaws86
                last edited by ronlaws86

                Im going to add this here because I ran in to another issue, this time with Retroarch (and because this thread comes up on google when searching)

                While the controller worked for the ES menu and other port stuff I had previously configured with 360 controller mappings, the config generation script does not properly find and recognise the controller named "Afterglow Prismatic Wired Controller" and is not creating a config for it under /opt/retropie/configs/all/retroarch-joypads

                so consequently, when launching an emulator (NES for example) resulted in the message in yellow saying Afterglow Prismatic Wired Controller not configured. Try as i might, it was not auto generating, and for some reason kept defaulting and regenerating configs for my LogitechF310 which wasn't even plugged in this time.

                I had to get around this by manually copying an xbox360 mapping .cfg file I had previously, and replacing as follows.

                [/opt/retropie/configs/all/retroarch-joypads/AfterglowPrismaticWiredController.cfg ]

                input_device = "Afterglow Prismatic Wired Controller"
                input_driver = "udev"
                input_r_y_plus_axis = "+4"
                input_l3_btn = "9"
                input_r_x_minus_axis = "-3"
                input_r_axis = "+5"
                input_save_state_axis = "+5"
                input_l2_btn = "4"
                input_start_btn = "7"
                input_exit_emulator_btn = "7"
                input_l_y_minus_axis = "-1"
                input_l_axis = "+2"
                input_load_state_axis = "+2"
                input_up_btn = "h0up"
                input_r_y_minus_axis = "-4"
                input_a_btn = "0"
                input_b_btn = "1"
                input_reset_btn = "1"
                input_down_btn = "h0down"
                input_r2_btn = "5"
                input_l_x_plus_axis = "+0"
                input_l_y_plus_axis = "+1"
                input_r3_btn = "10"
                input_right_btn = "h0right"
                input_state_slot_increase_btn = "h0right"
                input_x_btn = "2"
                input_menu_toggle_btn = "2"
                input_select_btn = "6"
                input_enable_hotkey_btn = "6"
                input_l_x_minus_axis = "-0"
                input_y_btn = "3"
                input_left_btn = "h0left"
                input_state_slot_decrease_btn = "h0left"
                input_r_x_plus_axis = "+3"

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.

                Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.