Jump to content
ducon2016

[FIX] Chaos Legion Broken Textures

Recommended Posts

Chaos Legion uses DirectX 8 and had broken texturing on recent hardware. Just put the attached dll in the game folder and it will now work fine.

Without Fix:

WithoutFix.jpg.9c5e6cc5595ec344bb77ba04dda458a6.jpg

 

With Fix:

WithFix.jpg.d0d2f9fc1bf8c5cbfc845ff141ed4619.jpg

 

d3d8.7z

  • Like 3
  • Thanks 6

Share this post


Link to post
Share on other sites

Any chance you can write down the technical details of what this patch does?

 

I'm talking to the developer of dgVoodoo2 about Chaos Legion's problems and am wondering if that's something that could be implemented in dgVoodoo2.

Share this post


Link to post
Share on other sites
6 minutes ago, ZellSF said:

Any chance you can write down the technical details of what this patch does?

 

I'm talking to the developer of dgVoodoo2 about Chaos Legion's problems and am wondering if that's something that could be implemented in dgVoodoo2.

 

Yes of course, happy to share, and dgVoodoo2 could do that without a problem. I just round the height of the textures to the next power of 2 in the CreateTexture method. For example if the height is 41, I change it to 64 when the texture is created. If already a power of 2, I do not change anything. I will share the source code when I am back, I am traveling for a couple of weeks.

Edited by ducon2016

Share this post


Link to post
Share on other sites
On 5/12/2018 at 2:26 PM, ZellSF said:

Any chance you can write down the technical details of what this patch does?

 

I'm talking to the developer of dgVoodoo2 about Chaos Legion's problems and am wondering if that's something that could be implemented in dgVoodoo2.

 

As promised here is the d3d8to9 fixed to work with Chaos Legion, so you can use reshade and any other cool tools to make it look better. The code is included so that you can share with the dgVoodoo2 guy. Really simple, I just modified the CreateTexture function.

 

unsigned long upper_power_of_two(unsigned long v)
{
	v--;
	v |= v >> 1;
	v |= v >> 2;
	v |= v >> 4;
	v |= v >> 8;
	v |= v >> 16;
	return v + 1;
}

