VOGONS

Common searches


Reply 20 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member
robertmo wrote:

Wouldn't it be better to contact DXGL/WineD3D devs first as they may already have some more recent source, exchange ideas and generally cooperate?

The bleeding edge DXGL source is available, and yeah, I've been contacting people all around..

The thing with software development like this is, you need someone to drive a project, and once you have something up and running then, perhaps, other people want to chip in =)

EDIT: figured I might as well start using my "da hat" avatar here as well..

http://iki.fi/sol - my schtuphh

Reply 21 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

ddraw and d3d have something in order of 35 different COM interfaces in dx1-dx7. Fun. Lots of manual work before I even get to try to compile for the first time =)

http://iki.fi/sol - my schtuphh

Reply 23 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

Made stubs for the 48 COM interfaces yesterday. Lots of search&replace stuff, but also lots of things that had to be done manually. The work reminded me of the time I was doing HTML work.. =)

(Oh sure, some complex regexes might have worked too, but I'm not a regex wizard).

I figured I might as well stub dx1-8 while at it. dx9 would add 17 more COM interfaces. Wrapping dx9 to dx9 makes sense in a game hacking / modding sense, so that might be a good idea eventually, but.. I'll just try to get this project rolling first.

http://iki.fi/sol - my schtuphh

Reply 25 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

Some stuff implemented, crimson skies dies after a couple calls. Sigh. Too bad csfix sources aren't available, or this would be easier..

http://iki.fi/sol - my schtuphh

Reply 26 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

Turns out, the above was my mistake; the crash occurred in dx9 setup, trying to create a 0x0 window. Oops..

So I kept tracing. And boy, does crimson skies ever do a lot of work at init.
- Create DirectDraw through DirectDrawCreate()
- Create DirectDraw2 through DirectDraw::queryInterface().
- Set cooperative level through DirectDraw::queryInterface().
- Creates DirectDrawSurface3 through DirectDraw::queryInterface().
- Creates DirectDrawSurface4 through DirectDraw::queryInterface().
- Creates DirectDraw7 through CreateDirectDrawEx()
- Creates Direct3d8 through Direct3DCreate8()

I wouldn't be surprised if it just ignored all the ddraw interfaces it created after that.. =) we'll see..

Oh, and:

dxdx.png

..every project needs a logo.. =)

http://iki.fi/sol - my schtuphh

Reply 28 of 63, by Stiletto

User metadata
Rank l33t++
Rank
l33t++
Sol_HSA wrote:

Too bad csfix sources aren't available, or this would be easier..

Have you tried asking? 😀

FWIW I'm sure many people here would test non-Crimson Skies games for you, were you interested in handling support for them. One step at a time, though...

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

Stiletto

Reply 29 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member
Stiletto wrote:
Sol_HSA wrote:

Too bad csfix sources aren't available, or this would be easier..

Have you tried asking? 😀

Yes, through different channels even, but he's not answering =)

Anyway, I got through that stumbling block, now I just need time to play with it..

http://iki.fi/sol - my schtuphh

Reply 30 of 63, by isamu

User metadata
Rank Newbie
Rank
Newbie

Hello everyone. I'm sorry I don't know where else to post this but I am desperately in need of an OpenGL to D3D wrapper that will allow certain OGL emulators such as ppsspp and Supermodel to support D3D. Reason is, I am eager to use this post processing effect utility called SweetFX on those emulators but it won't work on OpenGL programs. I have already tried using QindieGL and GLDirect 5, but none of them work and in fact causes the both ppsspp and Supermodel emulators to crash. I put the OpenGL32.dll file in the same directory as the emulator exe files, but no luck. I would really like to use this SweetFX post processing utility with OpenGL games/emulators. Please help.

Supermodel link:

http://www.supermodel3.com/

PPSSPP link:

http://www.ppsspp.org/

SweetFX link:

http://forums.guru3d.com/showthread.php?t=376265

Reply 31 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

Okay. Crimson Skies seems to be nuts. It's supposedly a dx7 game, the exe contains the string "d3d8.dll", and as far as I've traced its behavior.. well.. just take a look:

