diff --git a/configure b/configure
index 7fc3f1c50e45eb49df8210431c95184e6a0709bb..98c0ebd844fb9186f966dc420b334011ec9e4d59 100755
--- a/configure
+++ b/configure
@@ -14467,6 +14467,7 @@ wine_fn_config_dll d3dcompiler_43 enable_d3dcompiler_43 d3dcompiler
 wine_fn_config_dll d3dim enable_d3dim d3dim
 wine_fn_config_dll d3drm enable_d3drm d3drm
 wine_fn_config_test dlls/d3drm/tests d3drm_test
+wine_fn_config_dll d3dx10_42 enable_d3dx10_42
 wine_fn_config_dll d3dx10_43 enable_d3dx10_43
 wine_fn_config_dll d3dx9_24 enable_d3dx9_24
 wine_fn_config_dll d3dx9_25 enable_d3dx9_25
diff --git a/configure.ac b/configure.ac
index 295df7c9c7e91a1d2ff5d02e5c4644f5b2c62047..47d1d04fc97d6eed14a9a03a5bfbf752cfefee9f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2306,6 +2306,7 @@ WINE_CONFIG_DLL(d3dcompiler_43,,[d3dcompiler])
 WINE_CONFIG_DLL(d3dim,,[d3dim])
 WINE_CONFIG_DLL(d3drm,,[d3drm])
 WINE_CONFIG_TEST(dlls/d3drm/tests)
+WINE_CONFIG_DLL(d3dx10_42)
 WINE_CONFIG_DLL(d3dx10_43)
 WINE_CONFIG_DLL(d3dx9_24)
 WINE_CONFIG_DLL(d3dx9_25)
