

Now, if I go in game and change the last line fromĭ3d8to9 builds the shader just fine and it works in game. I looked up the error and 88760B59 means invalid data (D3DXERR_INVALIDDATA). Log: CreateVertexShader failed(88760B59). \Star Wars Republic Commando\GameData\System\memory(69,71): error X2000: syntax error : unexpected float '0' It also errors out in the log for d3d8to9 with Note the last line on each one: the engine's version hasĭ3d8to9 inserts a comment and changes it toĪnd leaves the old 0.x after the inserted comment Mov oFog /* removed swizzle */, c2.x /* select single component */0.x Mov oD0, c0 /* initialize output register oD0 */ Mov oT0, c0 /* initialize output register oT0 */ Mov oT1, c0 /* initialize output register oT1 */ Mov oT2, c0 /* initialize output register oT2 */

Use the Dot as brightness and add flicker
#D3dx9 30 dll flatout 2 code#
(I'm using quote since the code tag does not want to work with it)Īdd oT0.x, r3, c add const offset held in c Take for example: the hardware shader DynamicHologram, this is how it appears in editor In d3d8, the shaders work fine, but in d3d8to9 it rebuilds the vertex shaders with wrong instructions. I have no c++ knowledge of any sorts, since I am primarily a Java programmer, but I hope I can help with one issue with vertex shaders.įor the longest time, the hardware shaders (Unreal Engine 2 combines vertex and pixel shaders) for some of the effects have not been being rebuilt properly. So I've been following this project silently for about a year and a half for now as it interested me in the project I'm working on.

Graphical and crashing issues on FireStarter 2004 by gsc game world What's worse, it instantiates itself with D3DCREATE_MULTITHREADED and who knows how thread unsafe d3d8to9 device wrapper really is. Said game also seems to crash consistently inside Direct3DDevice8::SetCurrentTexturePalette but that seems like a different issue. Maybe device wrapper should account for such odd behaviour, store its backbuffer surface wrappers in an array and return those on demand? This should probably match real device behaviour more closely. Should this be considered severe API misuse and not handled, or is this something to fix on d3d8to9 side? I mean, this is obviously not how you should be managing reference counters but this doesn't seem to crash with a real dx8 device at all. Since d3d8to9 creates a new wrapper class in GetBackBuffer, the call to Release destroys it and any attempts to use this surface fail miserably. Table to map D3D9 interface addresses to their matching D3D8 implementationsĪny contributions to the project are welcomed, it's recommended to use GitHub pull requests.Ī big shout-out to all the existing contributors who worked on improving compatibility, especially elishacloud! LicenseĪll source code in this repository is licensed under a BSD 2-clause license. Implementation of the IDirect3DDevice8 interface, including shader conversionĭeclaration of all used D3D8 types one would otherwise find in d3d8.h Implementation of the IDirect3D8 interface, including device creation
#D3dx9 30 dll flatout 2 install#
It is recommended to install the old standalone DirectX end-user runtime, which is required for the D3DX libraries used for disassembling and assembling the shaders.Ī quick overview of what some of the source code files contain: Fileĭefinition of the main D3D8 entry point Direct3DCreate8 You'll need Visual Studio 2013 or higher to build d3d8to9. If you want to tweak this behavior, such as forcing VSync to be off, it is recommended to use a separate tool, such as dxwrapper, which uses d3d8to9 internally for API call conversion, but adds additional configuration opportunities. This may give an inaccurate impression of lower performance with d3d8to9, while it actually follows what the application requests. One common issue is VSync getting enabled with d3d8to9, even though it appears inactive in native Direct3D 8, despite the application enabling it.
#D3dx9 30 dll flatout 2 drivers#
But on recent versions of Windows, depending on system settings, GPU drivers and other factors, rendering behavior in Direct3D 9 using d3d8to9 may differ from native Direct3D 8. Note that d3d8to9 does exact translation from Direct3D 8 to Direct3D 9 only. By that it also opens those games to new possibilities from proven modding tools written for Direct3D 9, including ReShade. This is a pseudo-driver module that intends to improve compatibility and stability in games using Direct3D 8 for rendering by converting all API calls and low-level shaders to equivalent Direct3D 9 ones.
