narzoul / DDrawCompat

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

DDrawcompat Prince of Persia 3D - Quicktime fmv black screen in later versions, works fine in 0.2.1 #273

Open blam666 opened 6 months ago

blam666 commented 6 months ago

I've got a problem with ddrawcompat and Prince of Persia 3D (the 1999 PoP game that came before the reboot with Sands of Time).

The game has severe lagging issues and runs jerky with "shaky" scrolling unless I use the newest ddrawcompat. With ddrawcompat 0.5.1 the game runs perfectly, but is unable to display the quicktime fmv cutscenes, there is only a black screen.

Interestingly, some older versions (up to ddrawcompat 2.1) are able to show the videos just fine (I had to turn on WINXPSP2 compatibility mode for the game exe iirc, but it works then). Unfortunately the older ddrawcompat versions just reduce the lag on my system - it gets better than without the wrapper, but it's still there. With 0.5.1 there is no lag and no slowdowns at all as far as I can see.

So I'm stuck between playing the game with reduced, but still noticable lagging WITH fmvs displayed - or lag free and smooth without any fmv video visuals, just a black screen.

I'm on WIndows 10 Home 64, the installed version of Quicktime is 4.1.1. (Quick Time Player 4.1.1.28). Is there a way to overcome the black screen issue for the current ddrawcompat version 0,5,1?

Side note, but I also noticed the game gets displayed much darker when I use 0.5.1 than when I use 0.2.1. I have to turn on "HDMI True Black" on my TV set to make things look proper when I use the newest version. That's not much of a problem, but I wonder if I can control the brightness of the game somehow with a setting in the ini of ddrawcompat 0.5.1.? I haven't figured out if there is one, though.

blam666 commented 6 months ago

Forgot to add graphics is onboard ATI Mobility Radeon HD 4650

BEENNath58 commented 6 months ago

I'm on WIndows 10 Home 64, the installed version of Quicktime is 4.1.1. (Quick Time Player 4.1.1.28). Is there a way to overcome the black screen issue for the current ddrawcompat version 0,5,1?

Try changing the configuration setting "FullscreenMode" to Exclusive

Read the Wiki here

blam666 commented 6 months ago

Hi, thanks for the reply!

I gave it a try and found out changing that FullscreenMode setting unfortunately doesn't work. I set up an DDrawCompat.ini with the line "FullscreenMode = exclusive" in the game folder and I see by hitting RSHIFT + F11 in game that it read the ini and changed the setting to "exclusive", but I still just get a black screen with the video sound playing in the background instead of the quicktime fmv visuals. I changed it back to borderless again and it's the same. Setting that value to borderless or exclusive doesn't seem to change anything about the behaviour of this game.

MiraakThuri commented 6 months ago

@blam666 try version 0.4.0 RealMyst had an issue similar to your game, where FMVs would not play and display a white screen unless run in XP compatibility mode I had perfect performance in 0.4.0 for that game and the white screen issue was gone without using compatibility mode (in 0.5.1 i am currently facing performance issues but that might be due to W7, and white screen problem is back)

blam666 commented 6 months ago

@MiraakThuri Thank you very much for the tip, your case definitely sounds like it could have been a similar issue.

But I already tested all versions available here, and 0.4.0 does have the black screen issue, too. All version from 0.3.0 onwards have it, compatibility modes don't seem to change it either.

Also, 0.4.0 for PoP3D still very much has these lagging issues I wrote about - I'm not totally sure, but they subjectively seem even a bit worse than what 0.2.1 has. Lagging is gone from version 0.5.0 onwards on my system iirc. But, unfortunately, it also has the black screen fmvs, just like 0.4.0 and 0.5.1.

BEENNath58 commented 6 months ago

@blam666 otherwise this could be another incompatiblity caused by a ddrawcompat change. Usually games in those days ran on a exclusive surface so that's the first prediction that came to my mind, since DDrawCompat didn't use exclusive fullscreen. Since that didn't work I don't have any ideas for now

