VOGONS


dgVoodoo 1 announcement thread

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 100 of 206, by Kaminari

User metadata
Rank Oldbie
Rank
Oldbie
Dege wrote:

You should try to run glide TR1 with a VESA emulator.

Thanks Dege. Enabling the basic VESA emulator of VDMS did the trick, although the game is extremely slow. I found a workaround by setting the performance slider in VDMS launchpad to the middle position (thanks Robertmo!). The game still slows down in big open spaces, but it's a real improvement. Maybe people with sturdy systems won't even notice it.

Reply 102 of 206, by Dege

User metadata
Rank l33t
Rank
l33t

Yes, another bug I've found: other people also talked to me about swimming textures. I've realized that I always keep texture perspective disabled in 1.21. Probably I did it for debugging purposes or whatever and forgot to recover. It's interesting that this problem doesn't come out on nVidia cards that's why I didn't even notice it (maybe a bug in nVidia drivers not taking care of perspective at all??). The two other bugs: emulating w-buffer is crap due to its imprecision. When two polygons are too close to each other then Z-fighting causes flickering (and it's also worsened by the imprecision of wbuff emu). There are a technique called z-bias to avoid this but this isn't implemented currently in the wrapper because I don't have enough info of this. However I don't understand why real w-buffering doesn't work for you (I think so according to the screenshots). Do you experience this with other games too, or only with NFS?
Unfortunately I'm not able to study this problem, I don't have an ATI card around. I might do a version of the wrapper that can write out the errors to a file to have a look in it...

Kaminari: does TR slow down only with the wrapper? I mean the e.g. the software version slows down too?
Anyway, I'm glad you can run it at least.

Reply 103 of 206, by DoomGaZer

User metadata
Rank Newbie
Rank
Newbie

Hey Dege, I got SW working with glide thanks to your updated glide2x.ovl. I see the ugly textures myself. I can only assume it has something to do with the whole VESA issue under XP (since you mentioned good colors in win98) but then I don't know. The textures are downloaded to your HD so I also wonder if maybe there is some incompatibility in translating the textures with dgVoodoo and so the end result is garbled textures being stored to the HD. The game also runs very slowly with some staticy and clicking noises from my speakers when I run the glide version. I have all the sound disabled so it runs in XP but that doesn't deter these weird noises.

Oh, P.S., if anybody can tell me how to get VDMS to load AND dgVoodoo with both of them just using the GUI & VDD then I'd be VERY VERY appreciative. Thanks.

Reply 104 of 206, by ableeker

User metadata
Rank Newbie
Rank
Newbie

Yep, I got the swimming textures in TR1 as well, and you're right, I've got an ATI video card (9600 Pro). I also have to use Emulate W-buffer, otherwise it doesn't work. And the alpha-based colorkeying method as well, as I get missing (transparent?) textures otherwise (the passport textures are missing).

However, at the moment I can't get TR1 to work at all with dgVoodoo, it doesn't even start, it just dumps me back to the desktop. I'll experiment a bit more.

Aldo Bleeker

Reply 105 of 206, by Kaminari

User metadata
Rank Oldbie
Rank
Oldbie
Dege wrote:

Kaminari: does TR slow down only with the wrapper? I mean the e.g. the software version slows down too?

Nope, the software version runs smoothly. After adjusting the performance slider in VDMS, dgVoodoo (in VDD or Server mode) runs smoothly as well -- it's just that in some big places the animation noticeably slows down, like a slow-motion effect. But if I only use dgVoodoo as a Glide wrapper for Glidos, the animation runs almost without a glitch 😕

Reply 106 of 206, by ableeker

User metadata
Rank Newbie
Rank
Newbie

I don't know, sometimes I think I just should give up on Windows! I've tried degeVoodoo again, but this time on my clean(ish) test environment, using the SAME files as in my work environment. Well, what do you know, it works!

Anyway, I've got it running with sound, and when I enable VESA support in VDMSound, and set the performance slider to medium, it now even runs quite acceptably, whereas it used to run horribly slow.

So the only thing at the moment is the swimming textures. Is this new, because 1.20 didn't show this, did it? Dege, did you fix this? Apart from this it seems degeVoodoo is shaping up quite nicely.

Aldo Bleeker

Reply 107 of 206, by ableeker

User metadata
Rank Newbie
Rank
Newbie

I've been playing around with W-bufferering, and if I enable it, the swimming textures disappear, but I get a lot of missing textures. And I mean a lot! As a matter of fact, Lara herself is missing! So you see why I have to use the option Emulate W-buffering. Or is there a way to enable W-buffering on an ATI? Shame, it seems I can choose between swimming textures, or missing textures.

I've just found out that 1.20 doesn't display swimming textures with the same setting, so I'm hoping 1.21 can be fixed. Is that right?

Aldo Bleeker

Attachments

  • MissingTextures.jpg
    Filename
    MissingTextures.jpg
    File size
    75.84 KiB
    Views
    2631 views
    File comment
    Missing textures (76 Kb)
    File license
    Fair use/fair dealing exception

Reply 108 of 206, by Dege

User metadata
Rank l33t
Rank
l33t

Ok. I'm going to fix that palette-thing in SW then re-release 1.21.
According to the docs, texture perspective has to be enabled when w-buffering is used (missing polygons are due to lack of it). This is a really big bug. However I still don't know why w-buffering doesn't work on ATI.

Reply 109 of 206, by CraigG

User metadata
Rank Member
Rank
Member

W-Buffer, has to be turned on, on ATI cards (it's off by default).

And the only way of doing that is to download Rage3D Tweak, goto one of it's tabs, and you'll see it there.

Athlon 64 3000+ stock
MSI NForce 4 K8N Neo Platinum
2Gb RAM
nVidia Geforce 6800GT stock clocks
SBLive! Platinum + Audigy ZS2 Drivers
WinXP Pro SP2

Reply 110 of 206, by ableeker

User metadata
Rank Newbie
Rank
Newbie

I've used Rage3D Tweak to enable W-buffer on my ATI 9600 Pro, but it hasn't made any difference. I've still got transparent textures when I use Enable W-buffering, and swimming textures when I use Emulate W-buffering.

Aldo Bleeker

Reply 111 of 206, by Dege

User metadata
Rank l33t
Rank
l33t

CraigG, thanks the info!!
I hoped this will help. I've fixed the perspective problem, but I'm afraid that's not all of your problem. Probably it would behave as 1.20.

I mentioned I was going to fix the palette problem in SW before releasing the fixed version. Well, it's much harder than I thought. I've debugged and traced SW, maked a lot of dump about VGA-port accesses under 98 and XP. When SW generates its palette(s) to be sended to glide, it converts the one read out from vga palette registers. Under w98, at startup SW write the appropriate palette to the vga, it's read back, so it's ok. Under XP, it saves and restores the original palette set on the vga, and that palette is used later too. To summarize, it's a compatibility problem between 98 and XP making SW to go on different branches (independently on glide). I have technical problems, cannot continue debugging for a while to determine the compatibility issue.
So, maybe I'll release the fixed version without SW fixed.

Reply 112 of 206, by Dege

User metadata
Rank l33t
Rank
l33t

I think I shouldn't release the "new" version, it would have no point if it still had problems with w-buffer on ATIs. I've put a test version to http://dege.fw.hu/dgvoodoo_test.zip instead.
This writes a log file about depth buffer operations.
I don't know if this version fixes all your problems, but could all of you, ATI users send me the log file to my email address if not?
I would greatly appreciate it... 😊

Reply 113 of 206, by DoomGaZer

User metadata
Rank Newbie
Rank
Newbie

Dege,

Is the vga pallete problem in SW is something that could be addressed with compatibility options under XP? I know you can choose to make programs "win 95 compatible" under XP but I'm not familiar with what all that does to the program. Maybe there is some other program that could help out (like VDMSound or something like NOLFB that forces an older style compatibility). Other than that I don't know. I can remember playing some games back in the day where 3dfx had you replace an OpenGL file or two with their own glide files. I just wonder if there is an easy way to reverse engineer that. If you're using Direct3D then I guess it's a moot point since OpenGl and D3D are separate beasts.

Reply 114 of 206, by zeckensack

User metadata
Rank Newbie
Rank
Newbie

Dege,
regarding that swimming texture thing and w buffering, I'd like to ask you some questions 😀
1)Do you monitor grHint(GR_HINT_STW_DIFF_TMU0)?
2)Why does w buffering interact with texturing in your implementation? It doesn't have to 😀
I'm not too familiar with D3D texture addressing, but in OpenGL I can submit 4d homogenuous texture coords (this facility has IMO originally been intended for projective texturing).
If you just use (sow,tow,0,oow) as 4d texcoords, scaled for aspect ratio and to match whatever range D3D expects, you eliminate all interaction with depth.

