VOGONS


SFC3 invisible Warp Bug

Topic actions

First post, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

Hello,
Since wip51, dgvoodoo2 supports Star Trek: Starfleet Command III. However, in Windows10 there's a bug that if any vessel going to Warp speed, it becomes invisible.
There're alternatives, e.g. using wined3d for windows, or copy system d3d8.dll to SFC3 folder. However, both solution will cause mouse icon displayed incorrectly. One thing interesting to note, that running Razer Cortex in background also resolve this bug.

I tried using debug version and capture debug output. But there's no message during start-warp and stop-warp. I attached output log here, the time my ship disappearing is during PM 05:27:50~05:27:56. I can help test if there's other way to clear this problem.

Thanks.

ps. to use dgvoodoo2 with sfc3: needs d3d8.dll, ddraw.dll, and set windowed=1 in sfc.ini. So far sfc3 fullscreen doesn't work in windows 10.

Attachments

  • Filename
    sfc3-dgvoodoo2.zip
    File size
    19.3 KiB
    Downloads
    16 downloads
    File license
    Fair use/fair dealing exception

Reply 1 of 23, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

I tried this game. Entered Warp mode but no starships or vessels disappeared.

One thing interesting to note, that running Razer Cortex in background also resolve this bug.

It's really weird.
I saw in the log that you have an AMD Radeon HD 8250. Any chance you could try it on other hw?
Or, could you plz try it with the MS WARP ( 😁 ) software renderer? It'll be slow but it'll make it to check if the bug is in dgVoodoo.

Reply 2 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

Hi, thanks for your response.
My main pc is windows 7, AMD RX470:
- with dgvoodoo2.61: bug reproducible.
- without dgvoodoo2: no bug.

More tests on AMD HD 8250, windows 10:
- MS WARP(lol) renderer: bug reproducible.

Since all my hw are AMD based, I'll ask on other forum for some feedback:
https://hotandspicyforums.com/sfc-3-invisible … -10-t28114.html
Other players also have this issue.

Reply 4 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

I'll try to make it brief...

Install the game.
Patch beta 1.01 534b, get it here: https://sites.google.com/site/sfc3rex/Home/downloads-1
Open sfc.ini, add "MakeItSo=1" under [UI] section. This skips CD check.
[For Win8-10] also in sfc.ini, change Windowed=1 under [3D] section.
[Optional, for widescreen resolution support] https://hotandspicyforums.com/starfleet-comma … tch-t18931.html
Extract D3D8.dll, ddraw.dll, D3DCompiler_43.dll, dgVoodoo.conf from dgvoodoo2.61 package to game folder.
Start SFC3.exe
(Click Esc to skip intro video)
==At this stage, main screen should be shown.===
Select "Explore Tutorials" at main screen.
Select any tutorial from 1-6, click "accept" at lower right corner.
In space, press W key to go into warp. Ship will disappear. (In normal game, your ship should be stretched, not disappear.)
Press W again to exit warp, your ship will appear again.
Press Esc to leave game.

Last edited by yochenhsieh on 2019-09-12, 16:25. Edited 1 time in total.

Reply 8 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

Hello, still didn't work.
Could you share your dgvoodoo.conf for SFC3? Thanks a lot for your work.

In the meantime, I shouldn't ask too much, but if you could make "windowed=0" work in Win8-10 that would be awesome!

Reply 9 of 23, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

Ok. This is the default config with DirectX\PrimarySurfaceBatchedUpdate set to false.

Attachments

  • Filename
    dgVoodoo.conf
    File size
    14.98 KiB
    Downloads
    8 downloads
    File license
    Fair use/fair dealing exception

Reply 10 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

Still no luck. If you can get it work, it could be something on my end. These are my 2 hw:
1. Windows 7 sp1, AMD R5 1400, AMD Radeon RX 470 4G.(Can play without dgvoodoo2)
2. Windows 10 1903, AMD A6 1450, AMD Radeon HD 8250. (needs dgvoodoo2 to play)

I'll try change some settings and see if I can work it out. This is really odd.

Reply 14 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

Yes, should be like that.

You can't run it natively? So that's played in a virtual machine or...?
I would like to know the hw & os that you have it crashed and taken this screenshot, thanks.
And does the crash have any error message or exception?

btw, once installed, the game folder can be copied elsewhere and run. This game is completely portable. So if you have more hw could test, just copy game there and play.

Reply 15 of 23, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

No, it's dgVoodoo (2_62). See the logo in the corner, altough it's inconspicuous.

Pure natively I only get a black menu screen and can't go ingame.
I found a custom d3d8.dll as a Win10 patch for the game and that's what the game crashes with, for me.

Reply 16 of 23, by yochenhsieh

User metadata
Rank Newbie
Rank
Newbie

I think using dgvoodoo still counts native because it utilize real hardware acceleration.(?)

Only Windows 7 can play without any wrappers.
I remembered a custom d3d8.dll from moddb works in early win10 releases. But wined3d for windows and dgvoodoo2 work better.

Almost wish I could give you my laptop so you can debug on it. 😵

Reply 17 of 23, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

Turns out that I can debug it because dgVoodoo 2.61 produces the same issue for me that you get too.

dgVoodoo supports vertex blending (unlike todays drivers) and the game utilizes that. But, when in warp mode, the last column of a blend matrix contains invalid elements (nan floats), that's why the transformed mesh of the starship isn't rendered.
Well, the interesting part is, I don't know where that memory garbage comes from: it works perfectly with dgv 2.62 and even the debug build of 2.61.
The sad fact is you cannot disable vertex blending in dgVoodoo, all of the virtual cards support it. 😖

I'm going to discover what circumstances the problem relies on and fix it somehow, later.

Reply 19 of 23, by Dege

User metadata
Rank Oldbie
Rank
Oldbie

Hmm... this game is a real mystery. Disabling vertex blending in dgVoodoo doesn't solve the problem. I guess the difference is that vertex blending is calculated in dgVoodoo or is done 'manually' by the game engine, but in both cases a matrix with nans in one of its column are used in the calculations.

I cannot trace down where those nans come from. Even the size of D3D8.DLL matters. 😁
I can catch a lot of 'invalid operation' FPU exceptions when entering the loading screen of a tutorial level, because there are a lot of 0/0 operations in the precalculations but those are also present when the disappearing symptom doesn't come, and seemingly has nothing to do with dgVoodoo but rather the game model data.
😕 😕