Similar issues also occur with dgVoodoo2, I don't know if it does for this game.

blam666 commented 6 months ago

@BEENNath58 Yeah, looks like it. Thank you again trying to help, though.

I have a niche incompatibility with my old onboard GPU and dgvoodoo on the system I try to make the game work right now, so I can't check if Pop3D would work better with the dgvoodoo wrapper; dgvoodoo wouldn't work on my system anyway. Yet ddrawcompat works perfectly well on this setup, and in many cases I can make older games work with this wrapper as alternative, and come back to it quite often.

I just have some hopes that it could be a useful information that the videos still work in the 0.2.1 code of ddrawcompat, maybe in this there may be some clue for some switch in a future version of DDrawcompat to make it eventually work perfectly, if possible, with both lag-free gameplay and visible cutscenes... at least that's the dream lol. Maybe it would be something other games profit from, too.

BEENNath58 commented 6 months ago

@BEENNath58 Yeah, looks like it. Thank you again trying to help, though.

I have a niche incompatibility with my old onboard GPU and dgvoodoo on the system I try to make the game work right now, so I can't check if Pop3D would work better with the dgvoodoo wrapper; dgvoodoo wouldn't work on my system anyway. Yet ddrawcompat works perfectly well on this setup, and in many cases I can make older games work with this wrapper as alternative, and come back to it quite often.

I just have some hopes that it could be a useful information that the videos still work in the 0.2.1 code of ddrawcompat, maybe in this there may be some clue for some switch in a future version of DDrawcompat to make it eventually work perfectly, if possible, with both lag-free gameplay and visible cutscenes... at least that's the dream lol. Maybe it would be something other games profit from, too.

I ran the game natively with DxWnd too. The videos worked there as well.

blam666 commented 6 months ago

DXWnd worked on my system in several cases, ok thanks I will try that. Unfortunately I never had a clue how to handle DxWnd at all so far if it didn't come in some pre-packed form. But this could be a good opportunity to get into it...

BEENNath58 commented 6 months ago

DXWnd worked on my system in several cases, ok thanks I will try that. Unfortunately I never had a clue how to handle DxWnd at all so far if it didn't come in some pre-packed form. But this could be a good opportunity to get into it...

Ask in the forums, maybe that could help umless Narzoul could mitigate the problem here.

narzoul commented 2 months ago

Fixed in v0.5.2.

RebelliousX commented 1 month ago

Sorry to revive this, but I can't even get the game to run in v0.5.2. I tried exclusive option for FullscreenMode, the game still exits as soon after displaying black screen.

I want to try this since dgVoodoo2 is hit and miss, it works once every 7-10 times running the game. Edit: yes, I made sure to remove all dgVoodoo2 files, dlls before I put the new ddraw.dll from DDrawCompat.

Thanks.

narzoul commented 1 month ago

Please set LogLevel=debug in DDrawCompat.ini, reproduce the issue and post your debug logs.

RebelliousX commented 1 month ago

Thank you for your help and sorry, the log file is very big, it exceeds the 65536 character limit for the post. Here is the file instead. DDrawCompat-pop3d.log

narzoul commented 1 month ago

The patch here should fix that: https://github.com/narzoul/DDrawCompat/issues/299#issuecomment-2070885134

RebelliousX commented 1 month ago

@narzoul thank you for your quick response. With that, it got a little further, but black screen and stuck. I tried multiple times and only once I got to hear the music without video playback, I pressed escape and the game loaded fine, but no video playback (only music). I was not able to run the game again, it keeps getting stuck with a black screen. DDrawCompat-pop3d.log

I tried to change the setting for QuickTime in control panel to disable acceleration, I tried to uncheck all boxes, use GDI, a mixture of DirectDraw and Direct3D acceleration options. Nothing.

Screenshot 2024-06-01 173218

narzoul commented 1 month ago