For the missing/wrong car shadows in the racing games, you need to implement grDepthBiasLevel. Note that during w buffering depth bias becomes non-linear in a way. W buffer representation is obviously floating pointish. According to my experiments with a Voodoo 3, the depth bias gets added to interpolated depth in the integer domain. That means that the depth bias gets "stronger" the nearer (in depth) the pixel is to the viewer.

If you need more details, feel free to contact me. I won't post my email address to a public board because I'm paranoid of harvesters, but you'll find it here.

Just because we are competitors of sorts doesn't mean we can't help each other 😀

Reply 115 of 206, by barev

User metadata
Rank Newbie
Rank
Newbie

Hi!
I recently downloaded your glide wrapper and I think it is really great.
I would like to ask some questions:
I was able to play SW with it on my Win98SE installation but it seems to have a problem with Blood. It starts but the screen looks like the contrast is set to the max and the colors are not looking good. I've tried modifying the gamma level but that is not the problem. I've mentioned about SW, because when starting SW for the first time I had to modify the brightness level from within the game (please note not 'gamma' but 'brightness', which in this case should be regarded as 'contrast', 'brightness' is just the name of this setting in the game menu) because everything looked too dark. But the problem is that Blood does not have such in game setting. It allows you only to modify the gamma level, which as I already explained doesn't solve the problem.
Does anyone know how is it possible to solve that problem?
By the way my video card is nVidia GF2 MX400. Glidos runs Blood without any problems but since I am from Bulgaria I cannot purchase it.
I would also like to ask if it would be possible to run Carmageddon with dgVoodoo in the future as currently this is not possible. Again Glidos runs it fine but I am unable to purchase it.

