Coder Social home page Coder Social logo

csutorasa / xoutput Goto Github PK

View Code? Open in Web Editor NEW
1.1K 35.0 88.0 6.33 MB

DirectInput to XInput wrapper

License: MIT License

C# 80.25% PowerShell 0.14% TypeScript 18.54% JavaScript 0.60% Batchfile 0.04% SCSS 0.36% HTML 0.07%
directinput xinput game-controller xoutput

xoutput's Introduction

Build XOutput Github All Releases Download XOutput Donate Quality Gate Status Discord

XOutput

If you have an older or not supported game controller (gamepad, wheel, joystick, etc.), but XBox 360 controllers are supported you can use this software and enjoy gaming with your controller.

XOutput is a software that can convert DirectInput into XInput. DirectInput data is read and sent to a virtual XInput (Xbox 360 Controller) device. XInput is the new standard game controller input on windows, and DirectInput can no longer be used with Universal Windows Platform software, but with this tool you can use DirectInput devices as well.

General information

If you have any questions or feature requests feel free to create Github Issue.

Any contribution is welcome, open your Pull request.

To join the discussion or just say hi, there is a discord channel.

This version is currently under development. Please use 3.x version for stable features

Version State Support
4.x Under development (no releases yet) Development with new features
3.x Stable Bugfixes only
2.x Old version (superseeded by 3.x) Expired at Mar 7 2018
1.x Old version (superseeded by 3.x) Expired at Mar 7 2018

How to install

Install emulation software

Install one of the two libraries. ViGEm (preferred) or SCPToolkit (unsupported, legacy)

Software State Download
ViGEmBus Deprecated since Nov 2, 2023 ViGEmBus
ScpToolkit Deprecated since Mar 20, 2023 ScpToolkit

Install dependencies

Install:

Download XOutput

How to upgrade

Download the application:

  • Download the latest stable release
  • Unzip to the same directory as before
  • If there are errors, remove the existing conf directory

Hiding original input (exclusive mode)

Software State Download
HidHide Active development HidHide
HidGuardian Deprecated since Jul 27, 2023 HidGuardian

HidGuardian setup

Affected devices and whitelist can be managed by the application, but it needs administrator priviledges.

  1. Enable HidGuardian initialization in the settings.
  2. Restart the application as administrator.
  3. Add device to affected devices in the input settings.
  4. Reconnect device or reboot PC

Add affected device manually (use this method only, if you want to hide non recognized HID devices):

  1. Run regedit and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
  2. Create multi-string value with the name AffectedDevices
  3. Open Device Manager, find your input device and open properties
  4. Go to details, select Hardware ID and copy string that looks like HID\VID_046D&PID_C219&REV_0200 and HID\VID_046D&PID_C219
  5. Paste the values into HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters
  6. Reconnect devices or reboot PC

Manage process whitelist manually (use this method only, if you want to use HidGuardian for other applications):

  1. Start XOutput (or any other application)
  2. Open Task Manager, find your application, then go to details.
  3. Remember the value of the PID column.
  4. Run regedit and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidGuardian\Parameters\Whitelist
  5. Create subkey with the PID you found before.

Technical problem

Problem visualisation

graph TD
    subgraph XInput
        X1(Xbox controller 1) -->|Read hardware input| XD[Xbox controller driver - xusb22.sys]
        X2(Xbox controller 2) -->|Read hardware input| XD
        XD -->|Read input| XR[XInput handler - xinput1_3.dll]
    end
    subgraph DirectInput
        D1(fa:fa-gamepad Older controller) -->|Read hardware input| D1D[Controller driver]
        D2(Joystick) -->|Read hardware input| D2D[Joystick driver]
        D3(Gaming wheel) -->|Read hardware input| D3D[Gaming wheel driver]
        D1D -->|Read input| DR[Direct input handler - dinput8.dll]
        D2D -->|Read input| DR
        D3D -->|Read input| DR
    end
    subgraph Games
        XR -->|Read XInput| NG[Newer games]
        XR -->|Read XInput| CG[Compatible games]
        DR -->|Read DInput| CG[Compatible games]
        DR -->|Read DInput| OG[Older games]
    end

Offered solution

graph TD
    subgraph XInput
        X1(Xbox controller 1) -->|Read hardware input| XD[Xbox controller driver - xusb22.sys]
        X2(Xbox controller 2) -->|Read hardware input| XD
        XD -->|Read input| XR[XInput handler - xinput1_3.dll]
    end
    subgraph DirectInput
        D1(fa:fa-gamepad Older controller) -->|Read hardware input| D1D[Controller driver]
        D2(Joystick) -->|Read hardware input| D2D[Joystick driver]
        D3(Gaming wheel) -->|Read hardware input| D3D[Gaming wheel driver]
        D1D -->|Read input| DR[Direct input handler - dinput8.dll]
        D2D -->|Read input| DR
        D3D -->|Read input| DR
    end
    DR -->|Read DInput| XOA[XOutput.App]
    subgraph Solution
        DR -->|Read HTML5 gamepad API| B[Browser]
        B -->|Browser| XOS[XOutput.Server]
        XOA -->|Sends input| XOS[XOutput.Server]
        XOS -->|Control emulation| V[ViGEm]
    end
    V -->|Emulate controller| XD
    subgraph Games
        XR -->|Read XInput| NG[Newer games]
        XR -->|Read XInput| CG[Compatible games]
        DR -->|Read DInput| CG[Compatible games]
        DR -->|Read DInput| OG[Older games]
    end

How it works

Component Implementation Description
Device emualation ViGEm External software that emulates XBox and DS4 controllers
Device emualation SCP toolkit Legacy external software that emulates XBox controllers
Backend XOutput.Server Server that collects data from clients and sends to the emulation software
Client XOutput.App Desktop application that collects data from the devices and sends to the backend
Client Web controller Web application that allows to emulate a device
Client Web client Web application that uses the Gamepad API

xoutput's People

Contributors

alfrix avatar ardor97 avatar csutorasa avatar dependabot[bot] avatar laximas avatar nipkownix avatar theradioguy avatar ymdzq avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xoutput's Issues

Dualshock 2 (Twin Joystick USB ) NOT Vibration !!!

Hello I want to thank you for this wonderful little magical program that you create all works perfectly except the vibration of my controllers Dualshock 2 can you give me a hints anything so that I get vibrations THANKS YOU !!!

Show true axis output (fix Inverted axis)

The directional boxes are nice, great work, but shouldn't they show the actual output?
To have the correct directions i have to invert LY and RY which is normal, but the new boxes show as inverted output.
Checked in game and with xinputest.exe

left stick to D´pad is posible?

thanks for your great job
i need assign left stick on dpad, because i have a arcade stick and no detect a dpad but i have a left stick and the game need a dpad

sorry my english is bad :)

Nintendo switch pro controller is abit glitchy

when connecting over bluetooth this works fine
but when connecting over the wire(1st party cable even) if Steam is running
its like most of the buttons is rapid pressing and some is rapid pressing
and some others is held down forever
even without im touching the controller
but when connecting without steam is running Xoutput see the pro controller but dont register the inputs at all

will be neat if this can be fixed somehow
since i just got a Nswitch pro controller
want it to use both on PC(as Xinput) and over wire & nintendo switch over wireless
so i dont have to reconnect the controller each time im changing from PC to switch & visa versa
and i know Steam add a form of support to Nswitch pro controller and its not really usefull outside steam like emulators + Steam dont convert it into Xinput sadly
and the nice thing about convert every controller to Xinput+this program is
no matter what controller i plugin i dont have to Reconfig the emulator´s/game´s settings
since i use my mayflash usb gamecube adapter(PC mode) for some emulators/games
and Nswitch pro controller for also emulators/some other games and both at same time if multiplayer

Add Russian locale

Could you add Russian locale, please? I can help with it because I'm from Russia. How can I do it?

Save button

