Sign in to follow this  
Skywolf

Possible Solution: Windows 8 and 8.1 Joystick Solution for FSX and Prepar3d

Recommended Posts

Hey everyone,

 

I believe I have solved the joystick woes with Windows 8 and Windows 8.1.  I have done 2 days of stress testing FSX and P3D with multiple installs of the program and OS, and I haven't had a disconnect yet.

 

Before I go further - I want to give my thanks to certain individuals who have helped me and inspired me to solve this joystick annoyance.

 

1) Word Not Allowed for having his awesome guides

2) AVSIM's staff/team for creating the amazing Hardware/Software Guide to FSX/P3D

3) Peter Dowson's FSUIPC utility (it got me through the periods when no joystick fix was avialable)

4) Orbx Team - Thank you Global and your Tips and Tricks Forum section

5) NickN's - FSX Computer System Guide

6) Ranak Jones of "Rogue's Guide to Acquisition: Principles of Final Frontier" for sending me a spare XFX 6970 for my system and pointing me to Windows 8 Registry to search for USB Device GUIDs potential errors

7) Microsoft MSDN for having Windows 8.1 Pro for testing/evaluation purposes only.

8) LM Prepar3d Developer Network

 

Testing:

 

1) FullScreen FSX in Eyefinity Mode (5760x1200) for 3 hours+

2) Windowed FSX in triple screen mode and 1920x1200 for 4 hours+

3) Multiple active windows on top of FSX Windowed in background for 4 hours+

4) Testing was done with USB 3.0 and USB 2.0 ports

 

FSX testing was in Win 8.1 and 8, and P3D 1.4 was in Win 8.

 

My System

 

Cpu: i5-750 (intel 1156 cpu) overclocked to 4.1Ghz

Memory: 8GB DDR3

Storage: 1xSamsung 830 SSD at Sata III (Main drive), Intel 80GB SSD at Sata II speeds, 1 TB hitachi mechanical HDD at sata II <- all connected to PCIEx4 Sata III controller)

Motherboard: MSI Fuzion p55A - has native usb 2.0 and Renesas USB 3.0 controller

Video: New XFX 6970 2GB with latest ATI drivers

OS - Windows 8 Pro Clean install / Windows 8.1 Clean Install

Joystick: Thurstmaster Hotas X

 

Windows 8 Solution - (FSX / Prepar3d 1.4)

 

1) Make sure power management features are off or set to high

2) Most important setting is USB Selective Suspend Setting is Disabled (we all knew this)

 

7BVW9.jpg

 

Honestly, that setting does not disable USB selective suspend in Windows 8 (this is for Windows 8 only), like it promises.

 

The power management on USB devices is set to Selective Suspend

 

Please see your HID Devices, USB Input Device and USB Root Hub Devices - They are STILL set to Suspend.

 

q6Omx.jpg

 

dAI3Y.jpg

 

KGqBk.jpg

 

 

You have to turn OFF the manual power savings one by one to all USB Devices/Compositive Devices and the all the USB Root Hubs (this is v.important).  If it says "Allow the computer to turn off this device to save power" and is checked then please UNCHECK it

 

For example like this

 

Dq6yp.jpg

 

 

This was discovered when I was searching for Joystick UID's in Windows 8 based on Ranak's suggestion.  This is where stuff gets weird for both Windows 8 and Windows 8.1.  I am no registry expert, but GUID's for my joystick is half correct and half backwards as compared to one listed in FSUIPC's ini file

 

See Pic - Windows Registry

 

lfKUT.jpg

 

 

And my Joystick GUID in FSUIPC

 

CLOA.jpg

 

So for some reason half of the GUID is backwards in Registry - I do not know if that is normal or not but that led me to search all the usb devices/ports in Device Manager.  Here I found all the power saving features were somehow enabled when Windows Power Management is explicitly set to disable.

 

 

Recap

 

 

So for Windows 8 Pro ONLY - Uncheck Allow the computer to turn off this device to save power and make sure Windows Power management also has Selective Suspend set to Disabled.

 

 

 

Prepar3d 1.4 - Please have JOYSTICKS=1 in [CONTROLS] in P3D.cfg (more on this later)

 

 

 