These new versions of QuickTime don't work for me either. Last time I was using QuickTime 6.0.0, which is also compatible with games that need QuickTime 3.0.0, unlike these new versions. I don't know what is the problem with the new version, it took ages to figure it out for older versions last time I debugged this issue, and I'm not in the mood to repeat that process with newer versions for now. Maybe later.

As for why the game is stuck, I have no idea. I don't have that issue. It seems that the main thread just stops writing logs at some point while enumerating some joystick-related registry entries. You have a lot of "Actuators" entries enumerated that I don't have in my logs (I only have Actuators\0 and Actuators\1). Does it crash? Maybe enabling CrashDump=full in DDrawCompat.ini will produce a crash dump then. Also, try disconnecting joysticks or other external devices that could be causing problems with DirectInput.

RebelliousX commented 1 month ago

@narzoul no worries, thank you so much for taking the time to look into this. I really appreciate it. 👍

What I did for whoever wants to know or having same issue:

I was able to solve my issue by using latest version of dgVoodoo2 v2.82.5 (set to directx 11 with 10.0 feature level, GeForce Ti 4800 128mb, Windowed mode and Stretched output) and I disabled all hardware acceleration for the screenshot above related to QuickTime while keeping DirectX selected. For the pop3d.exe. I had to change the compatibility to run as administrator, disable fullscreen optimizations and override and enable change DPI scale mode to Application, since my laptop has 125% scale for screen.

I noticed for example Metal Gear Rising Revengeance from Steam would multiply 1920x1080 by 1.25 (125% scale) = 2400x1350 in windowed mode, the window dimensions exceed the screen dimensions, without disabling DPI scaling. Although MGR-R is a newer game, POP3D might be the same? I am not sure.

With a modified option.sav for POP3D to have 1920x1080 support, videos play fine stretched to 1920x1080 and game works fine.

blam666 commented 1 week ago

Seeing this thread is revived, I feel like it may be ok for me to join again. Again thanks a lot to everyone for the effort and all the work involved.

I only recently came to testing the new 0.5.2 ddrawcompat on PoP3D and unfortunately found out it still doesn't work correctly for me. But it doesn't look like it's the same issue RebelliousX reported.

With 0.5.2, the game actually tries to depict videos and I can see recurring stills of the fmvs now to cut up, disjointed background sounds. On 0.5.1 and before for all versions of ddrawcompat since 0.3.0 there was only a black screen and I could hear the audio normally. The game itself also seems to play fine now with 0.5.2 after that, but although the game now tries to give out video of the fmvs, it's messed up as I described.

This looks like my system doesn't work with the codec/quicktime setting given out by the game run by ddrawcompat 0.5.2 now, maybe? My quicktime version is still Quicktime is 4.1.1. (Quick Time Player 4.1.1.28), just like before.

But my older versions of ddrawcompat still run fine as I described here - video and sound of the fmvs still play normally if I run the game under ddrawcompat 0.2.1 just like before. But then I get the slowdowns again, of course.

Setting the compatibility settings as described by the last comment by RebelliousX doesn't change anything about the issue. Neither does changing the "FullscreenMode" setting in the ini.

narzoul commented 1 week ago

@blam666 Please set LogLevel=debug in DDrawCompat.ini. Let the Red Orb intro logo play, then once the menu appears, press ctrl+alt+end to terminate the game, and share the log file.

blam666 commented 1 week ago

Ok, here is the log file. DDrawCompat-PoP3D.log

narzoul commented 1 week ago

Please check if this fixes the stuttering: ddraw.zip (diff.txt compared to v0.5.2)

Don't forget to turn off the debug log level first.

blam666 commented 1 week ago

YES, it did.

Videos run normally now, stuttering is gone. That version you posted did the trick. Now it's finally working fine on my old quirky system.

Great work, thank you so very much!

narzoul commented 1 day ago

The performance issue is fixed in v0.5.3.

I haven't had a chance to look into the QuickTime 7 issue yet, so I'll keep this open as a reminder. I recommend using QuickTime 6 or older in the meantime.