narzoul / DDrawCompat

DirectDraw and Direct3D 1-7 compatibility, performance and visual enhancements for Windows Vista, 7, 8, 10 and 11
BSD Zero Clause License
893 stars 67 forks source link

Napoleon in Italy black boxes instead of sprites #177

Closed Buechnerstod closed 8 months ago

Buechnerstod commented 1 year ago

hI I have had problems running Napoleon in Italy (created by Hussar Games, published through Matrxi Games - though no discontinued) DDRAWcompat has made the game screen usable again, but on the game map all the uni sprites are black boxes and if you move the screen around the sprites seem to be on some black layer within the black boxes, but out of all alignment with where the sprites should be Untitled-1

narzoul commented 1 year ago

I don't have this game so it'll be hard to debug. Do any of the other Hussar Games have similar issues for you? They seem to use similar engines at least, but I didn't have any problems like this with either 1848 or the For Liberty demo.

Buechnerstod commented 1 year ago

yes they all use the same engine and i get teh problem with all of them. the only fix for me is to run them in vmware virtual xp os it seems

On Wed, Jan 4, 2023 at 9:46 AM narzoul @.***> wrote:

I don't have this game so it'll be hard to debug. Do any of the other Hussar Games have similar issues for you? They seem to use similar engines at least, but I didn't have any problems like this with either 1848 or the For Liberty demo.

— Reply to this email directly, view it on GitHub https://github.com/narzoul/DDrawCompat/issues/177#issuecomment-1370299906, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5BQD4LMWOBT6ISZAASOBZ3WQST3DANCNFSM6AAAAAATPED7AI . You are receiving this because you authored the thread.Message ID: @.***>

narzoul commented 1 year ago

Hmm, I have somewhat similar glitches in 1848 only if I enable ForceD3D9On12. Do you have an Intel GPU that uses D3D9On12 perhaps? Please share your DDrawCompat log file, it can be seen there.

Buechnerstod commented 1 year ago

Sure, here it is.

On Wed, Jan 4, 2023 at 9:57 AM narzoul @.***> wrote:

Hmm, I have somewhat similar glitches in 1848 only if I enable ForceD3D9On12. Do you have an Intel GPU that uses D3D9On12 perhaps? Please share your DDrawCompat log file, it can be seen there.

— Reply to this email directly, view it on GitHub https://github.com/narzoul/DDrawCompat/issues/177#issuecomment-1370306415, or unsubscribe https://github.com/notifications/unsubscribe-auth/A5BQD4L4FYSLZCEVLMM4E4LWQSVELANCNFSM6AAAAAATPED7AI . You are receiving this because you authored the thread.Message ID: @.***>

narzoul commented 1 year ago

I don't see it. Please reply via GitHub, I think e-mail attachments are ignored.

Buechnerstod commented 1 year ago

DDrawCompat-Napoleon[2].log

okay here it is

narzoul commented 1 year ago

Yes, your system is using D3D9On12, so that probably causes most of your issues. Compatibility with D3D9On12 is not yet great in DDrawCompat. I've started improving on it recently, and it looks like 1848 already displays fine with my offline development version. I'll try to identify which fixes are needed and get you a testable release tonight.

Buechnerstod commented 1 year ago

thats great thank you

so this d3d9on12 thing is there anything i can do to not have my system use it? it might explain some other graphics issues i am having which others do not seem to be

also this might what is causing Battalia in my other post here to have issues too then?

narzoul commented 1 year ago

Yes, it's probably the same reason for your issues in other games, but I haven't had time to check those yet. Based on your posts in DxWnd forums I suppose you have a laptop with NVIDIA Optimus, but unfortunately it doesn't support running DX1-8 on the NVIDIA GPU under Windows 10/11, so you're stuck with the integrated Intel GPU for those (unless you use something like dgVoodoo 2 which translates to DX11/12). See here: https://nvidia.custhelp.com/app/answers/detail/a_id/3733/~/games-based-on-directx-8-and-older-versions-of-directx-will-only-run-on

And newer Intel GPUs are stuck with D3D9On12 because they don't have a native DirectX 9 driver anymore. See here: https://www.intel.com/content/www/us/en/support/articles/000091238/graphics.html

Buechnerstod commented 1 year ago

oh damn - thank you for enlightening me on this, - i did see the word optimus come up in some nvidia control panel settings so really even if i downgraded to windows10 i would still have these issues then? it seems unavoidable if that is how they are making gaming laptops now? or are their brands which will still run dx1-8 on nvidia or some equivalent amd thing?

fortunately my biggest area of retro gaming is with dosbox still, but there are a host of late 90s early 00s games i still love and play -getting napoleon in italy and battalia workign with ddrawcompat would be sublime

after that, i have to try and see if i can get the ea F1 games to work, - f12000 does so far,

also i am hoping Panzer Commander and Luftwaffe Commander will still work

narzoul commented 1 year ago

This simple fix should work for this game (and probably most 2D games in general): ddraw.zip (diff.txt compared to v0.4.0)

This won't help with Battalia, it seems to have a different issue, even without D3D9On12. I'll look into it later.

I think the GDI resource leak fix may be needed too (in case you notice the cursor turning into a black box eventually), but it can be worked around by using DisplayResolution=app if that's the case.

Alt-tabbing is broken as well, but that seems to be partly the game's fault, it doesn't work well with native ddraw either.

Buechnerstod commented 1 year ago

thank you! i will try it now, and i am hoping even moreso that battalia can be fixed so please see if you can fix it. it use to work fine in windows10 with no compat issues

Buechnerstod commented 1 year ago

yes, Napoleon in Italy looks to be running perfectly now and i suspect it will be the same for For Liberty too! this is great news thank you

narzoul commented 8 months ago

Should be fixed in v0.5.0.