Page 30 of 32

Re: NGlide versus my glide games collection

Posted: Mon Oct 03, 2016 2:32 am
by Gamecollector
Zeus, can you please fix the Realmyst .exe? This *censored* game constantly quits to the desktop if a certain resolution was selected. And IIRC you said this is the game bug, not the nGlide bug.

Re: NGlide versus my glide games collection

Posted: Mon Oct 03, 2016 5:39 pm
by Zeus
Gamecollector wrote:Zeus, can you please fix the Realmyst .exe? This *censored* game constantly quits to the desktop if a certain resolution was selected.

I know, I know, but for now this has to wait.

In the meantime you may try grabbing exe from GOG release. It's possible they fixed it already (I don't have the game so can't confirm).

Re: NGlide versus my glide games collection

Posted: Mon Oct 10, 2016 7:12 am
by Gamecollector
Found an old backup of EverQuest. The game supports the glide API. To be more precise: the game tutorial supports, maybe the client itself supports too.
Troubles are - I not have and not want to have the account in this game, the current client version may abandon the glide support, the client from this cd not updates and not starts.
And by the way - MMORPGs and MMO as the genre are sucks.

Maybe add another section to the list? "Online".

P.S. NGlide 1.05 is bugged in the tutorial:
Everquest.JPG
Everquest.JPG (63.54 KiB) Viewed 2914 times

P.S.S. Can't find the dependencies chain from tutorial.exe to glide3x.dll... Tutorial.exe have some _gr* strings but Dependency Viewer not shows a link to glide3x.dll. Similar to Lego Chess?

Re: NGlide versus my glide games collection

Posted: Thu Oct 13, 2016 1:04 am
by Gamecollector
Another problem was found...
Starsiege: Tribes, 1024x768, demo "Beatdown". Quits to the desktop at 3:40. Nglide 1.04 quits too. Voodoo2 SLI is ok.
WtF? A memory leak?
P.S. 640x480 quits too at 3:32.

Re: NGlide versus my glide games collection

Posted: Thu Oct 13, 2016 5:57 pm
by NicoDE
NicoDE wrote:
Gamecollector wrote:Apache Longbow:
1) The original version lose the focus (Alt+Tab once fixes this). Not sure about the source of this (this version isn't Voodoo2 compatible so can't test it with a real hardware).

I have the same issue with King's Quest: Mask of Eternity. Not always, the chance is 50/50.

Finally I found the reason by enabling the nGlide logging...
The IDirect3D9::CreateDevice sometimes returns E_INVALIDARG (nGlide handles only the documented D3D error code, therefore the fallback code is not executed). nGlides hides the active window in grSstWinOpen if this fails. The next time the function is called, there is no active window for the current thtead and nGlide creates a new window. This breaks the application logic and mouse cursor is no longer working.

Re-showing/activating the app window in my runtime hook works around the issue. Trying it a second time usually succeeds. However, I have to implement even more code to hide all this stuff from the application :-)

Re: NGlide versus my glide games collection

Posted: Wed Oct 19, 2016 2:47 am
by Gamecollector
Have tested ICC Cricket World Cup: England 99 (The Creative Assembly, EA, 1999). The game installs voodooa.dll. But - there are no signs of the "thrash API" in the registry. D3d only.
No luck... :(
P.S. The tested version was from the compilation (The Biggest Names the Great Games 4) but I doubt the original version will be different.

Re: NGlide versus my glide games collection

Posted: Wed Oct 19, 2016 7:04 am
by Gamecollector
Err... Zeus, there is a problem.
Tiger Woods PGA Tour 2000.
640x480, Details are high, the fog density is low.
Pebble Beach GL99, Practice, only the 1st hole.
Thrash driver=voodoo2, nGlide 1.05 loading time - 40 seconds. Can't say the long loading time is fixed.
Thrash driver=voodoo, nGlide 1.05 loading time - 6 seconds. Fixed.
Wrong target and no 1024x768 with the glide2x renderer are fixed too.

P.S. Similar loading times in Tiger Woods PGA Tour 2001.

Re: NGlide versus my glide games collection

Posted: Sun Oct 23, 2016 2:27 am
by Gamecollector
New game to the "native" list:

  • Skydive! - Groove Games, 1999.

    Very strange game. Hybrid cd, no directx dependencies but supports 3dfx. Plus can't find the glide2x dependency with standard tools...
    The game is too fast on my test PC. Plus it needs the 640x480 desktop.
    Looks ok with the nGlide 1.05.

Skydive!.JPG
Skydive!.JPG (30.6 KiB) Viewed 2779 times

Re: NGlide versus my glide games collection

Posted: Sun Oct 30, 2016 1:13 am
by Zeus
Gamecollector wrote:Found an old backup of EverQuest. The game supports the glide API. To be more precise: the game tutorial

Really unexpected... :)

