VOGONS


Tech demos - general discussion

Topic actions

Reply 21 of 103, by teleguy

User metadata
Rank Member
Rank
Member
CoolGamer wrote:
Matrox G200 Tech Demo (DX5) http://soggi.eu/video-cards/tech-demos.htm http://toastytech.com/files/Is3Engine.zip […]
Show full quote

Matrox G200 Tech Demo (DX5)
http://soggi.eu/video-cards/tech-demos.htm
http://toastytech.com/files/Is3Engine.zip

This G200 demo probably uses a simpler version of the same engine that G400 demo uses. You need to use 32bit version of InstallShield3 setup32.exe to install it. It has a GPU name check which can be easily turned off using Ollydbg, but after that it starts giving initialization errors.

I got around the initialization error. Unfortunately with the current dgVoodoo WIP it only shows the menu but closes when you click the "Start" button.

However using Wined3d allows launching the actual demo.

Matrox.png
Filename
Matrox.png
File size
371.78 KiB
Views
2089 views
File license
Fair use/fair dealing exception
Matrox2.png
Filename
Matrox2.png
File size
571.41 KiB
Views
2089 views
File license
Fair use/fair dealing exception

There is no video of this demo on the internet so its visuals are a big mystery.

Not anymore.
https://youtu.be/FEy377dApaI

Last edited by teleguy on 2017-03-13, 10:34. Edited 3 times in total.

Reply 22 of 103, by teleguy

User metadata
Rank Member
Rank
Member

Here are the necessary files.

Attachments

  • Filename
    Wined3d.zip
    File size
    1.35 MiB
    Downloads
    116 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    MatroxG200-patched.zip
    File size
    203.46 KiB
    Downloads
    120 downloads
    File license
    Fair use/fair dealing exception

Reply 23 of 103, by teleguy

User metadata
Rank Member
Rank
Member

DDrawCompat also works.

https://github.com/narzoul/DDrawCompat

Attachments

  • Filename
    DDrawCompat.zip
    File size
    420.87 KiB
    Downloads
    106 downloads
    File license
    Fair use/fair dealing exception
Last edited by teleguy on 2017-03-14, 19:43. Edited 1 time in total.

Reply 24 of 103, by CoolGamer

User metadata
Rank Member
Rank
Member

Wow, G200 tech demo video looks great. I am glad that it did not turn out to be a simple demo with a 3D soda can on a table 😀 . Water shaders look great for a DX5 demo. It provides a good opportunity to fix DX5 related bugs in dgVoodoo WIP31.

I had no luck getting the G200 tech demo to work on my Windows 7 Ultimate 64bit OS via WineD3D or via DDrawCompat. I also tried Application Compatibility Toolbox. Application just hangs when I use WineD3D. DDrawCompat gives a Visual C++ function call error.

Reply 25 of 103, by Dege

User metadata
Rank l33t
Rank
l33t
teleguy wrote:
I got around the initialization error. Unfortunately with the current dgVoodoo WIP it only shows the menu but closes when you cl […]
Show full quote
CoolGamer wrote:
Matrox G200 Tech Demo (DX5) http://soggi.eu/video-cards/tech-demos.htm http://toastytech.com/files/Is3Engine.zip […]
Show full quote

Matrox G200 Tech Demo (DX5)
http://soggi.eu/video-cards/tech-demos.htm
http://toastytech.com/files/Is3Engine.zip

This G200 demo probably uses a simpler version of the same engine that G400 demo uses. You need to use 32bit version of InstallShield3 setup32.exe to install it. It has a GPU name check which can be easily turned off using Ollydbg, but after that it starts giving initialization errors.

I got around the initialization error. Unfortunately with the current dgVoodoo WIP it only shows the menu but closes when you click the "Start" button.

However using Wined3d allows launching the actual demo.

Matrox.png
Matrox2.png

There is no video of this demo on the internet so its visuals are a big mystery.