Windows 8.1 Pro (RTM Version) - FSX TEST

 

No joystick disconnects with 1 Setting change Only - Joystick works in Windows 8.1 Pro

 

7BVW9.jpg

 

 

 

I am seeing that all devices still have the USB Power Management check in windows 8.1 but in FSX with PNW, and Bowerman addon, Carenado B200 - Joystick did not disconnect.  The only crash I got was from latest FSUIPC 4.92.

 

If in Windows 8.1 you have joystick disconnects, then just turn off all those power management features as listed in for Windows 8. 

 

 

 

Miscellaneous Info

 

FSUIPC

 

I have it installed but it Zero Joystick Configuration in all tests.

 

 

I hope this helps everyone - as Windows 8.1 Pro definitely works fantastic with no joysticks issues so far.  And Windows 8 works with all power management features individually turned off in all those sections listed.

 

 

Have a great day,

 

Skywolf

  • Upvote 2

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

Hi Skywolf,

 

I want to thank you for your efforts and to share the results with the AVSIM community!

 

I am certainly going to try the fixes you suggest.

 

Best regards,

 

Jos

Share this post


Link to post
Share on other sites

Sticky please mods!

 

I'll give this a shot after I get home tonight, thanks Skywolf!

Share this post


Link to post
Share on other sites

Admins, why is this marked as SOLVED? While I whole-heartedly endorse and appreciate the efforts being made, this issue is anything but solved. Joystick still disconnects on Windows 8.1 RTM with the proposed solution - generally under heavy load and/or while task switching (or the combination of both).

 

To the OP's question about the apparent inversion of the individual byte sequences in the joystick GUID. What you are seeing is the effect of Wintel's "endianness". Endianness is a term that refers to the order in which bytes are sequenced and stored in memory. The reasons this is done are technical, but are a reflection of the CPU architecture, the operating system, and the most efficient way to read/access memory on a given platform. Modern Wintel platforms adopt what is called "Little Endian". Under this storage strategy, the individual bytes of any given multi-byte value are stored in the opposite order in which they would ordinarily appear. For example, the hexadecimal value 0xABCDDCBA would be represented in memory as BA DC CD AB on Windows 8 running an Intel/AMD processor. A "Big Endian" platform would store the bytes "as-is" without any form of inversion, namely AB CD DC BA. You can Google for this if you want to dig into the phat hairy details.

 

In the example above, the GUID {C1E71A20-2044-11E3-8006-444553540000} decomposes to:

 

C1E71A20 (a 32-bit value, 4 bytes)

2044 (a 16-bit value, 2 bytes)

11E3 (a 16-bit value, 2 bytes)

80

06

44

45

53

54

00

00

 

NOTE: This break down is derived from the GUID data structure as defined in the Windows SDK. The last few byte sequences of the GUID are not "really" as they are represented in the GUID string. In reality, they are EIGHT individual bytes (not a giant 64-bit value, nor a 16-bit value followed by a 48-bit value as the textual GUID might lead you to believe). Individual bytes are always stored "as-is" regardless of endianness which is why these last few values appear "un-flipped".

 

All that said, if you examined this GUID in memory, you would see:

 

20 1A E7 C1 - 44 20 - E3 11 - 80 06 - 44 45 53 54 00 00

 

...which is, in fact, what you see represented in the system registry. Yay, technology.

Share this post


Link to post
Share on other sites

Admins, why is this marked as SOLVED? While I whole-heartedly endorse and appreciate the efforts being made, this issue is anything but solved. Joystick still disconnects on Windows 8.1 RTM with the proposed solution - generally under heavy load and/or while task switching (or the combination of both).

 

To the OP's question about the apparent inversion of the individual byte sequences in the joystick GUID. What you are seeing is the effect of Wintel's "endianness". Endianness is a term that refers to the order in which bytes are sequenced and stored in memory. The reasons this is done are technical, but are a reflection of the CPU architecture, the operating system, and the most efficient way to read/access memory on a given platform. Modern Wintel platforms adopt what is called "Little Endian". Under this storage strategy, the individual bytes of any given multi-byte value are stored in the opposite order in which they would ordinarily appear. For example, the hexadecimal value 0xABCDDCBA would be represented in memory as BA DC CD AB on Windows 8 running an Intel/AMD processor. A "Big Endian" platform would store the bytes "as-is" without any form of inversion, namely AB CD DC BA. You can Google for this if you want to dig into the phat hairy details.

 

