VOGONS


DirectDraw Wrapper

Topic actions

Reply 40 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

You may change Directx version Hook to" Directx1~6" and Emulation to "Primary Surface" in Dxwnd Option, it should work for most games. If not simply send a question to http://sourceforge.net/p/dxwnd/discussion/. Hope that help!

Hey cloudstr, thanks heaps that got the game into a window.
Now I'll have to test the framerate out.

I noticed you mentioned:

It seem that a new ver released today make a game faster than a first fix ver, weird , and enable ForceBltNoTearing make Dxwnd not work: "could not initialize directx" while an older version work well !

Could you please explain why mix this .dll with DXWind and do you need to rename the .dll?

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit1:
Ok, can't get a FPS readout, not from FRAPS or a video driver tool.
It does feel kind of like the proper speed, but I got no readout so...

One thing I am notice is tearing in the scrolling. Turning VSync on
in my video driver almost got rid of it but not quite. Is this why you
were using this .dll with DXWind?
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit2:
Yep, this .dll does clear up the 'tearing' issue I noticed with DXWind.
Unfortunately I still can't get a FPS readout with DXWind yet...

I'll investigate further...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit3:
Still can't get an FPS readout in DXWind yet.
I am trying to make a visual guestimate and reckon it is running a bit
slower than 71FPS. Maybe DXWind is capping it to 60FPS even when
using this .dll but I won't be sure without some solid proof.

Also I can confirm what cloudstr said in regards to new version of .dll;

enable ForceBltNoTearing make Dxwnd not work

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit4:
I tried using the old version of the .dll with DXWind to see if I could
see what 'enable ForceBltNoTearing' does and I couldn't see any
difference. I wonder if perhaps it wasn't actually working properly at
all in the older version and now it does. But it is DXWind's end that
does not like this new .dll using a now 'functional' 'ForceBltNoTearing'?
I mean, maybe the problem is not with the new version of .dll?
Just another way to look at it.

Last edited by jclampy on 2012-12-20, 11:19. Edited 2 times in total.

Reply 42 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

This one here? DXGL (DDraw\D3D wrapper to OGL)

Haven't tried it since I'm using an ATI card and OpenGL can be hit and miss. I'll give it a go in a few minutes...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit:
Awesome! That DXGL works fine with my ATI card. Probably because
it is using OpenGL 2.0 instead of 1.x which can be hit or miss.

Quite impressed at the moment because using DXGL by itself with
nothing else added; I have been able to get RayForce running
fullscreen 1280x960 at a rock solid 60FPS exactly the same
mode as what my monitor was in. So perfect scrolling and correct
running speed for the game.

If the game isn't running at correct speed then you can notice that
sound effects and speech pitch will sound either too fast or too slow.

Last edited by jclampy on 2012-12-20, 12:40. Edited 1 time in total.

Reply 43 of 101, by Mr.Blade

User metadata
Rank Newbie
Rank
Newbie

Aqrit, your new version works great for Blade Runner. Thank you very much!

Edit: I hope, it is okay for you that I took your DirectDraw Wrapper in my own Blade Runner Installer\Patch: http://www.replaying.de/blade-runner/blade-ru … xp-vista-7-x64/

Of course, I mentioned you as the developer of it and linked to your web page.

Greetings

Banner01_Small.jpg

Reply 45 of 101, by aqrit

User metadata
Rank Member
Rank
Member

new version:
FakeVsync targets 62 fps
added ShowFPS option
fixed another bug in ForceBltNoTearing

enable ForceBltNoTearing make Dxwnd not work

I'll take a look at why it is crashing with DxWnd but I make no promises to change anything to support DxWnd.

Total Soccer 2000

Should be identical code across all the versions in the last couple days.
I noticed a strange bug where the game was running crazy fast ( even after a re-install with no wrappers ). Restarting the computer fixed whatever the problem was.

why 14 ms?

The sleep interval was set at 14ms because the default system timer resolution is 15ms (I think).
I feared a wait of 16ms would miss the first interval and actually wait 30ms ... haven't really looked into it. Added a timeBeginPeriod( 1 ) call to make sure this isn't an issue.

ddwrapper included with Blade Runner Installer\Patch

yeah thats fine.

isn't there another thread on here with an Open GL powered DX/draw wrapper?

also cnc-ddraw (OpenGL for C&C)

---
If I failed to address anything from the previous posts let me know.

Reply 46 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

Hi Aqrit,

Thanks for another new version.

Just retested RayForce aka Layer Section aka Galactic Attack with your new version. Can confirm it now runs the game at 62FPS with video driver VSYNC either enabled or disabled. The only setting necessary; 'FakeVsync = 1'.