Gamecollector wrote:P.S.S. Can't find the dependencies chain from tutorial.exe to glide3x.dll... Tutorial.exe have some _gr* strings but Dependency Viewer not shows a link to glide3x.dll. Similar to Lego Chess?

Most likely the game loads Glide libraries dynamically, you should be able to find them in a dll(s) or exe by searching for "glide3x" string in your hex-editor.

Gamecollector wrote:Another problem was found...
Starsiege: Tribes, 1024x768, demo "Beatdown". Quits to the desktop at 3:40. Nglide 1.04 quits too. Voodoo2 SLI is ok.
WtF? A memory leak?
P.S. 640x480 quits too at 3:32.

Added to check list.

Gamecollector wrote:Thrash driver=voodoo2, nGlide 1.05 loading time - 40 seconds. Can't say the long loading time is fixed.
Thrash driver=voodoo, nGlide 1.05 loading time - 6 seconds. Fixed.

This is not a bug, but a performance issue. The game reads color buffers like crazy during loading screens. While it's great it's faster now in 1.05 it should be further improved.

Gamecollector wrote:New game to the "native" list:
Skydive! - Groove Games, 1999.
Very strange game. Hybrid cd, no directx dependencies but supports 3dfx. Plus can't find the glide2x dependency with standard tools...

Again, use hex-editor (HxD?) and search for "glide2x" text (unicode unchecked). It must be somewhere, either in exe or in one of game dll files (some dlls may have extensions renamed).

NicoDE wrote:The IDirect3D9::CreateDevice sometimes returns E_INVALIDARG

Hmm.. that's really interesting. The game must be doing some weird stuff with active window forcing D3D to return such odd error. I will remove a code that hides the window (obvious) but what if this will cause CreateDevice to return E_INVALIDARG forever so the game won't launch at all sometimes?

It would be great if you could remove a line that hides the window with your hex editor in 1.05 glide2x.dll and report your results.

Re: NGlide versus my glide games collection

Posted: Fri Nov 11, 2016 5:33 pm
by NicoDE
Zeus wrote:The game must be doing some weird stuff with active window forcing D3D to return such odd error. I will remove a code that hides the window (obvious) but what if this will cause CreateDevice to return E_INVALIDARG forever so the game won't launch at all sometimes?

It would be great if you could remove a line that hides the window with your hex editor in 1.05 glide2x.dll and report your results.

I removed the following calls:

Code: Select all

SystemParametersInfoA(SPI_SETDESKWALLPAPER, 0, NULL, SPIF_SENDCHANGE);
ShowWindow(g_WindowHandle, SW_HIDE);

If grSstWinOpen() fails, the game calls it a second time with the previous resolution.
If the second call also fails, the game is crashing.
If the second call succeeds, the game state is wrong (it thinks it uses the requested resolution - the loading screen elements are on the wrong positions).

This can happen directly during the start, because the game is always starting with 640x480 and then switching to 800x600 if enabled.

I will keep the retry-loop (up to 5 times, never failed more than 2 times in a row) and the hidden-window-handling for the next release of the KQMoE Shim (kqmoefix). So there is no need to change nGlide (the window-hiding / switch-to-an-internal-window might be required for other games).