Posted October 31, 2014
EDIT: Latest binary release: http://iki.fi/sol/zip/tie_ddwrapper_20141102.zip - use at your own risk.
---- Original post follows..
Anyhoo, here's some notes I quickly put together..
Step one:
dumpbin /imports TIE95.EXE | grep dll
DDRAW.dll
DINPUT.dll
DSOUND.dll
WINMM.dll
KERNEL32.dll
USER32.dll
VERSION.dll
So yes, it's using ddraw.dll.
Scanning the TIE95.EXE for ".dll", I found references to PVRHAL32.DLL, so the binary probably can support 3d acceleration through some PoverVR's ancient interface. There were some strings talking about "Direct3D version 2.0" too. Other 3d-related stuffs include "Matrox M3D" and VSGL.VXD.
I hit the game with my logger ddraw.dll, Started the game, hit escape and quit the game. Up to that point, these interfaces were called:
IDDraw1::CreatePalette
IDDraw1::CreateSurface
IDDraw1::FlipToGDISurface
IDDraw1::GetCaps
IDDraw1::GetMonitorFrequency
IDDraw1::GetVerticalBlankStatus
IDDraw1::Release
IDDraw1::RestoreDisplayMode
IDDraw1::SetCooperativeLevel
IDDraw1::SetDisplayMode
IDDrawPalette::Release
IDDrawPalette::SetEntries
IDDrawSurface1::Blt
IDDrawSurface1::Flip
IDDrawSurface1::GetAttachedSurface
IDDrawSurface1::GetSurfaceDesc
IDDrawSurface1::Lock
IDDrawSurface1::Release
IDDrawSurface1::SetPalette
IDDrawSurface1::Unlock
..which looks like a relatively short list. My wrapper for wing commanders did not work as is though (those use "higher" interfaces than '1' though, so that may be the reason..)
It's likely that other interfaces are used when we get into the game proper, but that's a start, at least.
To be (possibly) continued..
---- Original post follows..
Anyhoo, here's some notes I quickly put together..
Step one:
dumpbin /imports TIE95.EXE | grep dll
DDRAW.dll
DINPUT.dll
DSOUND.dll
WINMM.dll
KERNEL32.dll
USER32.dll
VERSION.dll
Scanning the TIE95.EXE for ".dll", I found references to PVRHAL32.DLL, so the binary probably can support 3d acceleration through some PoverVR's ancient interface. There were some strings talking about "Direct3D version 2.0" too. Other 3d-related stuffs include "Matrox M3D" and VSGL.VXD.
I hit the game with my logger ddraw.dll, Started the game, hit escape and quit the game. Up to that point, these interfaces were called:
IDDraw1::CreatePalette
IDDraw1::CreateSurface
IDDraw1::FlipToGDISurface
IDDraw1::GetCaps
IDDraw1::GetMonitorFrequency
IDDraw1::GetVerticalBlankStatus
IDDraw1::Release
IDDraw1::RestoreDisplayMode
IDDraw1::SetCooperativeLevel
IDDraw1::SetDisplayMode
IDDrawPalette::Release
IDDrawPalette::SetEntries
IDDrawSurface1::Blt
IDDrawSurface1::Flip
IDDrawSurface1::GetAttachedSurface
IDDrawSurface1::GetSurfaceDesc
IDDrawSurface1::Lock
IDDrawSurface1::Release
IDDrawSurface1::SetPalette
IDDrawSurface1::Unlock
It's likely that other interfaces are used when we get into the game proper, but that's a start, at least.
To be (possibly) continued..
Post edited November 02, 2014 by Sol_HSA