POL_Install_xinput

Informations

Creator Message
GNU_Raziel

Information

This installer has been approved by the team.

Informations

Platforms:
Downloads: 163204
Wine: System

Feedbacks

Description

Xinput (for Xbox360 wired controller) support

Source code

#!/bin/bash
# Date : (2011-01-03 21-00)
# Last revision : (2012-02-24 21:00)
# Author : Unknown
# Updated by : GNU_Raziel
# Only For : http://www.playonlinux.com

# Downloading directx runtime
POL_Download_Resource "http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" "7c1fc2021cf57fed3c25c9b03cd0c31a"

# Extracting & Installing Xinput dlls
POL_SetupWindow_wait_next_signal "$(eval_gettext 'Installing Xinput dlls...')" "$TITLE"
cd "$POL_USER_ROOT/ressources"

if [ "$POL_ARCH" == "amd64" ]; then
        mkdir "xinput_x64"
        cabextract -d xinput_x64/ -L -F '*_xinput_*x64*' directx_Jun2010_redist.exe

        for x in `ls xinput_x64/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/system32" -L -F '*.dll' "$x"
        done
        mkdir "xinput_x86"
        cabextract -d xinput_x86/ -L -F '*_xinput_*x86*' directx_Jun2010_redist.exe

        for x in `ls xinput_x86/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/syswow64" -L -F '*.dll' "$x"
        done
