Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rome Total War - Invisible projectiles #101

Open
halapli opened this issue Jul 12, 2019 · 9 comments
Open

Rome Total War - Invisible projectiles #101

halapli opened this issue Jul 12, 2019 · 9 comments

Comments

@halapli
Copy link

halapli commented Jul 12, 2019

Hi,

Been using this .dll for years after Rome 1 was suddenly updated in 2013 or 2014. Everything worked well with the .dll until around two years ago, which is when I noticed artillery shooting invisible projectiles. Google results show threads reporting this problem in 2016, so I'm expecting some Windows or nvidia update breaking it. I'm using nvidia 940m, and running Win 10. Any ideas?

@HerMajestyDrMona
Copy link
Contributor

HerMajestyDrMona commented Jul 13, 2019

Since nvidia 940m is a mobile GPU - Is there any other GPU present (perhaps Intel HD) in your laptop?
Are you sure this game starts on Nvidia GPU, not Intel HD?

In Empire Earth II for example, there is a bug with missing fire/explosion effects on Intel HD. Unofficial Patch 1.5 fixes this issue with option:

Fix for graphics bugs (no fire/explosion) in DirectX 9.
The DirectX 9 fix for graphics bugs (no fire/explosion) fixes issues with invisible fire/explosion effects in game. It forces Pixel Shader Version 1.1.

I have a heavily modified version of d3d8to9 with a configuration file, but you could try compiling with edited "d3d8types.cpp":
Change:
Output.PixelShaderVersion = D3DPS_VERSION(1, 4);
to:
Output.PixelShaderVersion = D3DPS_VERSION(1, 1);

@halapli
Copy link
Author

halapli commented Jul 13, 2019

Yeah, according to task manager it is running on the Nvidia GPU. Tried to run it on the Intel one as well and projectiles are still invisible (on top of worse performance, since it's the integrated gpu).
I've also compiled it with the edit you've suggested, but it didn't help.

@HerMajestyDrMona
Copy link
Contributor

Could you please tell me, if you tried how it works with older versions of d3d8to9?
https://github.com/crosire/d3d8to9/releases
For example: v1.3.0.

Also, have you tested how it works without d3d8to9 (running on DirectX 8)?

@halapli
Copy link
Author

halapli commented Jul 13, 2019

I did, the first .dll I had was from this thread that was made back in 2016. Also tried a few other older versions as well as the most recent.
https://steamcommunity.com/app/4760/discussions/0/412448792372318074/

Without the .dll I get much worse performance (which is the reason why I got it) but the projectiles are visible.

@HerMajestyDrMona
Copy link
Contributor

Yes, using d3d8to9 is understandable and well-needed on Windows 10. I just thought it could be some of d3d8to9 updates that caused issues.

I'm not sure if in 2013-2014 crosire's d3d8to9 was available. Perhaps you've used:
http://enbdev.com/convertor_dx8_dx9_v0036.htm ?
Either way, it's good to try how it works with "NBSeries DX8 to DX9 Convertor". It might not be as good, but worth to test just to know.

I remember @elishacloud used to find workarounds for some games that had graphics issues. In most (if not all cases) it depended on errors / undocumented procedures committed by game developers.

@halapli
Copy link
Author

halapli commented Jul 13, 2019

Performance with NBSeries DX8 to DX9 Convertor is good, however it breaks some textures and projectiles are still invisible.
I've also tried WineD3D for Windows which also uses some d3d8.dll, and while the performance was a bit better than without it and the projectiles worked fine, fps often dropped below 20. Looks like every possible solution introduces some other problem.

@elishacloud
Copy link
Contributor

It's been a while since I have been on here. I have been busy working on other projects. I was mainly using this project as a learning tool since I had never worked with DirectX before this project. But now I see the issues piling up and I have not had a chance to work on them. Anyways, I hope to come back soon and see if I can fix some more of these issues.

@halapli, is is possible to get a screenshot of these projectiles and tell me how to reproduce the issue? Also what version of the game are you using? I see the game on Steam.

@halapli
Copy link
Author

halapli commented Jul 14, 2019

Yes, I'm using the latest Steam version but I've also tried CD version with 1.5 patch, getting the same behaviour. From what I've read so far, it seems like everyone with this issue has Nvidia GPU (although it also happens on my integrated Intel), using Windows and also using the d3d8.dll, so it should be reproducible with all of this included.

Attached screenshots of both flaming and normal projectiles. Normal ones are a simple 2d object that rotates with camera, flaming ones are a proper 3d object.
flaming projectile
normal projectile

@slightlyoutofphase
Copy link

FYI, the latest available version of Rome: Total War (as available from Steam) definitely uses DirectX 9 natively, not 8. So there should not actually be any reason to use this wrapper with it in the first place...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants