joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.55k stars 372 forks source link

SDL1: black screen when 3DFX is active on Windows 95 #321

Open legluondunet opened 6 years ago

legluondunet commented 6 years ago

Hello,

after an application or a game used 3DFX, dosbox-x screen is all black on Windows 95. How to reproduce: 1) install Directx 7 or 8 2) launch dxdiag, the screen is all black 3) alt+enter to pass dosbox-x in fullscreen or window to recover your screen after each time the system used 3dfx, the screen goes black and I have to alt+enter to recover it.

In a game, you can only see 3dfx moment, the cinematics or other sequences that don't use 3dfx result in a black screen.

config: Ubuntu 17.10 dosbox-x compiled from git nvidia drivers 384.90

joncampbell123 commented 6 years ago

Then the 3Dfx driver in Windows 95 is not switching VGA back to passthrough.

3Dfx has it's own VGA out to the monitor. You connect the "VGA in" on the card to your actual video card. When engaged, it switches off the VGA in/out passthrough and puts it's own signal out to the monitor.

Do you have the same issue with DOS games that use 3Dfx GLIDE?

legluondunet commented 6 years ago

If you need this information I can try to launch Tomb Raider 1 on my Dosbox-x Windows 95? I use the 3dfx or the Voodoo tomb.exe? Can you reproduce this bug on your computer?

joncampbell123 commented 6 years ago

I don't have tomb raider but I do have two MS-DOS demos I test with:

http://www.pouet.net/prod.php?which=2181

http://www.pouet.net/prod.php?which=2844

I'll test those now.

joncampbell123 commented 6 years ago

I'm not getting the same issue with the MS-DOS GLIDE demos I've listed above. Exiting to DOS restores the screen properly.

I'll see if I can get them to run in Win95 with GLIDE in DOSBox-X.

joncampbell123 commented 6 years ago

Nope. No problems in Win95 either.

joncampbell123 commented 6 years ago

This is on Windows 95 with the original DirectX (DirectX 2 I think?) that it came with.

joncampbell123 commented 6 years ago

However, running TRIP on Windows 98 SE with 3Dfx emulation enabled produces the same problem. However, Windows 98 SE does not install the GLIDE drivers but instead provides access to the 3Dfx through DirectX.

So perhaps it's a DirectX issue?

EDIT: Windows 98 SE with DirectX 6.1a

joncampbell123 commented 6 years ago

The thing is... if I run DXDIAG.EXE and run the DirectDraw and Direct3D tests with the 3Dfx card (in DOSBox-X) it's able to switch between the desktop and the 3Dfx "overlay" just fine.

legluondunet commented 6 years ago

Why I can not obtain results as good as you? Could you give me the 3dfx drivers version you installed on WIndows 95? Are they official and Microsoft certified or unofficial (like iceman drivers)? The directx version you used?

legluondunet commented 6 years ago

I can reproduce this bug on two different computers with different GPU, one with intel and another with Nvidia GPU.

legluondunet commented 6 years ago

Hello, some more infos: this happened with Dosbox-x compiled with SDL1 and I use opengl renderer. I joined you my conf, perhaps you will see something not standard.

cyber-gladiator-dosbox-x.zip

Or perhaps it is the 3dfx driver I use, what is the best 3dfx drivers to use with dosbox-x on Windows 95? What is your version?

guest os_017 guest os_018

joncampbell123 commented 6 years ago

As far as I know, the issue only happens if the DOS game crashes, or if the Windows program is using the 3Dfx through DirectX. Can you check how the game is using 3D acceleration?

joncampbell123 commented 6 years ago

I'm using the same version of GLIDE drivers as you. Did you pull them off of the Vogons driver library too?

legluondunet commented 6 years ago

'Did you pull them off of the Vogons driver library too? Yes This is a video about the issue, I can reproduce it all the time. Dosbox-x window becomes black after a software called 3dfx. Each time the window goes black, I have to "alt"+"enter" to go fullscreen, then "alt"+"enter" to go back to window state then the window is no more black. As you can see in the video, the window goes black after the 3Dfx spinning cube test, not before.

Screencast_30-12-2017_10:39:41.zip

joncampbell123 commented 6 years ago

Can you also restore the screen if you use CTRL+F1 or CTRL+SHIFT+F1 to bring up the mapper, then exit back to the OS?

legluondunet commented 6 years ago

yes it works too, what does that mean for you?

joncampbell123 commented 6 years ago

It means that the problem lies in failing to redraw/refresh the SDL window when 3Dfx switches off it's output.