In the example above, the GUID {C1E71A20-2044-11E3-8006-444553540000} decomposes to:

 

C1E71A20 (a 32-bit value, 4 bytes)

2044 (a 16-bit value, 2 bytes)

11E3 (a 16-bit value, 2 bytes)

80

06

44

45

53

54

00

00

 

NOTE: This break down is derived from the GUID data structure as defined in the Windows SDK. The last few byte sequences of the GUID are not "really" as they are represented in the GUID string. In reality, they are EIGHT individual bytes (not a giant 64-bit value, nor a 16-bit value followed by a 48-bit value as the textual GUID might lead you to believe). Individual bytes are always stored "as-is" regardless of endianness which is why these last few values appear "un-flipped".

 

All that said, if you examined this GUID in memory, you would see:

 

20 1A E7 C1 - 44 20 - E3 11 - 80 06 - 44 45 53 54 00 00

 

...which is, in fact, what you see represented in the system registry. Yay, technology.

 

Thank you for helping me in understanding the GUID info.  Amazing explanation.

 

As for your joystick...are you sure?  The amount of testing I have done is insane, and I have had not had a joystick drop.  Do install FSUIPC but do not configure your joysticks.  I have not tried FSX in Windows 7 compatilibity mode in Win 8.1 yet. 

 

I did leave FSX running while I was away doing errands for like 3 hours again today on Orbx PNW scenery - at around 1500 Feet with dense autogen.  Zero joystick drops.

 

But I do suggest that turning all Power saving features from All those USB devices/sections disclosed in the screenshots - that does help.

 

Please let me know on how it works for you.

 

Thanks

Share this post


Link to post
Share on other sites

Unlike Windows 8, it seems (as your first post suggests) that Windows 8.1 grays out the power saving options on the USB devices when you disable the master option in the global system power management policy. Perhaps I will try to re-enable the master option, forcibly deselect the options from the individual USB devices, then go back and turn off the master. I have not yet rebooted either since making these changes. Perhaps the drivers are caching their power management setup internally. A good reboot should rule out that possibility.

 

FYI...no drop outs flying stock aircraft as of yet, but the PMDG 777 with high-density scenery (read: low frame rate) seem to exacerbate the problem for me. When the frames are high (> 20fps) the probability of a drop out seems to fall off dramatically. Idling on the runway in the T7 at a busy airport with photoscenery seems to bring out the worst of it.

 

UPDATE: Sadly, I must report - even with the individual USB devices disabled and a reboot - that within a few minutes of loading up the sim, my controllers all vanished. Will try removing FSUIPC entirely next.

 

UPDATE #2: No FSUIPC. All power management on USB devices and hubs completely disabled. I can elicit control death in less than 5 minutes. I'd almost be willing to say that the absence of FSUIPC actually exacerbates the condition.

Share this post


Link to post
Share on other sites

UPDATE: Sadly, I must report - even with the individual USB devices disabled and a reboot - that within a few minutes of loading up the sim, my controllers all vanished. Will try removing FSUIPC entirely next.

 

UPDATE #2: No FSUIPC. All power management on USB devices and hubs completely disabled. I can elicit control death in less than 5 minutes. I'd almost be willing to say that the absence of FSUIPC actually exacerbates the condition.

 

 

Don't feel bad. The power settings suggestion in this thread was previously proposed both here and on other flight sim websites. It worked for some people, but not others. FSXAssist, Linda and FSUIPC4 tend to overcome the problem, because they continue to poll the joystick, preventing FSX or P3D from losing control of the device. If none of those apps work for you, then you'll just have to wait for MS to admit that there is a bug in Win 8.  But despite overwhelming criticism, they haven't put back a viable start button, so I wouldn't expect them to care about the flight sim users.

Share this post