else
        mkdir "xinput_x86"
        cabextract -d xinput_x86/ -L -F '*_xinput_*x86*' directx_Jun2010_redist.exe

        for x in `ls xinput_x86/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/system32" -L -F '*.dll' "$x"
        done
fi

# Registering Xinput
POL_SetupWindow_wait "$(eval_gettext 'Registering libraries, please wait\n(It can take a while)')" "$TITLE"
for x in `ls "$WINEPREFIX"/drive_c/windows/system32/xinput*`
do
         POL_Wine --ignore-errors regsvr32 `basename $x`
    case $? in
      0|4) ;; # 4 = registration not required
      *) POL_Debug_Fatal "Error $? registering DLL $x"
    esac
done

# Overriding dll
POL_Call POL_Function_OverrideDLL "native" "xinput1_1" "xinput1_2" "xinput1_3" "xinput9_1_0"

# Cleaning
POL_Debug_Message "Deleting temporary directories"
rm -rf "$POL_USER_ROOT/ressources/xinput_x86"
if [ "$POL_ARCH" == "amd64" ]; then
        rm -rf "$POL_USER_ROOT/ressources/xinput_x64"
fi

Contributions

Filters:

Contribute
Member Message
petch Sunday 17 January 2016 at 8:45
petch
Developer

Information

This update has been approved by the team.

Message

Fix for regsvr returning exitcode 4 for "registration not required"

Differences

@@ -41,7 +41,11 @@
 POL_SetupWindow_wait "$(eval_gettext 'Registering libraries, please wait\n(It can take a while)')" "$TITLE"
 for x in `ls "$WINEPREFIX"/drive_c/windows/system32/xinput*`
 do
- 	POL_Wine regsvr32 `basename $x`
+ 	POL_Wine --ignore-errors regsvr32 `basename $x`
+    case $? in
+      0|4) ;; # 4 = registration not required
+      *) POL_Debug_Fatal "Error $? registering DLL $x"
+    esac
 done
 
 # Overriding dll

New source code

#!/bin/bash
# Date : (2011-01-03 21-00)
# Last revision : (2012-02-24 21:00)
# Author : Unknown
# Updated by : GNU_Raziel
# Only For : http://www.playonlinux.com

# Downloading directx runtime
POL_Download_Resource "http://download.microsoft.com/download/8/4/A/84A35BF1-DAFE-4AE8-82AF-AD2AE20B6B14/directx_Jun2010_redist.exe" "7c1fc2021cf57fed3c25c9b03cd0c31a"

# Extracting & Installing Xinput dlls
POL_SetupWindow_wait_next_signal "$(eval_gettext 'Installing Xinput dlls...')" "$TITLE"
cd "$POL_USER_ROOT/ressources"

if [ "$POL_ARCH" == "amd64" ]; then
        mkdir "xinput_x64"
        cabextract -d xinput_x64/ -L -F '*_xinput_*x64*' directx_Jun2010_redist.exe

        for x in `ls xinput_x64/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/system32" -L -F '*.dll' "$x"
        done
        mkdir "xinput_x86"
        cabextract -d xinput_x86/ -L -F '*_xinput_*x86*' directx_Jun2010_redist.exe

        for x in `ls xinput_x86/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/syswow64" -L -F '*.dll' "$x"
        done
else
        mkdir "xinput_x86"
        cabextract -d xinput_x86/ -L -F '*_xinput_*x86*' directx_Jun2010_redist.exe

        for x in `ls xinput_x86/*.cab`
        do
          cabextract -d "$WINEPREFIX/drive_c/windows/system32" -L -F '*.dll' "$x"
        done
fi

# Registering Xinput
POL_SetupWindow_wait "$(eval_gettext 'Registering libraries, please wait\n(It can take a while)')" "$TITLE"
for x in `ls "$WINEPREFIX"/drive_c/windows/system32/xinput*`
do
         POL_Wine --ignore-errors regsvr32 `basename $x`
    case $? in
      0|4) ;; # 4 = registration not required
      *) POL_Debug_Fatal "Error $? registering DLL $x"
    esac
done

# Overriding dll
POL_Call POL_Function_OverrideDLL "native" "xinput1_1" "xinput1_2" "xinput1_3" "xinput9_1_0"

# Cleaning
POL_Debug_Message "Deleting temporary directories"
rm -rf "$POL_USER_ROOT/ressources/xinput_x86"
if [ "$POL_ARCH" == "amd64" ]; then
        rm -rf "$POL_USER_ROOT/ressources/xinput_x64"
fi

Replies

TazX Sunday 17 January 2016 at 4:15
TazX Anonymous

Message

I'm unable to run the xinput installer.  It goes to run the libraries then crashes with a pretty standard message:

Error in POL_Wine
Wine seems to have crashed

If your program is running, just ignore this message

I am unsure of how to debug the installers, but am willing to try something else.  I tried installing the file from here, in the hopes of it working (or at least getting a more informative message).  I got an exception pop up:

System.InvalidOperationException: Unable to generate a temporary class (result=1).
error CS0012: The type 'x360ce.Engine.Data.Game' is defined in an assembly that is not referenced. You must add a reference to assembly 'x360ce.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
error CS0012: The type 'x360ce.Engine.Data.Program' is defined in an assembly that is not referenced. You must add a reference to assembly 'x360ce.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
error CS0012: The type 'x360ce.Engine.Data.PadSetting' is defined in an assembly that is not referenced. You must add a reference to assembly 'x360ce.Engine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.

   at System.Xml.Serialization.Compiler.Compile(Assembly parent, String ns, XmlSerializerCompilerParameters xmlParameters, Evidence evidence)
   at System.Xml.Serialization.TempAssembly.GenerateAssembly(XmlMapping[] xmlMappings, Type[] types, String defaultNamespace, Evidence evidence, XmlSerializerCompilerParameters parameters, Assembly assembly, Hashtable assemblies)
   at System.Xml.Serialization.XmlSerializer.GenerateTempAssembly(XmlMapping xmlMapping, Type type, String defaultNamespace, String location, Evidence evidence)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type, XmlAttributeOverrides overrides, Type[] extraTypes, XmlRootAttribute root, String defaultNamespace, String location, Evidence evidence)
   at System.Xml.Serialization.XmlSerializer..ctor(Type type, Type[] extraTypes)
   at x360ce.App.Serializer.GetXmlSerializer(Type type)
   at x360ce.App.Serializer.SerializeToXmlFile(Object o, String path, Encoding encoding, Boolean omitXmlDeclaration, Int32 attempts, Int32 waitTime)
   at x360ce.App.SettingsFile.Save(Boolean updateGameDatabase)
   at x360ce.App.SettingsFile.Load()
   at x360ce.App.Controls.GameSettingsUserControl.InitDefaultList()
   at x360ce.App.Controls.GameSettingsUserControl..ctor()
   at x360ce.App.MainForm.InitializeComponent()
   at x360ce.App.MainForm..ctor()
   at x360ce.App.Program.Main(String[] args)

Any help would be appreciated.  I'm afraid my knowledge of Linux is sketchy at best, but I have another copy of the game (Brothers: A Tale of Two Sons) for someone who knows more, and wants to give it a go.  Thanks!

Replies

Sunday 17 January 2016 at 8:48
Script should be fixed to work with recent Wine (1.7.51 onward)