Software Support > GroovyMAME

Multithreading & ddraw?

(1/2) > >>

EnC:
* Multithreaded mode and waitvsync work together in Windows without throttle

How is that different/better than what official MAME build does?

Is it to fix some bug, which one? Is it additional feature, what for?



* Default GroovyMAME setting is to use DirectDraw instead of Direct3D

What is advantage in using depreciated and slower rendering pathway?

Calamity:

--- Quote from: EnC on August 02, 2011, 03:39:29 pm ---* Multithreaded mode and waitvsync work together in Windows without throttle

How is that different/better than what official MAME build does?

Is it to fix some bug, which one? Is it additional feature, what for?

--- End quote ---

In official MAME, when you enable multithreading + waitvsync and disable throttle, emulation goes full speed. This bug was reported by bitbytebit and MAME devs fixed it indeed, but only in the Linux (SDL) side. The issue persists in the Windows build, so we fix that in GroovyMAME.

If it doesn't go fullspeed in your system, it's likely that you're forcing some vsync option in your videocard's control panel.


--- Quote from: EnC on August 02, 2011, 03:39:29 pm ---* Default GroovyMAME setting is to use DirectDraw instead of Direct3D

What is advantage in using depreciated and slower rendering pathway?

--- End quote ---

DirectDraw is used as it was known to be faster than D3D actually, and also D3D caused an ugly blur in low resolutions as it filtered them, something that didn't happen with DirectDraw.

However, my experience is this is exactly the opposite with newer cards, where D3D is actually faster and causes no visible artifacts, while ddraw filters the frame. So D3D is a better option, specially when scaling is involved (it's several times faster than DDraw).

All GroovyMAME features work exactly the same for DDraw and D3D, so you can decide which one to use.

EnC:

--- Quote from: Calamity on August 02, 2011, 04:52:48 pm ---
In official MAME, when you enable multithreading + waitvsync and disable throttle, emulation goes full speed. This bug was reported by bitbytebit and MAME devs fixed it indeed, but only in the Linux (SDL) side. The issue persists in the Windows build, so we fix that in GroovyMAME.

If it doesn't go fullspeed in your system, it's likely that you're forcing some vsync option in your videocard's control panel.

--- End quote ---

I just tried it and I have to disagree. In official MAME regardless of "multithreading" emulation does not go full speed with "waitvsync" enabled, it goes to exactly 100% as throttle is disabled, and that's as expected. It can go to full (maximum) speed only if "waitvsync" is diasbled and throttle (F10) is off.

This is very similar to what GroovyMAME does, it's only that the same thing is here controlled with "syncrefresh" instead of "waitvsync", which does not seem to have any functionality on its own, but is part of "syncrefresh". I am still not clear on what is the purpose of that feature or why GroovyMAME changed the way syncrefresh/waitvsync works. I also don't see how "multithreading" has anything to with any of this since in my tests that setting did not make any difference at all.



--- Quote ---DirectDraw is used as it was known to be faster than D3D actually, and also D3D caused an ugly blur in low resolutions as it filtered them, something that didn't happen with DirectDraw.

--- End quote ---

I don't see how DirectDraw can possibly be faster if video card already supports DirectX. I guess if it's old enough it could simply not be able to support Direct3D, but that would only mean the particular adapter is outdated and so the only option is to use DDraw, which is no good reason to have it as default setting and downgrade everyone else.

The "blur" is welcome by many who are not using arcade monitors, it's bilinear texture filtering and can simply be disabled with setting "filter" option to zero, right? In any case you seem to be talking about past, but Groovy build is made around latest MAME and aimed at fairly modern hardware, so I think you should definitively consider to get this setting back to Direct3D as default option.



--- Quote ---However, my experience is this is exactly the opposite with newer cards, where D3D is actually faster and causes no visible artifacts, while ddraw filters the frame. So D3D is a better option, specially when scaling is involved (it's several times faster than DDraw).

--- End quote ---

On my system it doubles the speed of Bank Panic, so instead of DirectDraw's 500%, I get maximum of 1000% game speed with Direct3D. This is huge difference and can turn many games from slow and unplayable to perfectly playable.



--- Quote ---All GroovyMAME features work exactly the same for DDraw and D3D, so you can decide which one to use.

--- End quote ---

Apparently not. On my two computers DircetDraw was not able to properly sync with refresh rate, even though every other aplication and emulator can sync just fine. Direct3D is also much faster, so even though it's cool this can be set according to everyone's personal desire I don't see why would anyone prefer inferior option, and so I don't see any good reason why use it as *default*.

krick:

--- Quote from: EnC on August 03, 2011, 02:05:45 am ---
The "blur" is welcome by many who are not using arcade monitors, it's bilinear texture filtering and can simply be disabled with setting "filter" option to zero, right? In any case you seem to be talking about past, but Groovy build is made around latest MAME and aimed at fairly modern hardware, so I think you should definitively consider to get this setting back to Direct3D as default option.


--- End quote ---


The problem is that the majority of GroovyMAME users ARE using arcade monitors.  We want pixel-perfect output without blurring.

EnC:

--- Quote from: krick on August 03, 2011, 06:41:01 pm ---The problem is that the majority of GroovyMAME users ARE using arcade monitors.  We want pixel-perfect output without blurring.

--- End quote ---

That's not a problem, Direct3D can do everything DirectDraw can, and more, and it can do it faster. If you are using arcade monitor simply turn off texture filtering and you will get the same thing. I think GroovyMAME should/could be useful to anyone, with any kind of monitor, if for nothing else but to have proper audio sync along frame rate sync, even if the game is not running at its authentic resolution and refresh rate.

Navigation

[0] Message Index

[#] Next page

Go to full version