Not anymore.
https://youtu.be/FEy377dApaI

DllMain again... 😵

 	DDraw.dll!DDrawFunctions::DirectDrawEnumerateA(int(__stdcall*)(_GUID *, char *, char *, void *) lpCallback, void * lpContext) Line 232	C++
DDraw.dll!DirectDrawEnumerateA(int(__stdcall*)(_GUID *, char *, char *, void *) lpCallback, void * lpContext) Line 147 C++
> Matrox.vd!10002c3d() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for Matrox.vd]
[External Code]
Matrox.exe!00412b1e() Unknown
Matrox.exe!00412c5e() Unknown
Matrox.exe!0040483a() Unknown
[External Code]

Reply 26 of 103, by Nucleoprotein

User metadata
Rank Member
Rank
Member

@Dege
You tried to pin your DLL ? ie. create thread inside your DllMain and in that thread call GetModuleHandleEx to 'self' with GET_MODULE_HANDLE_EX_FLAG_PIN - https://msdn.microsoft.com/en-us/librar ... s.85).aspx it can be little unsafe trough.

Reply 27 of 103, by teleguy

User metadata
Rank Member
Rank
Member
CoolGamer wrote:

I had no luck getting the G200 tech demo to work on my Windows 7 Ultimate 64bit OS via WineD3D or via DDrawCompat. I also tried Application Compatibility Toolbox. Application just hangs when I use WineD3D. DDrawCompat gives a Visual C++ function call error.

Indeed, the demo doesn't seem to work at all with Wined3d on Windows 7 and I tried lots of different versions. Also, as far as I can tell, AMD seems to do better than Nvidia, I noticed a wrapper isn't even needed!
(Looks like SingleProcAffinity is necessary for WineD3D to work. The demo can still take a while to launch even with that.)

Filename
G200 Tech Demo CompatFix.zip
File size
863 Bytes
Downloads
87 downloads
File comment
SingleProcAffinity Fix
File license
Fair use/fair dealing exception

I've done a few more tests and these are my findings:

Windows XP (Virtual Machine):

