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

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

Open
blam666 opened this issue Dec 23, 2023 · 25 comments

Comments

@blam666
Copy link

blam666 commented Dec 23, 2023

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 blam666 changed the title DDrawcompat Prince of Persia 3D - Quicktime fmv black screen in later versions, works fine in 2.1 DDrawcompat Prince of Persia 3D - Quicktime fmv black screen in later versions, works fine in 0.2.1 Dec 23, 2023
@blam666
Copy link
Author

blam666 commented Dec 23, 2023

Forgot to add graphics is onboard ATI Mobility Radeon HD 4650

@BEENNath58
Copy link

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
Copy link
Author

blam666 commented Dec 26, 2023

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
Copy link

@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
Copy link
Author

blam666 commented Dec 31, 2023

@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
Copy link

@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
Copy link
Author

blam666 commented Jan 1, 2024

@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
Copy link

@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
Copy link
Author

blam666 commented Jan 2, 2024

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
Copy link

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 added a commit that referenced this issue Apr 21, 2024
Fixes invisible videos in Prince of Persia 3D (issue #273).
narzoul added a commit that referenced this issue Apr 21, 2024
Fixes video problems in Prince of Persia 3D (issue #273).
@narzoul
Copy link
Owner

narzoul commented Apr 21, 2024

Fixed in v0.5.2.

@narzoul narzoul closed this as completed Apr 21, 2024
@RebelliousX
Copy link

RebelliousX commented Jun 1, 2024

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
Copy link
Owner

narzoul commented Jun 1, 2024

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

@RebelliousX
Copy link

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
Copy link
Owner

narzoul commented Jun 1, 2024

The patch here should fix that: #299 (comment)

@RebelliousX
Copy link

@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
Copy link
Owner

narzoul commented Jun 2, 2024

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
Copy link

RebelliousX commented Jun 3, 2024

@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
Copy link
Author

blam666 commented Jun 25, 2024

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
Copy link
Owner

narzoul commented Jun 25, 2024

@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.

@narzoul narzoul reopened this Jun 25, 2024
@blam666
Copy link
Author

blam666 commented Jun 25, 2024

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

@narzoul
Copy link
Owner

narzoul commented Jun 26, 2024

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
Copy link
Author

blam666 commented Jun 26, 2024

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
Copy link
Owner

narzoul commented Jul 2, 2024

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.

@narzoul
Copy link
Owner

narzoul commented Jan 5, 2025

It turns out that QuickTime7 uses GetWindowRect() on GetDesktopWindow(), and didn't like that it didn't match the emulated display resolution when DDrawCompat performs display scaling (DisplayResolution != app). This patch should fix it:
ddraw.zip (diff.txt compared to v0.5.4)

@narzoul narzoul mentioned this issue Jan 25, 2025
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

5 participants