Unable to load DLL 'xinput1_3.dll' on Windows 8.1

Hi,

I have been developing a MonoGame app for some time on Windows 7. Yesterday I upgraded my PC to Windows 8.1. Now I get the following error when running my app:

System.DllNotFoundException was unhandled
HResult=-2146233052
Message=Unable to load DLL ‘xinput1_3.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E)
Source=SharpDX.XInput
TypeName=“”
StackTrace:
at SharpDX.XInput.XInput.XInputGetState_(Int32 arg0, Void* arg1)
at SharpDX.XInput.XInput.XInputGetState(Int32 dwUserIndex, State& stateRef)
at SharpDX.XInput.Controller.GetState(State& state)
at Microsoft.Xna.Framework.Input.GamePad.PlatformGetState(Int32 index, GamePadDeadZone deadZoneMode) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Input\GamePad.XInput.cs:line 149
at Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex playerIndex, GamePadDeadZone deadZoneMode) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Input\GamePad.cs:line 55
at Microsoft.Xna.Framework.Input.GamePad.GetState(PlayerIndex playerIndex) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Input\GamePad.cs:line 37
at MBHEngine.Input.InputManager.UpdateBegin() in c:\Users\Matt\Documents\Dev\Game\mbhwarofroses\Roses\MBHEngine\Code\Input\InputManager.cs:line 183
at MBHEngine.Game.UpdateBegin(GameTime gameTime) in c:\Users\Matt\Documents\Dev\Game\mbhwarofroses\Roses\MBHEngine\Code\Game\Game.cs:line 256
at MBHEngine.Game.Update(GameTime gameTime) in c:\Users\Matt\Documents\Dev\Game\mbhwarofroses\Roses\MBHEngine\Code\Game\Game.cs:line 359
at Microsoft.Xna.Framework.Game.DoUpdate(GameTime gameTime) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Game.cs:line 688
at Microsoft.Xna.Framework.Game.Tick() in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Game.cs:line 532
at MonoGame.Framework.WinFormsGameWindow.OnIdle(Object sender, EventArgs eventArgs) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Windows\WinFormsGameWindow.cs:line 358
at System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at MonoGame.Framework.WinFormsGameWindow.RunLoop() in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Windows\WinFormsGameWindow.cs:line 350
at MonoGame.Framework.WinFormsGamePlatform.RunLoop() in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Windows\WinFormsGamePlatform.cs:line 122
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior) in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Game.cs:line 432
at Microsoft.Xna.Framework.Game.Run() in c:\Users\Matt\Documents\Dev\Game\MonoGame_3_2\MonoGame.Framework\Game.cs:line 410
at Roses.Program.Main(String args) in c:\Users\Matt\Documents\Dev\Game\mbhwarofroses\Roses\Roses\Program.cs:line 15
at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
InnerException:

It sounds like DirectX is not installed, but I ran DXDiag and it says I have DX11 installed.

Reading online it sounded like maybe I needed DX9c installed, but I tried and it is not compatible with Windows 8.1.

Any ideas would be appreciated!

Thanks!

1 Like

I was able to get DX9 runtime installed via this link: http://www.microsoft.com/en-us/download/confirmation.aspx?id=8109

Still seems odd that this was needed, so if anyone has incite into how to get MonoGame to use a version of Sharp DX which uses a more recent version of DX, I would be interested!

Is this still a thing in the current monogame version?

Im having trouble getting joystick/controller input, also using windows 8… I’m trying to follow every lead…

So you had to install dx9 for proper game-device input? Is that right?