Reply 116 of 206, by ableeker

User metadata
Rank Newbie
Rank
Newbie

Dege,

I've been trying out your test dgVoodoo. Unfortunately, to avoid missing textures, I still need to set Emulate W-buffer. I think you've fixed the swimming textures though, but it's hard to tell, as the test runs *extremely* slow, something like 1 frame every 10 seconds.

Anyway, here's the log (AMD Athlon 1.33 GHz, ATI Radeon 9600 Pro, Emulate W-buffer).

Aldo Bleeker

------ dgVoodoo: driver description -------
dwDevCaps: 61bbef1
dpcLineCaps
dwMiscCaps: 132c83
dwRasterCaps: f7361b3
dwZCmpCaps: ff
dwSrcBlendCaps: 3fff
dwDestBlendCaps: 3bff
dwAlphaCmpCaps: ff
dwShadeCaps: c528a
dwTextureCaps: 7ed4f
dwTextureFilterCaps: 703073f
dwTextureBlendCaps: cf
dwTextureAddressCaps: 37
dwStippleWidth: 0
dwStippleHeight: 0
dpcTriCaps
dwMiscCaps: 132cf3
dwRasterCaps: f7361b3
dwZCmpCaps: ff
dwSrcBlendCaps: 3fff
dwDestBlendCaps: 3bff
dwAlphaCmpCaps: ff
dwShadeCaps: c528a
dwTextureCaps: 7ed4f
dwTextureFilterCaps: 703073f
dwTextureBlendCaps: cf
dwTextureAddressCaps: 37
dwStippleWidth: 0
dwStippleHeight: 0
dwDeviceRenderBitDepth: 500
dwDeviceZBufferBitDepth: 400
dwMinTextureWidth: 1
dwMinTextureHeight: 1
dwMaxTextureWidth: 800
dwMaxTextureHeight: 800
dwMaxTextureRepeat: 800
dwMaxTextureAspectRatio: 800
dwMaxAnisotropy: 10
dvGuardBandLeft: -960.000000
dvGuardBandTop: -960.000000
dvGuardBandRight: 2880.000000
dvGuardBandBottom: 2880.000000
dvExtentsAdjust: 0.000000
dwStencilCaps: 1ff
dwFVFCaps: 100008
dwTextureOpCaps: 3ffffff
wMaxTextureBlendStages: 8
wMaxSimultaneousTextures: 8
dwMaxActiveLights: ffffffff
dvMaxVertexW: 10000000000.000000
wMaxUserClipPlanes: 6
wMaxVertexBlendMatrices: 4
dwVertexProcessingCaps: 3f

Depth buffer config: Emulate W-buffer

Desired depth buffer bit depth: 16
Used depth buffer bit depth: 16
Creating depth buffer OK
Used Z-buffer mode: D3DZB_TRUE
Return of setting z-buffer mode: 0 means no error
Used Z-buffer mode: D3DZB_TRUE
Return of setting z-buffer mode: 0 means no error
Used Z-buffer mode: D3DZB_TRUE
Return of setting z-buffer mode: 0 means no error
Used Z-buffer mode: D3DZB_FALSE
Return of setting z-buffer mode: 0 means no error

Reply 117 of 206, by Dege

User metadata
Rank l33t
Rank
l33t

Hi Zeckensack!!

Thank you very much for offering your help!! 😎 😎 I think it's a good idea to help each other, I think I will contact you.

Yes, I handle grHint(GR_HINT_STW_DIFF_TMU0), I don't think there is a bug there. D3D can accept 1,2,3 and 4D texture coordinates, but in practice it uses only 2D for "normal" texturing, and 3D for environment textures (or 3D for projective texturing and 4D for projective environment texturing, dividing all the coordinates by the last component). AFAIK, when perspective is enabled for texturing, D3D (so that the GPU) internally interpolates the (sow,tow,oow) vector (and regenerates (s,t) from it), and simply (s,t) when perspective is disabled. Swimming textures are due to perspective is always set to false in 1.21 (it's a big bug). 😊
Texturing interacts with depth in one case: when w-buffering is used, texture perspective always has to be enabled in D3D otherwise some polygons doesn't get drawed or something like that (I didn't know it , that's why I brought in the emulation of w-buffering, true w-buffering didn't worked).
And you're right, I should implement the depth bias. It was implemented in one of the previous versions, but worked improperly. It wasn't clear for me how a real voodoo handles it when it uses w-buffering (I find it absurd a little bit to add bias to w considering it as a raw integer 😮 ).

Barev, 3dfx build engine can read parameters from environment variables. Gamma correction can also be defined in variable BUILD_GAMMA (or BUILD_BRIGHTNESS). Default gamma is 2.5, that's why the textures are so bright. I use it set to BUILD_GAMMA=1 and it works fine for me. I hope this will work for you too. (If you are interested in what other parameters exist, see 3dfx_readme.txt .)
I would like to try dgVoodoo with Carmageddon, but I don't have it, and can't find its demo (almost the same case with Screamer 2). 😒

Ableeker, thanks your log file! Do you get any error when you use w-buffering? If not, I really don't understand why it doesn't work for you. 😢

Reply 118 of 206, by CraigG

User metadata
Rank Member
Rank
Member

Dege,
PM me your Address, and I'll send you over a DVD or CD full of Glide games.
Hows that ?
I'm sure it will help a lot of people, me included 😉

Athlon 64 3000+ stock
MSI NForce 4 K8N Neo Platinum
2Gb RAM
nVidia Geforce 6800GT stock clocks
SBLive! Platinum + Audigy ZS2 Drivers
WinXP Pro SP2

Reply 119 of 206, by Stiletto

User metadata
Rank l33t++
Rank
l33t++

Argh! Piracy! Bleah! 😜

Dege, Zeckensack, would you be interested in me creating a Glide wrapper mailing list? I'd try to get many who were / are involved in the wrapping community to take a look, and I'll cattle-prod Fabio Barros and Paul Gardiner to post every once in a while. It could be invite-only or something. People could learn of good test cases and programs, resources of information, etc. Also, it would help get the word out about the many other proprietary 3D API's waiting to be "wrapped".

"I see a little silhouette-o of a man, Scaramouche, Scaramouche, will you
do the Fandango!" - Queen

Stiletto