VOGONS


dgVoodoo 2 for DirectX 11

Topic actions

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

Reply 20 of 3949, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

One more question...I was thinking whether to return the same addresses for buffers. For example, if frontbuffer is at 0xA and backbuffer at 0xB, should locking the backbuffer after a buffer swap return 0xA (buffers swapped?). The problem is, this would make sense if buffer pointers were swapped on the real hardware...but then again, EA is making trouble as it always writes to 0xB even when I return 0xA as if it would only remember the first address that was passed to it...The second question is what would happen if buffer lock is held across the swap 😀

http://www.si-gamer.net/gulikoza

Reply 21 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

As far as I know, buffer pointers remains unchanged on a Voodoo hardware, so pointer B is always points to the backbuffer (but I'm not 100% sure, should have a look into 3Dfx specs).

In dgVoodoo however, I let the pointers get swapped because of optimization reasons except when a locked buffer is detected in bufferswap. They remains the same in that case.
Carma1 is the best example: it locks the backbuffer only once, when the program starts and unlock it at when it quits (without the -vrush switch).

So, answer1: I think keeping the buffer pointers unswapped shouldn't cause any trouble.

Answer2: It's up to the glide wrapper to handle a locked buffer at bufferswap. dgVoodoo handles that case, so you don't have to do any special.

Reply 24 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

hmmm, no TEXTUREBUFFER and COMBINE support.

Well, yes. There are all sorts of undocumented obscure extensions. I don't know what are they for and how they works exactly. I have guesses but that is not enough to implement them. Maybe raking over Glide3 driver sources would help.

Reply 26 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

But how the hell did authors of Glide64 know how to use those extensions? Were they doing empiric programming on 3Dfx Glide3 drivers? 😀

AFAIK, there is no SDK documenting them been released. It's pity that I do not have an old machine with 3Dfx card to do true reverse engineering. 😐

Last edited by Dege on 2013-03-13, 09:30. Edited 1 time in total.

Reply 27 of 3949, by robertmo

User metadata
Rank l33t++
Rank
l33t++
Dege wrote:

AFAIK, there is no SDK documenting them been released. It's pity that I does not have an old machine with 3Dfx card to do true reverse engineering. 😐

I think old used computers are very cheap now on internet auctions or some other places, neighbours/friends/etc. You can even use voodoo1 and 2 in modern computers, there are drivers for windows 7 (don't know how it is for win8)

Reply 34 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

Not with the latest dgVoodoo version.
Gulikoza has already done the needed fixes on DosBox's side in his latest patch but it has to be done in dgVoodoo as well.
Gulikoza and me tested it with a quick "adjusted" build of dgVoodoo and EA worked. The fixes will be included in the next release.

Reply 36 of 3949, by tincup

User metadata
Rank Oldbie
Rank
Oldbie
Dege wrote:

I've tried F22 TAW.

It always crashed with stack overflow when I entered a single mission.
This program has 64k stack. When I hacked the exe to raise the stack reserve/commit to 1MB, it seemed to worked fine, altough didn't experimented with it a lot.

Then you should check out the amazing total conversion mod:

http://taw.wikia.com/wiki/F-22_Total_Air_War_2.0

It installed and ran off the first try - good hunting..

Reply 37 of 3949, by Dege

User metadata
Rank l33t
Rank
l33t

I've released a new build (http://dege.fw.hu) for Gulikoza's new Glide patch.

Not much in this version but Extreme Assault now runs beautifully with a non-UMA 3Dfx card and PCI emulation. The only issue is ingame help screen (F1), it does not work, don't know why (could it be a bug in the 3Dfx port of EA?). 😕

Other extensions like TEXTUREBUFFER and COMBINE are planned to be supported in a later release (despite they were not planned to be supported at all 😁, but the first step is taken. )