Unfortunately your new FPS display feature would not show up with this game. I tried all the options; 1,2,4,8,15, but nothing showing. Funnily, Fraps FPS display was now visible, so we are on the right track anyway.
I'll have to try your FPS display feature with some other games.

The game now running at 62FPS was enjoyably playable and the sound was alot better. I noticed the white logo screen before the main menu wasn't scrolling 100% perfect. Maybe if it was possible to make the 2FPS extra above 60FPS into some sort of buffer that might solve that? Unless it is just a side-effect of how your .dll does it's business. All in-game scrolling looked perfect from what I could tell. 😉

I'll give you an 8 out of 10 at the moment, although I have only tested the one game so far.
Definately improving and I appreciate what you have done.
Thanks.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Edit1:
Just redone the test above but this time using DXWind at the same time.
Fraps FPS display is not showing up now.
Your FPS display feature is showing up now when used with DXWind.
I only tested with 'ShowFPS = 15' because I need to get some sleep.
Although it seems to read 64FPS instead of the 62FPS I was expecting.
My video driver VSYNC was also enabled for this test.
WinXP32, ATI HD4670 AGP, 3.4GHz P4 EE

Last edited by jclampy on 2012-12-23, 21:33. Edited 3 times in total.

Reply 47 of 101, by cloudstr

User metadata
Rank Newbie
Rank
Newbie

I confirmed that FPS display well in Ts2000. In game is 62FPS but would be great if you could do a little slower, and i notice that fakevsync=1 make game very lag 😐 , =2 is ok but bit fast. Btw you make a wrapper better with time aqrit, 9/10 for me. Can't wait for new ver 😀

I don't know a whole game itselft is fast or Windows XP make it but random time it run .. hell fast. I wish someone could make game run as slow as possible.

Reply 50 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

Alot of the features in DXGL are not fully implemented. As in; There are settings that are placeholders because they don't do anything yet.

The DXGL forum is also annoying because each post needs to be 'approved' before being released. I have made a few posts but they still aren't 'approved' yet so the forum might as well be dead. No way to communicate with the developers or others.

Honestly, I have only tried a few games so don't know too much yet about all these different 'wrappers/hooks'.
I'm just happy there are so many different options being worked on. If people are happy to share their work then I am happy to try it out.

Reply 51 of 101, by cloudstr

User metadata
Rank Newbie
Rank
Newbie

Hey jclampy. Run DXwnd, right click on yourgame.exe > Modify > Stick to "Auto Primary Surface Refresh" and "Refresh on win resize" > OK > Run game. Do you notice any different ?

Btw you can save your change when you exit Dxwnd, there's a message for you choose, just saying.

Reply 52 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

Well I don't actually know what I am suppose to be looking for but there wasn't really much of a difference.

With those two options ticked the framerate was a little less stable. Would fluctuate between 64FPS to 67FPS.

I have never tried with those ticked before, so previously my framerate was pretty much glued to 64FPS.

Retested to make sure that both results happen every time and they do.

What were you expecting me to see I wonder?

Reply 54 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

Don't jump to conclusions though, you probably know more about DXWind than I do. I looked at it years ago but couldn't make heads or tails of it so moved on. Only got it going now since you pointed out how to get it working earlier in this thread.

Reply 56 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

aqrit, next time you drop by the thread could you answer something that's bugging me at the moment.

If I have a config file like this;
RealDDrawPath = AUTO
BltMirror = 0
BltNoTearing = 0
ColorFix = 0
DisableHighDpiScaling = 0
FakeVsync = 0
ForceBltNoTearing = 0
ForceDirectDrawEmulation = 0
NoVideoMemory = 0
SingleProcAffinity = 0
ShowFPS = 0

Does this mean it will be the same as not using your .dll at all. I assume that is not the case and we still get the benefit of your various DDraw fixes, am I right? Or are your fixes only those listed in the config file and therefore need to be activated for there to be any difference to Microsoft's DirectDraw to happen?

PS: I have been PM chatting with cloudstr about getting his game working a little slower. Is it at all possible you could please make us a version of your .dll file that runs at the next speed down from 62FPS. I don't know what that might be if it is possible but would it be something like 54 or 55 FPS?