Link to post
Share on other sites

FSXAssist's next version was released yesterday, going to try it out this morning to see if Jim's latest attempt at fixing the drops works.

 

EDIT: It's version 1.08a, program should prompt for update upon launch.

Share this post


Link to post
Share on other sites

I have to say that I have tried every other suggested solution in the topics on this matter and none of them worked, except the FSIUPC fix.

There is a good reason why the other massive topic has the best post highlighted at the top.

I have resisited buying a key for this for years but was finally convinced when I found that the Majestic Software Dash 8 Q400 also didn't suffer from controller disconnects because, like FSUIPC, it doesn't use FSX to run its controllers.

With the greatest thanks to Mr. Dowson and himynameistrev, this is the only fix that actually does work for me, not even FsAssist but the author is welcome to the $12.95.

If you have found a fix that works for you, good.

 

Regards,

Nick

Share this post


Link to post
Share on other sites

I think the reason that the FSUIPC4 fix works better than the other approaches is because the joystick is totally disabled in FSX/P3D. Back when I switched to Windows 8, I also tried Don't Lose Your Joystick and Linda (both of which also take complete control of the joystick from the sim) and they seemed to work for me too. I don't use FSXAssist much, since I mostly fly P3D and XP10 these days, so I have to rely on what other people say about it.

 

 

Basically it's a bug in Windows 8 and if MS was ever going to fix it, it would have been fixed already.

Share this post


Link to post
Share on other sites

After spending a bit of time poking around in the internals of DirectInput and FSX, I've come to the conclusion that FSX is interfacing with DirectInput (a legacy API from the days of Windows XP) in a manner which allows it to "surrender" the input devices when the window is minimized, loses focus, or the OS demotes FSX to a "background process". In the course of this spelunking expedition, I've managed to write a little joystick/controller applet which does NOT lose DirectInput devices, even when FSX does. FSUIPC also uses DirectInput and it manages to not lose them either (making it the excellent alternative it is).This makes me believe that the problem may, in fact, be FSX itself - that Windows 8 elicits conditions (USB power management is clearly not it) earlier versions of Windows did not: conditions FSX was not written to adapt to (probably because it never surfaced during testing). P3D probably inherited the defect.