HRESULT STDMETHODCALLTYPE Direct3DDevice8::CreateTexture(UINT Width, UINT Height, UINT Levels, DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, Direct3DTexture8 **ppTexture)
{
	Height = upper_power_of_two(Height);

 

d3d8to9-ChaosLegion.7z

Edited by ducon2016
  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Hi guys, I wanted to ask if there are news, because using the file shared by ducon2016 in the first post you have the perfect texture but 'I can not use dgVoodoo2 in resolution 1920x1080, who can help me?

Share this post


Link to post
Share on other sites
1 hour ago, N3CRON said:

Hi guys, I wanted to ask if there are news, because using the file shared by ducon2016 in the first post you have the perfect texture but 'I can not use dgVoodoo2 in resolution 1920x1080, who can help me?

 

Try d3d8to9-ChaosLegion.7z from the post just above yours.

 

  • Confused 1

Share this post


Link to post
Share on other sites
20 ore fa, ducon2016 ha scritto:

 

Try d3d8to9-ChaosLegion.7z from the post just above yours.

 

I downloaded the archive but I do not know how to use it, I'm sorry but it's the first time.
What should I do?

Share this post


Link to post
Share on other sites

I've already read the first post, if I replace the dll, the textures work correctly, but I can not use dgVoodoo2 and Reshade. Do not work.

Please could you help me with the correct installation? Thanks.

 

EDIT:

 

I tried these two methods, but both fail.

 

First Method
1.Install the game and the official patch 1.01.
2.Install dgVoodoo2 (including the following files: D3D8.dll, D3DImm.dll, DDraw.dll contained in the MS folder)
3.Install the contents of "d3d8.7z" or "d3d8to9-ChaosLegion.7z" in the game folder.
Result: the game starts with the correct textures but no cutscenes are shown only sound, while dgVoodoo2 does not start.

 

Second Method
1.Install the game and the official patch 1.01.
2.Install the contents of "d3d8.7z" or "d3d8to9-ChaosLegion.7z" in the game folder.
3.Install dgVoodoo2 (including the following files: D3D8.dll, D3DImm.dll, DDraw.dll contained in the MS folder)
Result: the game starts with the missing textures, the cutscenes are not shown only sound, while dgVoodoo2 works perfectly.

 

Where am I wrong? please help me. :(

Edited by N3CRON
news adds

Share this post


Link to post
Share on other sites
On 9/1/2018 at 12:33 PM, N3CRON said:

I've already read the first post, if I replace the dll, the textures work correctly, but I can not use dgVoodoo2 and Reshade. Do not work.

Please could you help me with the correct installation? Thanks.

 

EDIT:

 

I tried these two methods, but both fail.

 

First Method
1.Install the game and the official patch 1.01.
2.Install dgVoodoo2 (including the following files: D3D8.dll, D3DImm.dll, DDraw.dll contained in the MS folder)
3.Install the contents of "d3d8.7z" or "d3d8to9-ChaosLegion.7z" in the game folder.
Result: the game starts with the correct textures but no cutscenes are shown only sound, while dgVoodoo2 does not start.

 

Second Method
1.Install the game and the official patch 1.01.
2.Install the contents of "d3d8.7z" or "d3d8to9-ChaosLegion.7z" in the game folder.
3.Install dgVoodoo2 (including the following files: D3D8.dll, D3DImm.dll, DDraw.dll contained in the MS folder)
Result: the game starts with the missing textures, the cutscenes are not shown only sound, while dgVoodoo2 works perfectly.

 

Where am I wrong? please help me. :(

 

I never used dgVoodoo2, but I looked and it seems like it is only wrapping D3D8.dll so you will not be able to make it work. Sorry about the confusion, I thought it could wrap Direct3D 9, I was wrong.

 

I recommend using another wrapper that supports D3D9, and use that with "d3d8to9-ChaosLegion.7z". Reshade and many others do that. What feature do you need dgVoodoo2? I might be able to find a wrapper that does that or add the feature in my dll.

Share this post


Link to post
Share on other sites

Reshade also does not work using your DLL in "d3d8to9-ChaosLegion.7z"
The important functions I need are the following:
1. vSync
2. 16x anisotropic filter
3. MSAA 8x antialiasing
4. Screen resolution 1920x1080p
These features make the game wonderful to play.

P.S. Using the ddl provided by dgVoodoo2, the game works but the textures are missing, which instead are present in your ddl.

If it can be useful I can send you the dll, maybe you are able to merge them together.

Edited by N3CRON
Correction

Share this post


Link to post
Share on other sites

sorry for reply, there are news? :(

Share this post


Link to post
Share on other sites
On 9/22/2018 at 4:11 AM, N3CRON said:

sorry for reply, there are news? :(

 

Sorry for the delay I was traveling, and have been super busy. Also damaged my knee last week, so had to rest. Anyways here is a dll for you to try

 

1. Copy this dll in the game folder

2. Rename your dgvoodoo2 d3d8.dll to d3d8-chained.dll, and put d3d8-chained.dll in the game folder

 

Run the game, it will load my dll which fixes the textures sizes, and will load dgvoodoo2 dll instead of the system one, this should create a chain fixing your issue. Please let me know if it does not work, but also let us know if it works.

d3d8-loadingDgVodoo2.7z

Share this post


Link to post
Share on other sites
13 ore fa, ducon2016 ha scritto:

 

Sorry for the delay I was traveling, and have been super busy. Also damaged my knee last week, so had to rest. Anyways here is a dll for you to try

 

1. Copy this dll in the game folder

2. Rename your dgvoodoo2 d3d8.dll to d3d8-chained.dll, and put d3d8-chained.dll in the game folder

 

Run the game, it will load my dll which fixes the textures sizes, and will load dgvoodoo2 dll instead of the system one, this should create a chain fixing your issue. Please let me know if it does not work, but also let us know if it works.

d3d8-loadingDgVodoo2.7z

Thank you so much, I tried as you said, unfortunately the game crashes on startup.
I have also tried with a clean installation but the problem remains.

Share this post


Link to post
Share on other sites
On 10/2/2018 at 11:32 AM, N3CRON said:

Thank you so much, I tried as you said, unfortunately the game crashes on startup.
I have also tried with a clean installation but the problem remains.

 

Sorry, not sure what is happening. It works for me as shown in the screenshot. You can see the textures are fixed and dgVoodoo is running. Try to copy D3DImm.dll and DDraw.dll from dgVoodoo2_55_3\MS to the game folder.

 

Here is what I have all in the same folder as ChaosLegion.exe:

 

d3d8.dll (the one from the post above)

D3D8-chained.dll (it was d3d8.dll from dgVoodoo2_55_3\MS that I renamed)
D3DImm.dll

DDraw.dll

 

If it does not work, can you try by setting all dgVoodoo options to default.


Capture.JPG.429d0032e7e0b0ed354005d4f10a6003.JPG

Share this post


Link to post
Share on other sites

Thank you so much, now it works !!!

1.jpg

  • Haha 1

Share this post


Link to post
Share on other sites
On 10/4/2018 at 5:51 AM, ducon2016 said:

 

Sorry, not sure what is happening. It works for me as shown in the screenshot. You can see the textures are fixed and dgVoodoo is running. Try to copy D3DImm.dll and DDraw.dll from dgVoodoo2_55_3\MS to the game folder.

 

Here is what I have all in the same folder as ChaosLegion.exe:

 

d3d8.dll (the one from the post above)

D3D8-chained.dll (it was d3d8.dll from dgVoodoo2_55_3\MS that I renamed)
D3DImm.dll

DDraw.dll

 

If it does not work, can you try by setting all dgVoodoo options to default.

algerian vision
Capture.JPG.429d0032e7e0b0ed354005d4f10a6003.JPG

 

Edited by salmino
  • Like 1

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

×