DirectDrawCreate
IDirectDraw::QueryInterface
-> Interface Query: IDirectDraw2
IDirectDraw2::Release
IDirectDraw::SetCooperativeLevel
IDirectDraw::CreateSurface
IDirectDrawSurface::AddRef
IDirectDrawSurface::QueryInterface
-> Interface Query: IDirectDrawSurface3
IDirectDrawSurface::QueryInterface
-> Interface Query: IDirectDrawSurface4
IDirectDrawSurface::Release
IDirectDraw::Release
DirectDrawCreateEx
-> Interface Query: IDirectDraw7
IDirectDraw7::Release
DirectDrawCreate
IDirectDraw::QueryInterface
-> Interface Query: IDirectDraw2
IDirectDraw2::Release
IDirectDraw::SetCooperativeLevel
IDirectDraw::CreateSurface
IDirectDrawSurface::AddRef
IDirectDrawSurface::QueryInterface
-> Interface Query: IDirectDrawSurface3
IDirectDrawSurface::QueryInterface
-> Interface Query: IDirectDrawSurface4
IDirectDrawSurface::Release
IDirectDraw::Release
DirectDrawCreateEx
-> Interface Query: IDirectDraw7
IDirectDraw7::Release
DirectDrawEnumerate
DirectDrawCreate
IDirectDraw::QueryInterface
-> Interface Query: IDirectDraw4
IDirectDraw::Release
IDirectDraw4::GetDeviceIdentifier
IDirectDraw4::GetCaps
IDirectDraw4::GetAvailableVidMem
IDirectDraw4::GetAvailableVidMem
IDirectDraw4::QueryInterface
IDirect3D3::EnumDevices
IDirect3D3::Release
IDirectDraw4::RestoreDisplayMode
IDirectDraw4::Release
DirectDrawEnumerate
DirectDrawCreate
IDirectDraw::QueryInterface
-> Interface Query: IDirectDraw4
IDirectDraw::Release
IDirectDraw4::GetDeviceIdentifier
IDirectDraw4::GetCaps
IDirectDraw4::GetAvailableVidMem
IDirectDraw4::GetAvailableVidMem
IDirectDraw4::QueryInterface
IDirect3D3::EnumDevices
IDirect3D3::Release
IDirectDraw4::RestoreDisplayMode
IDirectDraw4::Release
Show last 66 lines
DirectDrawCreate
IDirectDraw::QueryInterface
-> Interface Query: IDirectDraw4
IDirectDraw::Release
IDirectDraw4::TestCooperativeLevel
IDirectDraw4::RestoreAllSurfaces
IDirectDraw4::SetCooperativeLevel
IDirectDraw4::SetDisplayMode
IDirectDraw4::CreateSurface
IDirectDrawSurface4::AddRef
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDraw4::CreateSurface
IDirectDraw4::CreateSurface
IDirectDrawSurface4::GetPixelFormat
IDirectDraw4::TestCooperativeLevel
IDirectDraw4::RestoreAllSurfaces
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Unlock
IDirectDraw4::TestCooperativeLevel
IDirectDraw4::RestoreAllSurfaces
IDirectDrawSurface4::Release
IDirectDrawSurface4::Release
IDirectDrawSurface4::Release
IDirectDraw4::SetCooperativeLevel
IDirectDraw4::SetDisplayMode
IDirectDraw4::CreateSurface
IDirectDrawSurface4::AddRef
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDraw4::CreateSurface
IDirectDraw4::CreateSurface
IDirectDrawSurface4::GetPixelFormat
IDirectDraw4::TestCooperativeLevel
IDirectDraw4::RestoreAllSurfaces
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDraw4::CreateSurface
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Release
IDirectDraw4::CreateSurface
IDirectDrawSurface4::Lock
IDirectDrawSurface4::Unlock
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Blt
IDirectDrawSurface4::Release
IDirectdraw4.cpp(31): IDirectDraw4::QueryInterface
Unknown GUID: {B502D1BD-9A57-11D0-8FDE-00C04FD9189D}

The last GUID is for IMediaStream. Yay.

http://iki.fi/sol - my schtuphh

Reply 32 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member
isamu wrote:

Hello everyone. I'm sorry I don't know where else to post this but I am desperately in need of an OpenGL to D3D wrapper

GLDirect is pretty much the only game in town:

http://sourceforge.net/projects/gldirect/

and it only supports OpenGL 1.x, so you're very likely out of luck there.

http://iki.fi/sol - my schtuphh

Reply 33 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

I passed the directmedia objects to the game directly, and naturally now I'm getting a crash somewhere inside the directmedia dlls.. so yeah, this might take a while.

http://iki.fi/sol - my schtuphh

Reply 34 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

I'm starting to wonder if I'm approaching this wrong.. maybe I should just pass all interfaces along directly except dx7 ones (or possibly ones that need mucking around to get stuff to work, like csfix does)..

http://iki.fi/sol - my schtuphh

Reply 35 of 63, by robertmo

User metadata
Rank l33t++
Rank
l33t++

just wondering. Nvidia no longer fixes those old dx support problems as they don't have time for that, they need to fix current bugs and optimize current drivers as they have to compete with ati. I guess if they had more time/people they would fix that all. Wouldn't it be possible to somehow cooperate with nvidia with that (help them 😉 )?

Reply 36 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member
robertmo wrote:

just wondering. Nvidia no longer fixes those old dx support problems as they don't have time for that, they need to fix current bugs and optimize current drivers as they have to compete with ati. I guess if they had more time/people they would fix that all. Wouldn't it be possible to somehow cooperate with nvidia with that (help them 😉 )?

Fun idea, but won't happen in the real world. =)

http://iki.fi/sol - my schtuphh

Reply 38 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member
robertmo wrote:

But i remember there was a guy who did something like that for sound blaster cards and resigned only cause somehow didn't like how the company treated him.

Creative Labs back then was a different kind of company.. I've worked for a few huge companies and I know what kind of mix of paranoia, politics and power play there is. Sure, it might be possible for something to happen, but that would require the right people at the right place at the right time, and it's quite unlikely.

Not supporting old games isn't just a matter of "lack of time", there's plenty of politics and playing the market there too. There's no reason whatsoever why nvidia wouldn't support auto-3d vision on opengl, for instance; they already did, but quietly removed the support.

http://iki.fi/sol - my schtuphh

Reply 39 of 63, by Sol_HSA

User metadata
Rank Member
Rank
Member

For anyone anxiously following this thread (the two of you), I've started over by starting to write a code generator that would let me do some more interesting stuff wrapper-wise.. the wrapper code, when it doesn't do anything yet, takes about 170k, so doing massive changes to it by hand is way more work than I like, so I figured I might as well generate the code.

And doing stuff like passthrough wrapping is seriously easiest to do through code generation. The first step is to create a dx1-7 passthrough dll that will generate log of.. EVERYTHING. That will be relatively easy then to modify so that only the dx7 stuff gets patched to dx9. Hopefully.

http://iki.fi/sol - my schtuphh