If possible we would really appreciate it as we have been running some tests and I got an idea that might help cloudstr.
Cheers.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Addition:
Just wanted to say that I noticed when using DXWind by itself I noticed screen 'tearing' even when video card VSync was enabled.
When using your ddraw.dll with DXWind the 'screen tearing' is gone.
This is probably because of how you have implemented FakeVSync.
In this regard It works great. Also the fact that your method works even if the video card VSync is enabled or disabled is fantastic because that means it even works with integrated onboard chips (IE: those users without ATI or Nvidia cards).
Unfortunately where normally your ddraw.dll run by itself
caps at 62FPS, but when run with DXWind this changes to 64-65FPS.
My idea would be to try a version of your ddraw.dll that is capped to the next
speed down (pure guessing that it might be around 54-55FPS if possible?).
Then run that with DXWind which might raise the FPS closer to 58-59FPS.
That result is so close to 60FPS that cloudstr might find it acceptable?
Please if you want to give it a try could you compile us a ddraw.dll
If you don't want to make it an official release you could just PM me.
Thanks again.

Reply 57 of 101, by aqrit

User metadata
Rank Member
Rank
Member

The interval that FakeVsync uses is now configurable.

If you have (real) vysnc then the FakeVsync option introduces screen tearing.
FakeVysnc option does nothing to mitigate screen tearing, it is meant to prevent games from running too fast.

With all options set to "off" ddwrapper provides no benefits.
However, it still hooks/wraps the interfaces.
Any noticeable changes between [no dll] and [dll with everything off] would be a bug.

You may also like http://code.google.com/p/hourglass-win32/

Reply 59 of 101, by jclampy

User metadata
Rank Newbie
Rank
Newbie

Testing TS2000 (Total Soccer 2000) for cloudstr

WinXP32bit, ATI4670HD, P4EE 3.4Ghz
Video Driver VSync = Always ON
Also, at all times throughout this set of test's my monitor refresh rate was at 75Hz,
confirming that no 'screen tearing' was created from the game and monitor running
at different speeds at same time, which can normally happen.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Using nothing else at all
Main Menu 30FPS
Playing Match 58FPS

Aqrit ddraw.dll everything set to 0 (In other words, disabled)
Main Menu 30FPS
Playing Match 58FPS

Using only DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Main Menu 30FPS
Playing Match 58FPS
Noticed 'screen tearing'

Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 0
Main Menu 30FPS
Playing Match 62-63FPS

Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 0
*For this test only I wil turn OFF video card VSync.
Main Menu 30FPS
Playing Match 62-63FPS
Exactly the same results... So video card VSync does not interfere.

Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 17
Main Menu 30FPS
Playing Match 59FPS
Changing FakeVsyncInterval is working fine.

DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 0
Main Menu 30FPS
Playing Match 63-64FPS
'Screen tearing' is gone when combining DXWind with Aqrit ddraw.dll

DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 17
Main Menu 30FPS
Playing Match 59FPS
Aqrit ddraw.dll FakeVsyncInterval is still working fine.

DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Aqrit ddraw.dll FakeVsync = 1 and FakeVsyncInterval = 17
*For this test only I wil turn OFF video card VSync.
Main Menu 30FPS
Playing Match 59FPS
Exactly the same results... So video card VSync still does not interfere.

Honestly, this is absolutely fantastic to be able to get 59FPS, which is close
enough to our target of 60FPS. The FPS display might show 58FPS or 60FPS
for a second so one could argue that it is running at perfect speed.

PS: This game also can use the 3DFX Glide API and when using for example
the 'NGlide wrapper' I get rock solid Main Menu 30FPS and playing game 60FPS.
Just to confirm that these framerate's are what the game normally run's at.

Well done Aqrit. Thank you for making the FakeVsyncInterval selectable.
I want to run some test's on other games of course but I will have a break first.
Hopefully that provides some help/insight Cloudstr?
Since you have Intel onboard chipset graphics instead of Nvidia or ATI card and
cannot modify your video chipset/card VSync setting. The test's with DXWind
and Aqrit's ddraw.dll combination will definately be reproducible due to how
one or both utilities are bypassing the need of video driver VSync.

Also, at all times throughout this set of test's my monitor refresh rate was at 75Hz,
confirming that no 'screen tearing' was created from the game and monitor running
at different speeds at same time, which can normally happen.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Summary:
Play fullscreen (640x480) use Aqrit ddraw.dll = NO 'screen tearing'
Play windowed (custom size) use DXWind and Aqrit ddraw.dll = NO 'screen tearing'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Further tests in regards to DXWind 'screen tearing' issue;
Monitor set to 60Hz
Video Card VSync = Always ON
DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Visible 'screen tearing'

Monitor set to 60Hz
Video Card VSync = Always OFF
DXWind with DirectX1~6 and Primary Surface ticked at 800x600
Visible 'screen tearing'