WineD3D (1.7.52 or older) ->working ( http://downloads.fdossena.com/Projects/WineD3 … dows_1.7.52.zip )
DDrawCompat ->incompatible
Win 95 mode ->not working

Windows 7 64 bit / R9 290X:

WineD3D (multiple versions)->exe does nothing or keeps eating up more and more ram
DDrawCompat ->working
Win 95 mode/ no wrapper ->working

Windows 10 64 bit / R9 290X:

WineD3D ->working
DDrawCompat ->working
Win 95 mode / no wrapper ->working

Windows 10 64 bit / GTX 1070:

WineD3D (multiple versions)->exe does nothing or keeps eating up more and more ram
DDrawCompat (test release) ->exe closes itself
DDrawCompat (0.2.1) ->Visual C++ error
Win 95 mode / no wrapper ->Visual C++ error
Win 95 mode + DDrawCompat ->working at last!

EDIT: I was able to make WineD3D work on my Windows 7 AMD and my Windows 10 Nvidia system by adding Mesa's Opengl32.dll to the demo folder and selecting "backbuffer" as "Offscreen Rendering" mode in wined3dcfg.cpl but performance is poor.
https://www.dropbox.com/s/4cp63htqn5eyeon/opengl32.zip?dl=0

Filename
wined3dcfg.zip
File size
25.36 KiB
Downloads
136 downloads
File license
Fair use/fair dealing exception
Last edited by teleguy on 2017-03-14, 21:50. Edited 4 times in total.

Reply 28 of 103, by CoolGamer

User metadata
Rank Member
Rank
Member

STMicroElectronics Kyro II Tech Demos (DX7)
(I think this was the chipset of old Hercules 3D cards)
http://soggi.eu/video-cards/tech-demos.htm
http://web.archive.org/web/20020207025456/htt … mple/temple.htm

All 4 of the demos crash via dgVoodoo WIP31. Toon Demo (Cartoon/Cel-Shading), Still Life Demo (Hatching shader) and Temple Demo run fine natively on Windows 7. Energy demo only runs via WineD3D (a little buggy and slow). Energy demo uses DX7 Environmental Bump Mapping (EMBM) and has a PDF file that explains the EMBM render function!!! Temple demo has multiple effects (particle system, multi-texturing, bump map, light map, environment map, detail map, etc.). You can press the "Alt" key to bring the menu in these demos.

Temple demo runs on all GPUs. Other demo Exe files have a GPU name check which can be easily turned off using Ollydbg. Just extract all zip files into the same folder using 7zip (WinRar and Winzip do not work). Each demo consists of a single file, an executable. All four Exe files are further compressed using UPX (link below). You can extract them using the following command "upx.exe -d demoname.exe". After that its easy to hook the debugger.
https://github.com/upx/upx/releases/download/ … .93/upx393w.zip

I feel like there is one minor bug in WIP31 that is causing all these crashes in demos. Once you sort it out we will be in directx conformance Nirvana with the next WIP build 😀 .

Reply 29 of 103, by teleguy

User metadata
Rank Member
Rank
Member
Dege wrote:
DllMain again... :dead: […]
Show full quote

DllMain again... 😵

 	DDraw.dll!DDrawFunctions::DirectDrawEnumerateA(int(__stdcall*)(_GUID *, char *, char *, void *) lpCallback, void * lpContext) Line 232	C++
DDraw.dll!DirectDrawEnumerateA(int(__stdcall*)(_GUID *, char *, char *, void *) lpCallback, void * lpContext) Line 147 C++
> Matrox.vd!10002c3d() Unknown
[Frames below may be incorrect and/or missing, no symbols loaded for Matrox.vd]
[External Code]
Matrox.exe!00412b1e() Unknown
Matrox.exe!00412c5e() Unknown
Matrox.exe!0040483a() Unknown
[External Code]

Where's UCyborg when you need him? 😁

Reply 30 of 103, by teleguy

User metadata
Rank Member
Rank
Member
CoolGamer wrote:

I had no luck getting the G200 tech demo to work on my Windows 7 Ultimate 64bit OS via WineD3D or via DDrawCompat. I also tried Application Compatibility Toolbox. Application just hangs when I use WineD3D. DDrawCompat gives a Visual C++ function call error.

BTW did you check DDrawCompat's log?

Reply 32 of 103, by CoolGamer

User metadata
Rank Member
Rank
Member

Teleguy, I tried the SingleProcAffinity compatibility fix that you posted but could not get G200 tech demo to run with WineD3D or DDrawCompat. I posted the DDrawCompat log below, but as you can see the log is not very helpful. Dege's next WIP build is my only hope at the moment 😀 .

Process path: C:\Games\Temp\MGAG200TechDemo\Matrox.exe
Environment variable __COMPAT_LAYER = ""
Loading DDrawCompat from C:\Games\Temp\MGAG200TechDemo\DDRAW.DLL
DDrawCompat loaded successfully
Installing registry hooks
Installing Direct3D driver hooks
Installing DirectDraw hooks
Hooking user mode display driver: "nvd3dum.dll"
Installing Direct3D hooks
Installing GDI hooks
Finished installing hooks
Detaching DDrawCompat
DDrawCompat detached successfully

Reply 33 of 103, by UCyborg

User metadata
Rank Member
Rank
Member

There's something really awful about that G200 Tech Demo. Can't be fixed by dgVoodoo, needs some serious patching. Sorry, my DllMain patch alone won't do, it crashes in D3D11.dll. Seems to be making DDraw calls on DLL_THREAD_ATTACH, disabling thread notifications just makes it exit with code 1. Seems to be working natively with teleguy's patched exe alone + Win10 + Win95VersionLie from Compatibility Administrator + NVIDIA GTX 750 Ti driver version 368.81.

G400 Tech Demo doesn't work here, crashes with dgVoodoo or without when I launch it, except without dgVoodoo crashpoint is ntdll.dll and the main executable otherwise.

Last edited by UCyborg on 2017-03-14, 21:49. Edited 2 times in total.
Arthur Schopenhauer wrote:

A man can be himself only so long as he is alone; and if he does not love solitude, he will not love freedom; for it is only when he is alone that he is really free.

Reply 34 of 103, by teleguy

User metadata
Rank Member
Rank
Member

CoolGamer

The SingleProcAffinity fix was not intended specifically for your problem but is needed in general even for the cases I reported working earlier. I had forgotten I had applied it to the tech demo a few weeks ago, just noticed about it today and only mentioned it for completeness sake. That still didn't make the demo run on my Windows 7 through WineD3D though, however I sort of found a workaround, see my edits to this
post WIP versions

Reply 35 of 103, by teleguy

User metadata
Rank Member
Rank
Member
CoolGamer wrote:

Teleguy, I tried the SingleProcAffinity compatibility fix that you posted but could not get G200 tech demo to run with WineD3D or DDrawCompat. I posted the DDrawCompat log below, but as you can see the log is not very helpful. Dege's next WIP build is my only hope at the moment 😀 .

I added UCyborg's Win95VersionLie and a few other options and now got WineD3D working flawlessly on my Win 7 AMD and Windows 10 Nvidia systems (without using that Opengl32.dll).

Can you uninstall the previous profile, then test the new profile1 alone, with DDrawCompat and WineD3D and then do the same for profile2 ?

PS: Launching the demo takes a while on WineD3D so give it some time. However it's usually a good sign when a blank icon appears in the taskbar or the screen goes black.

Attachments

Last edited by teleguy on 2017-03-15, 22:20. Edited 1 time in total.

Reply 36 of 103, by teleguy

User metadata
Rank Member
Rank
Member
UCyborg wrote:

Seems to be working natively with teleguy's patched exe alone + Win10 + Win95VersionLie from Compatibility Administrator + NVIDIA GTX 750 Ti driver version 368.81.

I tried that. Unfortunately I still can't run the demo natively on my Nvidia system. 😢

Edit: Driver version 369.09.

Reply 37 of 103, by Dege

User metadata
Rank l33t
Rank
l33t

I open this topic for discussing general problems of running various tech demos, and ways to fix them.
If an issue or solution is not directly related to a specific dgVoodoo (WIP) version (or dgVoodoo at all) then please post it here.

Reply 38 of 103, by CoolGamer

User metadata
Rank Member
Rank
Member

Teleguy, thanks for your help. I got the G200 demo to work on my Windows 7 Ultimate 64bit os with Nvidia GT230M. Test results are below.

Test Results:
Without a compatibility profile I could not get the G200 tech demo to work no matter what I tried.

profile 1 on its own, application crashes with Visual C++ function call error

profile 1 + DDrawCompat works!!! (This is the best option for me at the moment)

profile 1 + wined3d works!!! (but crashes at exit when I press the Escape key)

Profile 1 + winded3d + wined3dcfg.cpl + opengl32 works but slow.

There is a problem with Profile 2, it gives an error during installation that says "Error could not open SDB". I think the SDB file got corrupted somehow. If you fix it, I will edit this post and add the test results for Profile 2.

Reply 39 of 103, by teleguy

User metadata
Rank Member
Rank
Member

Thanks for the test results. The only difference between the profiles is that with profile 2 Matrox.exe runs in admin mode. This was required on my Nvidia system, otherwise the graphics would leave a trail behind, see screenshot. But since you don't have that problem it's not really necessary. And of course users can easily enable that mode themselves if needed.

.

Attachments

  • Matrox.jpg
    Filename
    Matrox.jpg
    File size
    79.21 KiB
    Views
    1573 views
    File license
    Fair use/fair dealing exception