Great work, a save button on the gamepad config screen and/or the main screen would be more intuitive, than hiding it on the toolbar

Rumble not working.

Ok, so my gamepad is a custom Dinput GameCube USB controller (USB Network Joystick in device manager)
Everything works except for vibration function, in XOutput the test option is vibrating normally but in games - not. Windows 10 x64 newest update. Maybe because the original dinput gamepad driver is 32 bit?

Missing Trigger Detection

Hi,
It seems as though this application is missing some trigger functionality of a DirectInput controller.

Using this website: http://html5gamepad.com/

I can see that the triggers of my DirectInput controller are recognized as Axis 4 and Axis 5.
However, it seems as though these axes are not handled in the program, as I do not see any feedback when I press the triggers (In the program on the left side, A7 and A8 seem to be unused, as nothing on my controller shows any response. Perhaps there can be functionality to replace those axes with any directinput axes of the user's choosing).

I have only briefly looked at the code, so I am not sure whether the problem lies in a missing mapping to an enum in DirectInputTypes, or if the axes are only missing in the UI.

I will clone the repo and investigate when I have the time, and will send a pull request if I figure out the issue.

Thanks

Logitech Formula Force RX Wheel | Forza Horizon 3 | Dead Zone Issuses

Hi, first of all i wanted to tanks all People who developed this program! Its very cool!
I tried the last 2 months to Play Forza with my old Logitech Formula Force RX.

  • First i tried with x360ce, it recognizes the Logitech Wheel, but not in Game.

  • Than i tried XOutput.v0.11, it works well, but had the "Camera Stuck" Bug, because i could not set the Axis 2 to "Disabled" (there was no option for that)

  • And now i try your XOutput 3.7.1. It works fine! BUT i got two Problems:

  1. When i in game and choose the "inside car" view, i rotate the wheel and the wheel in game start rotate to late. They are (+15°) - (-15°) degree that the game not recognize. But in the XOutput menu, i can see the red dot clearly move in the sector between (+15°) - (-15°). When i set the "dead zone" in XOutput it gets worse.
    PS: I recognize that this effect does not occur in XOutput.v0.11

  2. There is a delay of about 0.5 seconds, like: I turn the wheel, 0,5 seconds, than the car wheels turn.

I dont know what it is.
PS: I am from germany (But can also speak russian and can help with german translation) and yes i know my english my English is not the best :)

Microsoft 360 Wireless Wheel

Hi ! I would like to play Forza (7 or Horizon 3) with a Microsoft 360 Wireless Wheel.
I can configure my steering wheel in Xoutput, but when I click on "Start" nothing happens.
I do not know if it's using Xinput or DirectInput, that may be the problem, but I did not find any solution.
Thanks!

Force Feedback Not Working

I managed to get my controller working but i dont have force feedback. I've installed the VIGEM driver but it still doesnt work.
image
image

Unassigned input by default

Currently the buttons come preassigned with button 1, since all of the dinput gamepads that i have don't have a '13' button to assign to the home button i have been doing a workaround using axis 5 which isn't used in any of them, please make the default config unassigned/nil

Exclusivity

The original Xoutput had the exclusivity checkbox to disable the original dinput controller, but it was only fixed in the source code and never released as an actual release. Is there any way to activate exclusivity in this one? I can't seem to find it. Dead Rising 1 recognizes both real dinput controller and xinput emulated controller.

The reason why I want to emulate it as a x360 controller is because dinput keeps showing numbers instead of actual Xbox buttons, which keeps QTE's very difficult to perform. Thanks in advance.

Emulated analog drifting in Metro 2033 Redux GOG

In Metro 2033 Redux GOG, the analog stick set to control movement (either RS or LS, configurable ingame) sticks and the player auto-walks, which makes controlling the game difficult. After moving in a direction with LS and releasing LS, the player will keep walking slowly in that direction until another button is pressed or an input on RS, at which point this movement stops.

  • the game only supports XInput, not DInput, so no double-input
  • it's not deadzones, as I have tried configuring these in XOutput, with no change in sensitivity or anything
  • XOutput works perfectly with other XInput-only games that I have, with no drifting
  • it's not the controller, as RS works perfectly, and swapping RS and LS ingame only swaps the problem over
  • the game works perfectly with a fake Xbox remote (XOutput not needed) I have tried, with no drifting

