DirectDraw Surface handling

Parent Previous Next

Auto primary surface refresh

AUTOREFRESH

Some badly programmed games (namely the "Cossaks" series) don't follow the specification to blit changes on screen, they just get the primary surface memory address and keep writing there. The option forces a periodic blitting of the primary surface on screen even if the game doesn't request it. You want a second example? It has not been easy to find, but "Crush! Deluxe" suffers the same problem.

VIDEO → SYSTEM Surface on fail

VIDEOTOSYSTEMMEM

When this option is set and a CreateSurface fails because of video memory shortage, DxWnd backs this up by creating the surface on memory.  Oddly enough, some games expect to notice this by themselves and work correctly only when the option is NOT set.

Suppress DX common errors

SUPPRESSDXERRORS

Some games running in windowed mode generate sporadic errors that wouldn't prevent the game to work, but terminate the application. This option makes directx methods return OK condition in such common cases.

Make Backbuf attachable

BACKBUFATTACH

Alters the size specification of the created backbuffer so that it copes with the actual primary surface, so that it may be attachable to a ZBUFFER surface. It makes “Dave Mirra Freestyle BMX” playable.

Blit from Backbuffer

BLITFROMBACKBUFFER

Some games (the Sims, the only one so far....) read graphic data from the primary surface. When the game runs windowed, the approximation introduced in a scaled window brings cumulative error that appear as a progressive "smearing" effect. In this case, it might be better to read the data from the backbuffer surface that is not scaled, even if in such a way you get other troubles when scrolling (see it by yourself...). The only reasonable alternative: write game code in a better way, in my opinion!

Compensate Flip emulation

NOFLIPEMULATION

???

Suppress clipping

SUPPRESSCLIPPING

DxWnd sets clipping on the primary surface. If the game does it as way, there might be interferences. As a matter of fact, setting this flag is the only way to make "Pax Imperia Eminent Domain" working correctly.

Full RECT blit


Causes every blit operation to primary surface to be applied to the full surface (NULL rect coordinates). It could be handy to recover wrong surface handling, but this situation should be classified more properly as a DxWnd BUG!

Palette update don't blit

NOPALETTEUPDATE

Avoid executing a plit operation in case of palette update. This could be used to fix conflicts between GDI and ddraw palette updates.

Set AERO compatible mode

AEROBOOST

Quite useful in Windows Vista to Win8 platforms, forces the program to declare its compatibility with AERO desktop mode, avoiding then the switch from AERO to standard desktop mode.

Forces HEL

FORCESHEL

Forces Hardware Emulation Layer.

Win7 color fix

COLORFIX

???

Don't fix the Pixel Format

NOPIXELFORMAT

Do not try to fix the surface pixel format.

By default set no ALPHACHANNEL

NOALPHACHANNEL

???

Fix ddraw ref counter

FIXREFCOUNTER

Decrement the reference counter of some objects to keep in proper account all service objects created internally by DxWnd.

Return 0 ref counter

RETURNNULLREF

Returns always a 0 reference counter when a surface / directdraw session is released.

Suppress D3D8/9 reset

NOD3DRESET

Do not perform the D3D reset operation.