diff --git a/dlls/d3dx10_42/Makefile.in b/dlls/d3dx10_42/Makefile.in
new file mode 100644
index 0000000000000000000000000000000000000000..63a6b49cd7766d69a551171b9111fb7f61217c06
--- /dev/null
+++ b/dlls/d3dx10_42/Makefile.in
@@ -0,0 +1,12 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = d3dx10_42.dll
+
+C_SRCS = \
+	d3dx10_42_main.c
+
+RC_SRCS = version.rc
+
+@MAKE_DLL_RULES@
diff --git a/dlls/d3dx10_42/d3dx10_42.spec b/dlls/d3dx10_42/d3dx10_42.spec
new file mode 100644
index 0000000000000000000000000000000000000000..51dc1cdcde8cb2ea47d2330a20416aadb7a23d90
--- /dev/null
+++ b/dlls/d3dx10_42/d3dx10_42.spec
@@ -0,0 +1,176 @@
+@ stdcall D3DX10CreateThreadPump(long long ptr) d3dx10_43.D3DX10CreateThreadPump
+@ stdcall D3DX10CheckVersion(long long)
+@ stdcall D3DX10CompileFromFileA(str ptr ptr str str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CompileFromFileA
+@ stdcall D3DX10CompileFromFileW(wstr ptr ptr str str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CompileFromFileW
+@ stdcall D3DX10CompileFromMemory(str long str ptr ptr str str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CompileFromMemory
+@ stdcall D3DX10CompileFromResourceA(long str str ptr ptr str str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CompileFromResourceA
+@ stdcall D3DX10CompileFromResourceW(long wstr wstr ptr ptr str str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CompileFromResourceW
+@ stdcall D3DX10ComputeNormalMap(ptr long long long ptr) d3dx10_43.D3DX10ComputeNormalMap
+@ stdcall D3DX10CreateAsyncCompilerProcessor(str ptr ptr str str long long ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncCompilerProcessor
+@ stdcall D3DX10CreateAsyncEffectCreateProcessor(str ptr ptr str long long ptr ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncEffectCreateProcessor
+@ stdcall D3DX10CreateAsyncEffectPoolCreateProcessor(str ptr ptr str long long ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncEffectPoolCreateProcessor
+@ stdcall D3DX10CreateAsyncFileLoaderA(str ptr) d3dx10_43.D3DX10CreateAsyncFileLoaderA
+@ stdcall D3DX10CreateAsyncFileLoaderW(wstr ptr) d3dx10_43.D3DX10CreateAsyncFileLoaderW
+@ stdcall D3DX10CreateAsyncMemoryLoader(ptr long ptr) d3dx10_43.D3DX10CreateAsyncMemoryLoader
+@ stdcall D3DX10CreateAsyncResourceLoaderA(long str ptr) d3dx10_43.D3DX10CreateAsyncResourceLoaderA
+@ stdcall D3DX10CreateAsyncResourceLoaderW(long wstr ptr) d3dx10_43.D3DX10CreateAsyncResourceLoaderW
+@ stdcall D3DX10CreateAsyncShaderPreprocessProcessor(str ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncShaderPreprocessProcessor
+@ stdcall D3DX10CreateAsyncShaderResourceViewProcessor(ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncShaderResourceViewProcessor
+@ stdcall D3DX10CreateAsyncTextureInfoProcessor(ptr ptr) d3dx10_43.D3DX10CreateAsyncTextureInfoProcessor
+@ stdcall D3DX10CreateAsyncTextureProcessor(ptr ptr ptr) d3dx10_43.D3DX10CreateAsyncTextureProcessor
+@ stdcall D3DX10CreateDevice(ptr long long long ptr) d3dx10_43.D3DX10CreateDevice
+@ stdcall D3DX10CreateDeviceAndSwapChain(ptr long long long ptr ptr ptr) d3dx10_43.D3DX10CreateDeviceAndSwapChain
+@ stdcall D3DX10CreateEffectFromFileA(str ptr ptr str long long ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectFromFileA
+@ stdcall D3DX10CreateEffectFromFileW(wstr ptr ptr str long long ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectFromFileW
+@ stdcall D3DX10CreateEffectFromMemory(ptr long str ptr ptr str long long ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectFromMemory
+@ stdcall D3DX10CreateEffectFromResourceA(long str str ptr ptr str long long ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectFromResourceA
+@ stdcall D3DX10CreateEffectFromResourceW(long wstr wstr ptr ptr str long long ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectFromResourceW
+@ stdcall D3DX10CreateEffectPoolFromFileA(str ptr ptr str long long ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectPoolFromFileA
+@ stdcall D3DX10CreateEffectPoolFromFileW(wstr ptr ptr str long long ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectPoolFromFileW
+@ stdcall D3DX10CreateEffectPoolFromMemory(ptr long str ptr ptr str long long ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectPoolFromMemory
+@ stdcall D3DX10CreateEffectPoolFromResourceA(long str str ptr ptr str long long ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectPoolFromResourceA
+@ stdcall D3DX10CreateEffectPoolFromResourceW(long wstr wstr ptr ptr str long long ptr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateEffectPoolFromResourceW
+@ stdcall D3DX10CreateFontA(ptr long long long long long long long long long str ptr) d3dx10_43.D3DX10CreateFontA
+@ stdcall D3DX10CreateFontIndirectA(ptr ptr ptr) d3dx10_43.D3DX10CreateFontIndirectA
+@ stdcall D3DX10CreateFontIndirectW(ptr ptr ptr) d3dx10_43.D3DX10CreateFontIndirectW
+@ stdcall D3DX10CreateFontW(ptr long long long long long long long long long wstr ptr) d3dx10_43.D3DX10CreateFontW
+@ stdcall D3DX10CreateMesh(ptr ptr long str long long long ptr) d3dx10_43.D3DX10CreateMesh
+@ stdcall D3DX10CreateShaderResourceViewFromFileA(ptr str ptr ptr ptr ptr) d3dx10_43.D3DX10CreateShaderResourceViewFromFileA
+@ stdcall D3DX10CreateShaderResourceViewFromFileW(ptr wstr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateShaderResourceViewFromFileW
+@ stdcall D3DX10CreateShaderResourceViewFromMemory(ptr ptr long ptr ptr ptr ptr) d3dx10_43.D3DX10CreateShaderResourceViewFromMemory
+@ stdcall D3DX10CreateShaderResourceViewFromResourceA(ptr long str ptr ptr ptr ptr) d3dx10_43.D3DX10CreateShaderResourceViewFromResourceA
+@ stdcall D3DX10CreateShaderResourceViewFromResourceW(ptr long wstr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateShaderResourceViewFromResourceW
+@ stdcall D3DX10CreateSkinInfo(ptr) d3dx10_43.D3DX10CreateSkinInfo
+@ stdcall D3DX10CreateSprite(ptr long ptr) d3dx10_43.D3DX10CreateSprite
+@ stdcall D3DX10CreateTextureFromFileA(ptr str ptr ptr ptr ptr) d3dx10_43.D3DX10CreateTextureFromFileA
+@ stdcall D3DX10CreateTextureFromFileW(ptr wstr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateTextureFromFileW
+@ stdcall D3DX10CreateTextureFromMemory(ptr ptr long ptr ptr ptr ptr) d3dx10_43.D3DX10CreateTextureFromMemory
+@ stdcall D3DX10CreateTextureFromResourceA(ptr long str ptr ptr ptr ptr) d3dx10_43.D3DX10CreateTextureFromResourceA
+@ stdcall D3DX10CreateTextureFromResourceW(ptr long wstr ptr ptr ptr ptr) d3dx10_43.D3DX10CreateTextureFromResourceW
+@ stdcall D3DX10FilterTexture(ptr long long) d3dx10_43.D3DX10FilterTexture
+@ stdcall D3DX10GetFeatureLevel1(ptr ptr) d3dx10_43.D3DX10GetFeatureLevel1
+@ stdcall D3DX10GetImageInfoFromFileA(str ptr ptr ptr) d3dx10_43.D3DX10GetImageInfoFromFileA
+@ stdcall D3DX10GetImageInfoFromFileW(wstr ptr ptr ptr) d3dx10_43.D3DX10GetImageInfoFromFileW
+@ stdcall D3DX10GetImageInfoFromMemory(ptr long ptr ptr ptr) d3dx10_43.D3DX10GetImageInfoFromMemory
+@ stdcall D3DX10GetImageInfoFromResourceA(long str ptr ptr ptr) d3dx10_43.D3DX10GetImageInfoFromResourceA
+@ stdcall D3DX10GetImageInfoFromResourceW(long wstr ptr ptr ptr) d3dx10_43.D3DX10GetImageInfoFromResourceW
+@ stdcall D3DX10LoadTextureFromTexture(ptr ptr ptr) d3dx10_43.D3DX10LoadTextureFromTexture
+@ stdcall D3DX10PreprocessShaderFromFileA(str ptr ptr ptr ptr ptr) d3dx10_43.D3DX10PreprocessShaderFromFileA
+@ stdcall D3DX10PreprocessShaderFromFileW(wstr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10PreprocessShaderFromFileW
+@ stdcall D3DX10PreprocessShaderFromMemory(str long str ptr ptr ptr ptr ptr) d3dx10_43.D3DX10PreprocessShaderFromMemory
+@ stdcall D3DX10PreprocessShaderFromResourceA(long str str ptr ptr ptr ptr ptr) d3dx10_43.D3DX10PreprocessShaderFromResourceA
+@ stdcall D3DX10PreprocessShaderFromResourceW(long wstr wstr ptr ptr ptr ptr ptr) d3dx10_43.D3DX10PreprocessShaderFromResourceW
+@ stdcall D3DX10SHProjectCubeMap(long ptr ptr ptr ptr) d3dx10_43.D3DX10SHProjectCubeMap
+@ stdcall D3DX10SaveTextureToFileA(ptr ptr str) d3dx10_43.D3DX10SaveTextureToFileA
+@ stdcall D3DX10SaveTextureToFileW(ptr ptr wstr) d3dx10_43.D3DX10SaveTextureToFileW
+@ stdcall D3DX10SaveTextureToMemory(ptr ptr ptr long) d3dx10_43.D3DX10SaveTextureToMemory
+@ stdcall D3DX10UnsetAllDeviceObjects(ptr) d3dx10_43.D3DX10UnsetAllDeviceObjects
+@ stdcall D3DXBoxBoundProbe(ptr ptr ptr ptr) d3dx10_43.D3DXBoxBoundProbe
+@ stdcall D3DXColorAdjustContrast(ptr ptr long) d3dx10_43.3DXColorAdjustContrast
+@ stdcall D3DXColorAdjustSaturation(ptr ptr long) d3dx10_43.D3DXColorAdjustSaturation
+@ stdcall D3DXComputeBoundingBox(ptr long long ptr ptr) d3dx10_43.D3DXComputeBoundingBox
+@ stdcall D3DXComputeBoundingSphere(ptr long long ptr ptr) d3dx10_43.D3DXComputeBoundingSphere
+@ stdcall D3DXCpuOptimizations(long) d3dx10_43.D3DXCpuOptimizations
+@ stdcall D3DXCreateMatrixStack(long ptr) d3dx10_43.D3DXCreateMatrixStack
+@ stdcall D3DXFloat16To32Array(ptr ptr long) d3dx10_43.D3DXFloat16To32Array
+@ stdcall D3DXFloat32To16Array(ptr ptr long) d3dx10_43.D3DXFloat32To16Array
+@ stdcall D3DXFresnelTerm(long long) d3dx10_43.D3DXFresnelTerm
+@ stdcall D3DXIntersectTri(ptr ptr ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DXIntersectTri
+@ stdcall D3DXMatrixAffineTransformation2D(ptr long ptr long ptr) d3dx10_43.D3DXMatrixAffineTransformation2D
+@ stdcall D3DXMatrixAffineTransformation(ptr long ptr ptr ptr) d3dx10_43.D3DXMatrixAffineTransformation
+@ stdcall D3DXMatrixDecompose(ptr ptr ptr ptr) d3dx10_43.D3DXMatrixDecompose
+@ stdcall D3DXMatrixDeterminant(ptr) d3dx10_43.D3DXMatrixDeterminant
+@ stdcall D3DXMatrixInverse(ptr ptr ptr) d3dx10_43.D3DXMatrixInverse
+@ stdcall D3DXMatrixLookAtLH(ptr ptr ptr ptr) d3dx10_43.D3DXMatrixLookAtLH
+@ stdcall D3DXMatrixLookAtRH(ptr ptr ptr ptr) d3dx10_43.D3DXMatrixLookAtRH
+@ stdcall D3DXMatrixMultiply(ptr ptr ptr) d3dx10_43.D3DXMatrixMultiply
+@ stdcall D3DXMatrixMultiplyTranspose(ptr ptr ptr) d3dx10_43.D3DXMatrixMultiplyTranspose
+@ stdcall D3DXMatrixOrthoLH(ptr long long long long) d3dx10_43.D3DXMatrixOrthoLH
+@ stdcall D3DXMatrixOrthoOffCenterLH(ptr long long long long long long) d3dx10_43.D3DXMatrixOrthoOffCenterLH
+@ stdcall D3DXMatrixOrthoOffCenterRH(ptr long long long long long long) d3dx10_43.D3DXMatrixOrthoOffCenterRH
+@ stdcall D3DXMatrixOrthoRH(ptr long long long long) d3dx10_43.D3DXMatrixOrthoRH
+@ stdcall D3DXMatrixPerspectiveFovLH(ptr long long long long) d3dx10_43.D3DXMatrixPerspectiveFovLH
+@ stdcall D3DXMatrixPerspectiveFovRH(ptr long long long long) d3dx10_43.D3DXMatrixPerspectiveFovRH
+@ stdcall D3DXMatrixPerspectiveLH(ptr long long long long) d3dx10_43.D3DXMatrixPerspectiveLH
+@ stdcall D3DXMatrixPerspectiveOffCenterLH(ptr long long long long long long) d3dx10_43.D3DXMatrixPerspectiveOffCenterLH
+@ stdcall D3DXMatrixPerspectiveOffCenterRH(ptr long long long long long long) d3dx10_43.D3DXMatrixPerspectiveOffCenterRH
+@ stdcall D3DXMatrixPerspectiveRH(ptr long long long long) d3dx10_43.D3DXMatrixPerspectiveRH
+@ stdcall D3DXMatrixReflect(ptr ptr) d3dx10_43.D3DXMatrixReflect
+@ stdcall D3DXMatrixRotationAxis(ptr ptr long) d3dx10_43.D3DXMatrixRotationAxis
+@ stdcall D3DXMatrixRotationQuaternion(ptr ptr) d3dx10_43.D3DXMatrixRotationQuaternion
+@ stdcall D3DXMatrixRotationX(ptr long) d3dx10_43.D3DXMatrixRotationX
+@ stdcall D3DXMatrixRotationY(ptr long) d3dx10_43.D3DXMatrixRotationY
+@ stdcall D3DXMatrixRotationYawPitchRoll(ptr long long long) d3dx10_43.D3DXMatrixRotationYawPitchRoll
+@ stdcall D3DXMatrixRotationZ(ptr long) d3dx10_43.D3DXMatrixRotationZ
+@ stdcall D3DXMatrixScaling(ptr long long long) d3dx10_43.D3DXMatrixScaling
+@ stdcall D3DXMatrixShadow(ptr ptr ptr) d3dx10_43.D3DXMatrixShadow
+@ stdcall D3DXMatrixTransformation2D(ptr ptr long ptr ptr long ptr) d3dx10_43.D3DXMatrixTransformation2D
+@ stdcall D3DXMatrixTransformation(ptr ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DXMatrixTransformation
+@ stdcall D3DXMatrixTranslation(ptr long long long) d3dx10_43.D3DXMatrixTranslation
+@ stdcall D3DXMatrixTranspose(ptr ptr) d3dx10_43.D3DXMatrixTranspose
+@ stdcall D3DXPlaneFromPointNormal(ptr ptr ptr) d3dx10_43.D3DXPlaneFromPointNormal
+@ stdcall D3DXPlaneFromPoints(ptr ptr ptr ptr) d3dx10_43.D3DXPlaneFromPoints
+@ stdcall D3DXPlaneIntersectLine(ptr ptr ptr ptr) d3dx10_43.D3DXPlaneIntersectLine
+@ stdcall D3DXPlaneNormalize(ptr ptr) d3dx10_43.D3DXPlaneNormalize
+@ stdcall D3DXPlaneTransform(ptr ptr ptr) d3dx10_43.D3DXPlaneTransform
+@ stdcall D3DXPlaneTransformArray(ptr long ptr long ptr long) d3dx10_43.D3DXPlaneTransformArray
+@ stdcall D3DXQuaternionBaryCentric(ptr ptr ptr ptr long long) d3dx10_43.D3DXQuaternionBaryCentric
+@ stdcall D3DXQuaternionExp(ptr ptr) d3dx10_43.D3DXQuaternionExp
+@ stdcall D3DXQuaternionInverse(ptr ptr) d3dx10_43.D3DXQuaternionInverse
+@ stdcall D3DXQuaternionLn(ptr ptr) d3dx10_43.D3DXQuaternionLn
+@ stdcall D3DXQuaternionMultiply(ptr ptr ptr) d3dx10_43.D3DXQuaternionMultiply
+@ stdcall D3DXQuaternionNormalize(ptr ptr) d3dx10_43.D3DXQuaternionNormalize
+@ stdcall D3DXQuaternionRotationAxis(ptr ptr long) d3dx10_43.D3DXQuaternionRotationAxis
+@ stdcall D3DXQuaternionRotationMatrix(ptr ptr) d3dx10_43.D3DXQuaternionRotationMatrix
+@ stdcall D3DXQuaternionRotationYawPitchRoll(ptr long long long) d3dx10_43.D3DXQuaternionRotationYawPitchRoll
+@ stdcall D3DXQuaternionSlerp(ptr ptr ptr long) d3dx10_43.D3DXQuaternionSlerp
+@ stdcall D3DXQuaternionSquad(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXQuaternionSquad
+@ stdcall D3DXQuaternionSquadSetup(ptr ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DXQuaternionSquadSetup
+@ stdcall D3DXQuaternionToAxisAngle(ptr ptr ptr) d3dx10_43.D3DXQuaternionToAxisAngle
+@ stdcall D3DXSHAdd(ptr long ptr ptr) d3dx10_43.D3DXSHAdd
+@ stdcall D3DXSHDot(long ptr ptr) d3dx10_43.D3DXSHDot
+@ stdcall D3DXSHEvalConeLight(long ptr long long long long ptr ptr ptr) d3dx10_43.D3DXSHEvalConeLight
+@ stdcall D3DXSHEvalDirection(ptr long ptr) d3dx10_43.D3DXSHEvalDirection
+@ stdcall D3DXSHEvalDirectionalLight(long ptr long long long long ptr ptr ptr) d3dx10_43.D3DXSHEvalDirectionalLight
+@ stdcall D3DXSHEvalHemisphereLight(long ptr long long ptr ptr ptr) d3dx10_43.D3DXSHEvalHemisphereLight
+@ stdcall D3DXSHEvalSphericalLight(long ptr long long long long ptr ptr ptr) d3dx10_43.D3DXSHEvalSphericalLight
+@ stdcall D3DXSHMultiply2(ptr ptr ptr) d3dx10_43.D3DXSHMultiply2
+@ stdcall D3DXSHMultiply3(ptr ptr ptr) d3dx10_43.D3DXSHMultiply3
+@ stdcall D3DXSHMultiply4(ptr ptr ptr) d3dx10_43.D3DXSHMultiply4
+@ stdcall D3DXSHMultiply5(ptr ptr ptr) d3dx10_43.D3DXSHMultiply5
+@ stdcall D3DXSHMultiply6(ptr ptr ptr) d3dx10_43.D3DXSHMultiply6
+@ stdcall D3DXSHRotate(ptr long ptr ptr) d3dx10_43.D3DXSHRotate
+@ stdcall D3DXSHRotateZ(ptr long long ptr) d3dx10_43.D3DXSHRotateZ
+@ stdcall D3DXSHScale(ptr long ptr ptr) d3dx10_43.D3DXSHScale
+@ stdcall D3DXSphereBoundProbe(ptr long ptr ptr) d3dx10_43.D3DXSphereBoundProbe
+@ stdcall D3DXVec2BaryCentric(ptr ptr ptr ptr long long) d3dx10_43.D3DXVec2BaryCentric
+@ stdcall D3DXVec2CatmullRom(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec2CatmullRom
+@ stdcall D3DXVec2Hermite(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec2Hermite
+@ stdcall D3DXVec2Normalize(ptr ptr) d3dx10_43.D3DXVec2Normalize
+@ stdcall D3DXVec2Transform(ptr ptr ptr) d3dx10_43.D3DXVec2Transform
+@ stdcall D3DXVec2TransformArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec2TransformArray
+@ stdcall D3DXVec2TransformCoord(ptr ptr ptr) d3dx10_43.D3DXVec2TransformCoord
+@ stdcall D3DXVec2TransformCoordArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec2TransformCoordArray
+@ stdcall D3DXVec2TransformNormal(ptr ptr ptr) d3dx10_43.D3DXVec2TransformNormal
+@ stdcall D3DXVec2TransformNormalArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec2TransformNormalArray
+@ stdcall D3DXVec3BaryCentric(ptr ptr ptr ptr long long) d3dx10_43.D3DXVec3BaryCentric
+@ stdcall D3DXVec3CatmullRom(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec3CatmullRom
+@ stdcall D3DXVec3Hermite(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec3Hermite
+@ stdcall D3DXVec3Normalize(ptr ptr) d3dx10_43.D3DXVec3Normalize
+@ stdcall D3DXVec3Project(ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DXVec3Project
+@ stdcall D3DXVec3ProjectArray(ptr long ptr long ptr ptr ptr ptr long) d3dx10_43.D3DXVec3ProjectArray
+@ stdcall D3DXVec3Transform(ptr ptr ptr) d3dx10_43.D3DXVec3Transform
+@ stdcall D3DXVec3TransformArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec3TransformArray
+@ stdcall D3DXVec3TransformCoord(ptr ptr ptr) d3dx10_43.D3DXVec3TransformCoord
+@ stdcall D3DXVec3TransformCoordArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec3TransformCoordArray
+@ stdcall D3DXVec3TransformNormal(ptr ptr ptr) d3dx10_43.D3DXVec3TransformNormal
+@ stdcall D3DXVec3TransformNormalArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec3TransformNormalArray
+@ stdcall D3DXVec3Unproject(ptr ptr ptr ptr ptr ptr) d3dx10_43.D3DXVec3Unproject
+@ stdcall D3DXVec3UnprojectArray(ptr long ptr long ptr ptr ptr ptr long) d3dx10_43.D3DXVec3UnprojectArray
+@ stdcall D3DXVec4BaryCentric(ptr ptr ptr ptr long long) d3dx10_43.D3DXVec4BaryCentric
+@ stdcall D3DXVec4CatmullRom(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec4CatmullRom
+@ stdcall D3DXVec4Cross(ptr ptr ptr ptr) d3dx10_43.D3DXVec4Cross
+@ stdcall D3DXVec4Hermite(ptr ptr ptr ptr ptr long) d3dx10_43.D3DXVec4Hermite
+@ stdcall D3DXVec4Normalize(ptr ptr) d3dx10_43.D3DXVec4Normalize
+@ stdcall D3DXVec4Transform(ptr ptr ptr) d3dx10_43.D3DXVec4Transform
+@ stdcall D3DXVec4TransformArray(ptr long ptr long ptr long) d3dx10_43.D3DXVec4TransformArray
diff --git a/dlls/d3dx10_42/d3dx10_42_main.c b/dlls/d3dx10_42/d3dx10_42_main.c
new file mode 100644
index 0000000000000000000000000000000000000000..f5fe6da5c1c4334e9f24777c0fda2f24b2c8b856
--- /dev/null
+++ b/dlls/d3dx10_42/d3dx10_42_main.c
@@ -0,0 +1,63 @@
+/*
+ * D3DX10 main file
+ *
+ * Copyright (c) 2010 Owen Rudge for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+#include "config.h"
+#include "wine/port.h"
+
+#include <stdarg.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "winuser.h"
+#include "objbase.h"
+
+#include "d3d10.h"
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+    switch (fdwReason)
+    {
+        case DLL_WINE_PREATTACH:
+            return FALSE;    /* prefer native version */
+        case DLL_PROCESS_ATTACH:
+            DisableThreadLibraryCalls(hinstDLL);
+            break;
+        case DLL_PROCESS_DETACH:
+            break;
+    }
+
+   return TRUE;
+}
+
+/***********************************************************************
+ * D3DX10CheckVersion
+ *
+ * Checks whether we are compiling against the correct d3d and d3dx library.
+ */
+BOOL WINAPI D3DX10CheckVersion(UINT d3dsdkvers, UINT d3dxsdkvers)
+{
+    if ((d3dsdkvers == D3D10_SDK_VERSION) && (d3dxsdkvers == 42))
+        return TRUE;
+
+    return FALSE;
+}
diff --git a/dlls/d3dx10_42/version.rc b/dlls/d3dx10_42/version.rc
new file mode 100644
index 0000000000000000000000000000000000000000..3eb741875e4f55ddc28b4f4fe10e9b6cf1ad9c5c
--- /dev/null
+++ b/dlls/d3dx10_42/version.rc
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2010 Owen Rudge for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#define WINE_FILEDESCRIPTION_STR "Wine D3DX10"
+#define WINE_FILENAME_STR "d3dx10_42.dll"
+#define WINE_FILEVERSION 9,29,952,3001
+#define WINE_FILEVERSION_STR "9.29.952.3001"
+#define WINE_PRODUCTVERSION 9,29,952,3001
+#define WINE_PRODUCTVERSION_STR "9.29.952.3001"
+
+#include "wine/wine_common_ver.rc"