The only thing holding me back from using FSUIPC exclusively was the inability to map the POV HAT successfully. The refresh rate was just too low to provide a smooth pan (compared to when the POV HAT is mapped directly through FS). I managed to get around this problem using my own module to provide smooth panning support. Everything else, I delegate to FSUIPC. I seem to be off to the races - FS is free to do whatever the hell it wants (or doesn't want) with its controllers :) And I get to keep my $12.95.

Share this post


Link to post
Share on other sites

Sorry for the delay post - but did anyone get any success with my solution?  All my tests were done with clean os (with all windows updates) and fsx/p3d installs.  I have carefully documented where the controllers lose connection and don't.

 

And I do stress the system with Orbx sceneries, rex, and some complex aircrafts which I own.

Share this post


Link to post
Share on other sites

OK, I renamed the thread title since it's pretty clear we don't have a universal solution to the problem here.

 

Regards

Share this post


Link to post
Share on other sites

OK, I renamed the thread title since it's pretty clear we don't have a universal solution to the problem here.

 

Regards

 

Thanks for renaming it.  I still hope this possible solution helps users on Windows 8.1 (For me Win 8.1 is much better than Win 8 with FSX and P3D 1.4 with freeware classic shell start button)

Share this post


Link to post
Share on other sites

I am afraid this didnt work for me either I just get a ctd which can occur at any moment. I had noticed a tardiness in 8.1 as if there is something using memory, it doesnt show on any of the performance graphs, but I had a similar problem a year or more ago when using ftx scenery with the pmdg ngx. back then the solution was to reduce the LOD radius to 4.5 and the problem stopped so I feel that this problem is somehow similar. we are either running out of VAS ofr there is a problem with a memory controller, i have been on the M.S. comapibilty site and reported the problem i suggest everyone do the same then maybe they will do something about it. currently there are 10 people who have reported 8.1 as compatible with FSX and 86 who say it isnt .

Share this post


Link to post
Share on other sites

I am afraid this didnt work for me either I just get a ctd which can occur at any moment.

 

After upgrading to Windows 8.1 I was getting these random "BEX Exception" CTD's left and right. I made the following changes to my setup that nipped that nonsense in the bud:

 

1. Disable UAC

2. Disable DEP (http://www.door2windows.com/how-to-disable-data-execution-prevention-dep-in-windows-7vista/)

3. Installed UIAutomationCore.dll 6.0.5840.16386 to FSX

4. Rolled my ATI drivers back from 13.9 to 13.4 (obviously not applicable if you don't have ATI)

 

I think #2 is key and is often overlooked especially if you run with a lot of add-ins.

Share this post


Link to post
Share on other sites

The only thing holding me back from using FSUIPC exclusively was the inability to map the POV HAT successfully. The refresh rate was just too low to provide a smooth pan (compared to when the POV HAT is mapped directly through FS). I managed to get around this problem using my own module to provide smooth panning support. Everything else, I delegate to FSUIPC. I seem to be off to the races - FS is free to do whatever the hell it wants (or doesn't want) with its controllers :) And I get to keep my $12.95.

Dal1850

 

Hi, any chance of sharing your module that provided smooth panning support as I am also frustrated by the slow panning speed in FSUIPC? I have read where some guys assigned everything to FSUIPC, but left the hat panning to FSX. I think that it was pre Windows 8 as this would only defeat the purpose.

 

Many thanks

John

Share this post


Link to post
Share on other sites

Dal1850

 

Hi, any chance of sharing your module that provided smooth panning support as I am also frustrated by the slow panning speed in FSUIPC? I have read where some guys assigned everything to FSUIPC, but left the hat panning to FSX. I think that it was pre Windows 8 as this would only defeat the purpose.

 

Many thanks

John

It's possible to set FSUIPC up to send the pan view command with the hat switch, while having controllers disabled in FSX to solve the Windows 8 disconnecting problem.

 

To do:

 

1. In the Axis Assignment tab of FSUIPC, make sure to clear any active axis.

2. Push down on the hat switch and FSUIPC should capture it as an axis, if not keep pushing it in different directions until it is captured.

3. Choose "Send to FS as normal axis" or whatever it says (I'm at lunch at work, so no screen to guide me).

4. From the drop-down menu, choose "pan view" or "pan", as I'm not sure what it says exactly.

5. There is no need to have controllers enabled in FSX/P3D for this to function, as FSUIPC seems to send the commands irregardless and FSX/P3D accepts them.

 

Hope that helps!

Share this post


Link to post
Share on other sites

Many thanks, but I have the hat switch mapped in Fsuipc already by this method and it very choppy. Reading Dal1850's comment, he seems to have mapped the hat switch outside of Fsuipc via some module which made it smoother.

Share this post


Link to post
Share on other sites

I wonder if you have mapped also the upper and lower corner positions, pan left up, pan left down, pan right up, pan right down, 8 positions in total with left, right up and down.

Without these the hat switch can appear to be very choppy, as you say.

 

Regards,

Nick.

Share this post


Link to post
Share on other sites

Nick

Yes, I have mapped the 8 positions. The hat switch is just not as smooth as having the joystick enabled in Fsx, but of course if you are using Win8, that is out of the question.

 

John

Share this post


Link to post
Share on other sites

Nick

Yes, I have mapped the 8 positions. The hat switch is just not as smooth as having the joystick enabled in Fsx, but of course if you are using Win8, that is out of the question.

 

John

John, the method that I mentioned does not require you to map all 8 movements, only the hat switch as an axis.

 

If you are setting up all 8 movements via the button setup, then yes you will endure some delay and choppiness. If it's setup as an axis it's like using the hat switch via the FSX Control setup.

 

EDIT: I just realized our experiences may be different due to the type of controllers used. The way I described of setting up the hat switch as an axis in FSUIPC works perfectly fine on my CH Fighterstick, CH Pro Throttle and CH Eclipse Yoke using the drivers provided by CH Products that are installed via CH Control Manager. This method also proved to work perfectly with an Xbox 360 Controller for Windows.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this