Keyboard input support for missing controllers buttons

Hello!

I am using a few legacy controllers with Xoutput, such as a Sega Saturn one with a Mayflash USB adapter. Such controllers have less buttons than a Xinput one - for instance there are not Back or Guide buttons on the Saturn one for reasons obvious.

Unfortunately some modern games still expect all Xinput buttons to be used in some way, and sometimes there are no easy workaround. In most case, the buttons still are rarely used, meaning it's okay if there are not easily accessible on a controller but on a side keyboard. So I'd like to map a few buttons to a regular keyboard in addition to the gamepads, to make up for the lack of them on a controller.

Would that be possible to implement? Thanks!

XOutput not recognizing buttons 21 - 32 on vJoy device

I tried to connect my Nintendo Switch JoyCon to my PC using the JoyCon-Driver made by mfosse (https://github.com/mfosse/JoyCon-Driver), and using vJoy to map the pair of JoyCon into one controller. But when I try to map it into an Xbox controller, XOutput doesn't seem to be recognizing buttons 21 to 32, as shown in the following pictures.

xoutput
gamecontroller

I have tested that all the buttons are recognized by the system's game controller settings, as well as by vJoy. Also all the button mappings for buttons 1 - 20 and the axes are working fine.

I am using vJoy 2.1.8.38-190417 and JoyCon driver v0.9, which should be the latest version for both. I'm also using the latest XOutput v2.0.

Icon

It would be nice to have an icon, maybe an open-source one

Made a couple with inkscape to test
g4676

Dead zones

It would be very good if it were possible to adjust the dead zones of sticks.

Configuration graphics

It would be helpful for less experienced users to have visual indications.
I've made some vector graphics (based on a public domain image)
tell me if you are interested, i could give you the svgs or the rasterized pngs if you prefer (i need the output resolution to render them)

configuration mockups

Show all devices checkbox - active when program starts

First of all, thank you very much for this software. I'm using it on an arcade cabinet and a virtual joystick (the arcade machine uses an ipac controller that simulates keyboard inputs). The virtual joystick device is always hidden so the "show all devices" checkbox needs to be activated to automatically start the emulation of this controller. Could you implement that the show all devices checkbox is active when starting the XOutput program? Maybe the checkbox status could be saved in the setting file.
Many thanks in advanced and many thanks for your efforts.

Start controller when open application

First time, thx, really

Possible activate controller when open application ?
Not need press start (actually if you close application, all stop, so...)
Like this, we launch a game and can launch XOutPut at the same time and close it when leaving the game

Controller not emulated as Xbox controller - XOutput doesn't work?

Please forgive me if I have misunderstood the purpose of XOutput.
As far as I can tell, XOutput is supposed to convert inputs from generic controllers and emulate Xbox controller inputs with them?
I am using a Tesun USB-706 generic Dualshock2-type USB controller. I have set up all the buttons, triggers and joysticks as the corresponding Xbox controls, but it seems to work only within XOutput - the DirectInput and XInput sensors in the Edit menu light up correctly, but once I start a game, no Xbox controllers are detected.
This has been tested on Terraria and Vagante, both of which natively support Xbox controllers, with no success. I have tested it on my Win7 laptop (using the default ScpToolkit driver - I'm stuck on Windows PowerShell 2.0 for some reason and cannot find a manual way to install the ViGEm driver, which is a pain and a half to install), with the aforementioned results.
When my brother tested XOutput with the ViGEm driver on his Win10 laptop (comes with the required PowerShell 5.0), it still didn't work in-game, but on the windows desktop, it glitched out, with options in the Start menu constantly cycling, as if an arrow key was being held down.

TL;DR - Tesun USB-706 generic Dualshock 2 seems to work within XOutput, but does not work at all in-game. Using the ViGEm driver only makes things worse.

Any suggestions?

PS. Is csutorasa's XOutput at all related to Stents-'s Xoutput (see https://github.com/Stents-/XOutput/releases)? I didn't have any luck with Stents-'s version, either - it was impossible to tell how to map the analog sticks, and it froze Win7 when it tried to install the custom driver.

Vibration not working in games that supports xinput

Hello I've experienced a problem where force feedback or vibration works in games that only support directinput like ( need for speed underground 1 ) but in the same when I try to play a game that supports xinput like Dirt3 my controller doesn't vibrate at all

Update: Just tried another game (JustCause2) which also supports xinput and the vibration actually worked but was acting weird it just alters the speed from super low to really high randomly, sometimes it would be really high even though I'm just standing and not doing anything

Update2: tried another directinput game Need for speed Most wanted (2005) and this time vibration didn't work.
I don't really know what's wrong maybe it's something on my end? I'm sorry if this seems pointless to you

Dpad individual direction highlight

I did the vector work, but needs the logic switch

  <Path Name="DPADUp" StrokeThickness="0.9381389" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat">
    <Path.Fill>
        <MultiBinding Converter="{StaticResource ColorConverter}" ConverterParameter="DPAD-U">
            <Binding Path="Model.XInputType"/>
            <Binding Path="Model.Highlight"/>
        </MultiBinding>
    </Path.Fill>
    <Path.Data>
        <PathGeometry Figures="m 278.39198 584.60884 10.02407 0.47315 c 0 0 3.02501 1.18289 3.55885 4.14008 0.3926 2.17485 1.29601 9.59713 3.4402 13.8397 1.2707 2.51426 3.06993 4.20009 5.39445 6.50583 l -46.4417 0.28585 c 2.01667 -1.53775 5.93334 -5.13566 6.1706 -7.50141 0.23724 -2.36576 1.27668 -15.66563 2.1946 -15.67317 0.75429 -0.68261 1.3873 -0.88065 1.97255 -1.18955 0.98426 -0.5195 3.56264 -0.656 6.86526 -0.70306 4.15197 -0.0591 6.82112 -0.17742 6.82112 -0.17742 z" FillRule="NonZero"/>
    </Path.Data>
  </Path>
  <Path Name="DPADLeft" StrokeThickness="0.9399935" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat">
    <Path.Fill>
        <MultiBinding Converter="{StaticResource ColorConverter}" ConverterParameter="DPAD-L">
            <Binding Path="Model.XInputType"/>
            <Binding Path="Model.Highlight"/>
        </MultiBinding>
    </Path.Fill>
    <Path.Data>
        <PathGeometry Figures="m 262.86331 645.87177 c 0 0 -2.15138 -4.52127 -8.08598 -6.06426 -5.93461 -1.54301 -17.09167 -0.23739 -20.41504 -1.78038 -3.32339 -1.543 -5.57853 -4.39161 -5.81592 -6.88414 -0.23739 -2.49254 -1.30561 -11.15706 -0.83084 -11.86922 0.47476 -0.71215 2.72992 -4.98507 4.03554 -5.10376 1.3056 -0.1187 19.22811 -2.13646 21.24587 -3.67945 2.01777 -1.54301 6.25598 -5.18383 7.50364 -7.65347 z" FillRule="NonZero"/>
    </Path.Data>
  </Path>
  <Path Name="DPADRight" StrokeThickness="0.93870533" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat">
    <Path.Fill>
        <MultiBinding Converter="{StaticResource ColorConverter}" ConverterParameter="DPAD-R">
            <Binding Path="Model.XInputType"/>
            <Binding Path="Model.Highlight"/>
        </MultiBinding>
    </Path.Fill>
    <Path.Data>
        <PathGeometry Figures="m 296.3577 604.71718 c 0.71119 0.59265 3.81294 5.16587 6.65765 5.52145 2.84471 0.35559 21.92795 3.08177 23.11325 4.14853 1.18529 1.06677 2.96323 5.68942 2.96323 5.68942 l 0.23705 11.49735 c 0 0 -0.71117 3.55589 -1.77794 4.14853 -1.06675 0.59265 -20.74264 2.48912 -20.74264 2.48912 0 0 -6.27135 1.47163 -7.47361 4.71192 z" FillRule="NonZero"/>
    </Path.Data>
  </Path>
  <Path Name="DPADDown" StrokeThickness="0.94216943" StrokeLineJoin="Miter" StrokeStartLineCap="Flat" StrokeEndLineCap="Flat">
    <Path.Fill>
        <MultiBinding Converter="{StaticResource ColorConverter}" ConverterParameter="DPAD-D">
            <Binding Path="Model.XInputType"/>
            <Binding Path="Model.Highlight"/>
        </MultiBinding>
    </Path.Fill>
    <Path.Data>
        <PathGeometry Figures="m 305.10327 638.73247 c -0.002 2.6e-4 -5.21719 1.69616 -6.00922 5.02696 -1.0707 3.45003 -3.21211 17.72606 -4.16383 18.67778 -0.95175 0.95174 -2.26037 2.97418 -4.99661 3.33107 -2.73624 0.35692 -16.1795 0.59485 -16.1795 0.59485 0 0 -4.99661 -1.0707 -6.18627 -2.73624 -1.18967 -1.66554 -4.16385 -16.41743 -4.16385 -16.41743 0 0 -1.20455 -5.34044 -8.98809 -7.50285 z" FillRule="NonZero"/>
    </Path.Data>
  </Path>

Block keyboard's input

Can you make it so if you have the keyboard enabled as a controller, make these inputs not work as keyboard-detected? I don't know if I'm explaining well, but see, some games like Melty Blood, detect certain motions weirdly in my keyboard, but as a controller it inputs them well.

Seems to crash on launch even with ViGEm installed

I've been trying to open XOutput but it freezes and then crashes after a few seconds. I have both ViGEm and ScpToolkit, I've tried restarting after installing both and adding and removing ViGEm buses multiple times.
This is the log

2018-04-28 23:49:27.939 -05:00 INFO LanguageManager.set_Language: Language is set to English 2018-04-28 23:49:27.955 -05:00 INFO MainWindowViewModel.Initialize: Loading settings was successful. 2018-04-28 23:49:27.970 -05:00 ERROR MainWindowViewModel.UnhandledException: System.DllNotFoundException: Unable to load DLL 'vigemclient.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E) at Nefarius.ViGEm.Client.ViGEmClient.vigem_alloc() at Nefarius.ViGEm.Client.ViGEmClient..ctor() at XOutput.Devices.XInput.Vigem.VigemDevice.IsAvailable() at XOutput.UI.Windows.MainWindowViewModel.Initialize() at XOutput.UI.Windows.MainWindow.<WindowLoaded>d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Vibration support

Hello! What about vibration support? It isn't working. I hope you solve this problem. Thx for nice emulator of X360 gamepad.

Axis directions

The gamepad config screen showing inputs and outputs i'ts very nice, but needs something like the control panel moving cross to tell directions
maybe something like this:
1

Program breaks when mapping inputs to keyboard.

In XOutput 3.9, for some reason, it breaks. It didn't happen before on 3.8.1. Here's the output on XOutput.txt

2018-05-03 17:46:57.844 -04:00 INFO LanguageManager.set_Language: Language is set to English
2018-05-03 17:46:57.844 -04:00 INFO MainWindowViewModel.Initialize: Loading settings was successful.
2018-05-03 17:46:58.282 -04:00 INFO GameController.createXOutput: ViGEm devices are used.
2018-05-03 17:46:58.282 -04:00 INFO MainWindowViewModel.RefreshGameControllers: Mayflash Arcade Stick(9fcdd800-449a-11e8-8004-444553540000) is connected.
2018-05-03 17:46:58.282 -04:00 INFO GameController.createXOutput: ViGEm devices are used.
2018-05-03 17:46:58.282 -04:00 INFO MainWindow.WindowLoaded: The application has started.
2018-05-03 17:47:00.092 -04:00 INFO MainWindowViewModel.VersionCompare: Version is up-to-date
2018-05-03 17:47:00.342 -04:00 INFO MainWindowViewModel.SaveSettings: Saving settings was successful.
2018-05-03 17:47:03.222 -04:00 ERROR MainWindowViewModel.UnhandledException: System.Windows.Markup.XamlParseException: Se produjo una excepción al establecer la propiedad 'System.Windows.Controls.ContentControl.Content'. ---> System.ArgumentException: cannot be translated
en XOutput.UI.Converters.DynamicLanguageConverter.Convert(Object[] values, Type targetType, Object parameter, CultureInfo culture)
en System.Windows.Data.MultiBindingExpression.TransferValue()
en System.Windows.Data.MultiBindingExpression.Transfer()
en System.Windows.Data.MultiBindingExpression.UpdateTarget(Boolean includeInnerBindings)
en System.Windows.Data.MultiBindingExpression.AttachToContext(Boolean lastChance)
en System.Windows.Data.MultiBindingExpression.AttachOverride(DependencyObject d, DependencyProperty dp)
en System.Windows.Data.BindingExpressionBase.OnAttach(DependencyObject d, DependencyProperty dp)
en System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
en System.Windows.Baml2006.WpfKnownMemberInvoker.SetValue(Object instance, Object value)
en MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(XamlMember member, Object obj, Object value)
en MS.Internal.Xaml.Runtime.ClrObjectRuntime.SetValue(Object inst, XamlMember property, Object value)
--- Fin del seguimiento de la pila de la excepción interna ---
en System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
en System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
en System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
en System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
en XOutput.UI.Windows.AutoConfigureWindow.InitializeComponent()
en XOutput.UI.Windows.AutoConfigureWindow..ctor(AutoConfigureViewModel viewModel, Boolean timed)
en XOutput.UI.Component.MappingViewModel.Configure()
en XOutput.UI.Component.MappingView.ConfigureClick(Object sender, RoutedEventArgs e)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
en System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
en System.Windows.Controls.Primitives.ButtonBase.OnClick()
en System.Windows.Controls.Button.OnClick()
en System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
en System.Windows.UIElement.OnMouseLeftButtonUpThunk(Object sender, MouseButtonEventArgs e)
en System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
en System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
en System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
en System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(Delegate genericHandler, Object genericTarget)
en System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
en System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
en System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
en System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
en System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
en System.Windows.UIElement.RaiseEvent(RoutedEventArgs args, Boolean trusted)
en System.Windows.Input.InputManager.ProcessStagingArea()
en System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
en System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
en System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
en System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
en MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
en System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
en System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

Controller randomly disconecting

Hi, trying to use a generic gamepad with Hollow Knight. Everything seems fine until controller stops working randomly for some seconds, then comes back, goes off again and again.

Rumble/vibration not working.

Hello, and than you for this awesome program!
Unfortunately on my side the rumble function is not working for some reason.
I have a Playstation SCPH-110 controller, and connected with a cheap eBay Sony to USB converter (recognized as "Twin USB joystick").
Drivers are installed, and under the default windows 10 x64 built in program called "Game controllers/Properties/Vibration test" it's working properly.
ViGEm is installed, and recognized by xoutput. Under diagnostics force feedback motors count 4. And green mark say okay.
Any idea whats wrong?
image

Joystick order problem

hello, the XOutput presents a problem when it closes and turns open changes the order of the joystick example at the moment is the joystick # 1 but when it becomes open and loads the controllers switches joystick # 2 are left for games as the second player I use a convert from ps2 to usb pad I mention this problem because sometimes I use the joytokey and it always changes the order

Wireless DirectInput

Hello, I have an Android wireless gamepad that does not use a USB dongle, I only connected it with bluetooth, my computer recognizes all the buttons, however the program does not recognize the mapping of the Axes and Dpads

Lag, trigger issue

Utilizing a thrustmaster Ferrari legend edition wheel, the throttle pedal (A6) does not show up under direct input, but an unresponsive or non input A3 does show up; Similar to issue Missing Trigger Detection #32
somewhat functional settings
I used the suggestion from Dinput sliders support #11, I edited the settings text (R2=Axis6,100,0,0) to include mapping A6 to RT which can be seen in above Screenshot. A6 (Throttle pedal) does indeed map to RT, but only updates when a natively XOutput listed direct input is changed. The delay until another input is made is clearly seen under the XInput, or noticed while gaming. No delay until input is detectable in HTML5 Gamepad Tester, XOutput .11, Thrustmaster setup, or games compatible with this wheel. Certainly makes for an exciting driving experience when the throttle is stuck full open until you turn the steering wheel, lol. This may be what Dead Zone Issuses #37 was experiencing as .5 second delay? Oddly, using HTML5 Gamepad tester http://html5gamepad.com/, Axis 5 (throttle A6) maps to B7.
html5 gamepad tester

Note: XOutput.11 seemed to recognize all inputs properly, but non mapped analog outputs created other more severe problems.

Hide real DInput device from games

I've tested vibration yesterday. It works perfectly for my cheap and crappy gamepad OKLICK GP-310M (tested games: Castlevania LoS 2, Sonic All-Stars Racing, Wonderboy The Dragon's Trap).
Is it possible to hide real DirectInput device from game? Without hiding some games (for example FIFA, Mortal Kombat) try to detect gamepad via DirectInput, that's why all don't works correctly (double input).
I've read that hiding real device in such project as InputMapper (for DualShock 4) is realised via ViGEm HidGuardian and HidCerberus,Srv.

Many thanks for your titanic work!

Configure all/Bind all

The configuration dialog needs a 'Bind all inputs' that go through all the inputs in a timed manner, if the timer runs out, unassigned input. will make much easier and quicker to configure new gamepads.

cant launch program. [fixed by installing dotnet 4.5.2]

after installing vigem, xoutput program still crash at launch.
tried oldest version/newest and the inbetween, same issue. here are the .log file.

2018-07-23 05:03:57.051 +08:00 ERROR MainWindowViewModel.UnhandledException: System.Windows.Markup.XamlParseException: The invocation of the constructor on type 'Hardcodet.Wpf.TaskbarNotification.TaskbarIcon' that matches the specified binding constraints threw an exception. ---> System.MissingMethodException: Method not found: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)'.
at Hardcodet.Wpf.TaskbarNotification.Interop.NotifyIconData.CreateDefault(IntPtr handle)
at Hardcodet.Wpf.TaskbarNotification.TaskbarIcon..ctor() in c:\git\OSS\notifyicon-wpf\Hardcodet.NotifyIcon.Wpf\Source\NotifyIconWpf\TaskbarIcon.cs:line 134
--- End of inner exception stack trace ---
at System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
at System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
at System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
at System.Windows.Application.LoadBamlStreamWithSyncInfo(Stream stream, ParserContext pc)
at System.Windows.Application.LoadComponent(Uri resourceLocator, Boolean bSkipJournaledProperties)
at System.Windows.Application.DoStartup()
at System.Windows.Application.<.ctor>b__1(Object unused)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)

vigem bus installed : https://imgur.com/a/E84rMTA

i m new to github and using xoutput. please help.
edit: fixed the issue by installing dot net 4.5.2 .

ControllerSettings Window Title not modified

The title is the Controller Setting windows is not modified.

While modifying your code to invert LY and RY axis for Switch Pro Controller support, I fixed this tiny error:
XOutput/UI/View/ControllerSettings.xaml:9
Title="{Binding Model.Title}" Width="800" Height="800" MinWidth="800"

Thanks for this great software!

Can't map Dpad

To whom it may concern,

I noticed if the source controller is being read as not having a dpad, I'm not able to map the Xoutput dpad at all, whereas a different fork of XOutput allows me to do so with no issues.

For reference, I have a 3DS receiving input through vJoy, which is being fed to Xoutput

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.