Old nForce 610m with Windows 10 flickers greyscale on DirectX 8.1 games.

fosley

Commendable
May 5, 2016
3
0
1,520
I've got an old laptop (a Compaq Presario F750US) from like 2008, which is currently my only PC. I upgraded from 1 GB to 4 GB RAM, and a 240 GB SSD instead of the HDD, plus I did a fresh install of Windows 10; otherwise it's stock. DXDiag output is available here.

Quick Specs:
It doesn't play much from this century, so I've been trying to run some of my old games on it, along with some things I bought on the Steam summer sale. A lot of stuff works, some of it's even got playable framerates, but a few games have been giving me a weird problem.

I'm not positive, but it seems like it may be games using DirectX 8.1 that are the problem.

The problem itself is that the game flickers between a normal render and a render where the image is squished so it takes roughly ¾ of the screen (left-aligned) and is mostly greyscale. In some cases, there's no flickering, just the greyscale part of the image without the full-color version showing at all. I believe the flickering occurs in fullscreen only, and the non-flickering occurs in windowed mode only.

6A3eywA.png


I'm running Windows 10 (my university bought the license for me, if that makes a difference), which has mostly been a good upgrade from the Vista OS the laptop came with. I tried XP, but couldn't find any drivers for it, while W10 (mostly) just works.

I tried installing DirectX 9 through both the standard and standalone run-time installers. I've checked "DirectPlay" under the Programs and Features menu in the Control Panel. I can't find any installers explicitly for DirectX 8, but my understanding is that DX9 is supposed to include the older versions.

I tried running some things in various compatibility modes, but no dice. (Really though, I don't think I've ever once had compatibility mode work for anything.)

I've also tried various resolutions, from 640 x 480 (about the only way I can get decent framerates) to 1280 x 800 (native resolution), with no success. Additionally, I've used the nVidia control panel to set the LCD scaling to stretch, maintain aspect ratio, and no scaling. It scales correctly, but doesn't fix the problem. Finally, I tried running the output through a 1080p television with a VGA input (the laptop only has a VGA output -- supposedly, the motherboard has a DVI out, but there's no dongle to attach anything to). The television displays most resolutions fine (except 1080p, probably related to this problem), but shows the same problem in the affected games.

At this point I'm not sure what else to try. It's not like the laptop is super great, but I'd think it would have a better time playing old stuff than new stuff. Any help would be appreciated.

Specific problem games are:
Games of that general era that work fine:
 
Solution
I found some specific partial solutions based on the "try getting around the OpenGL / DX8.1" thought process (only SSEE is working reasonably well):

For System Shock: Enhanced Edition. In SShock.ini, I changed SoftRenderer=Off to SoftRender=On. I haven't played far into the game, but the intro area is working fine at playable framerates.

For Blood Rayne. Removing (renaming) the tridx8tl.dll file in the game folder (or replacing it with a renamed D3DX9_43.dll from my System Shock 2 folder) seems to force the game into software mode. It refuses to play in fullscreen mode, but seems to be working. Unfortunately, I can't get decent framerates this way (maybe 5-10 fps where I'm getting 20-30 with the DX8.1 library), and it looks like crap...

dontlistentome

Commendable
Sep 5, 2016
10
0
1,570
I have a couple of ideas, might not help but who knows? From Blood Rayne 2 page "GeForce 3 or higher, with Hardware T&L (Transform & Lighting)".

Some low end graphics solutions do certain things 'in software' rather than via hardware. For lots of uses this doesn't matter, but for gaming you want all of it done in hardware. That 7000M is extremely low end. If you dig in the technical specs, you may find out if it implements all Directx features in hardware, or if some of that stuff is being done in software.

Another game is System Shock Enhanced, it uses Opengl. The 7000M may not have full Opengl support, you need to check that.

The games themselves will, or should, install the necessary Directx files when you install the game. There should be no need for you to separately install that. To be honest, I think you're very lucky to get any games running on that thing. That computer was low end even when it was new. The Win10/memory upgrade/SSD install should make it much more useful as a computer though, so you have that going for you. Also, make sure in the power profile you have it set for maximum performance and not some kind of battery saving mode. Also, try running games when you're using AC power and not the battery as much as possible.
 

fosley

Commendable
May 5, 2016
3
0
1,520


I'm not sure where to find anything more concrete, but the specs I can find suggest the card fully supports DX9 and OpenGL 2.1. The System Shock page says "Any 100% OpenGL capable card (Card or Onboard)", but I'm not sure if that means "any card supporting the very latest OpenGL", or just "any card that supports the version of OpenGL around in the 90s". It's possible the enhanced renderer uses version 3 or later, which would explain why I'm having issues, although it seems odd to me it would be exactly the same as the DX8.1 issues. Unfortunately, this PC is too slow to properly support DosBox at playable framerates, so I can't play the original edition directly.

I've tried using different drivers, hoping one of them would have better hardware-level support than the Microsoft generic driver, but I can't find anything that's old enough to support my GPU and new enough to think about supporting Windows 10 at the same time. So maybe even though the card supports these APIs, the drivers aren't unlocking its full capabilities or something.

I tried putting it on max performance, which didn't have any discernible effect. And the battery doesn't hold a charge long enough to run it on anything but AC unless I'm just moving from one plug to another (even then I save everything just in case), so I was already doing that one :).

The only other thing I could think of was some kind of wrapper that would expose itself to the program as OpenGL / DX8.1, but was really running DX9 or something. I tried an OpenGL wrapper from some random guy whose site I can no longer find, but it wouldn't even launch the game. I tried another one from this sourceforge project, and it works but isn't any better than what I've got.

I am aware the computer was crap when I got it (I generally refer to it as The Craptop). I paid like $200 for it brand new, and didn't expect to use it more than just through the summer. I ended up pulling it out to get through college, and was pleasantly surprised it could handle MatLab, Eclipse, and other tools required. I even managed to write and run a (very terrible) flight sim for a Java class project that got playable framerates on Java3D (eww). It definitely doesn't run much of anything modern, but until I'm able to either ship my desktop to my current location or afford a better laptop, it's all I have.

Just thought maybe someone had run into this issue before, since it's a fairly common old laptop setup from what I've seen. If not, I guess I might survive anyways.
 

fosley

Commendable
May 5, 2016
3
0
1,520
I found some specific partial solutions based on the "try getting around the OpenGL / DX8.1" thought process (only SSEE is working reasonably well):

For System Shock: Enhanced Edition. In SShock.ini, I changed SoftRenderer=Off to SoftRender=On. I haven't played far into the game, but the intro area is working fine at playable framerates.

For Blood Rayne. Removing (renaming) the tridx8tl.dll file in the game folder (or replacing it with a renamed D3DX9_43.dll from my System Shock 2 folder) seems to force the game into software mode. It refuses to play in fullscreen mode, but seems to be working. Unfortunately, I can't get decent framerates this way (maybe 5-10 fps where I'm getting 20-30 with the DX8.1 library), and it looks like crap. Of note, Blood Rayne has an OpenGL 1.2 mode, but gives me a "DirectX 8 3D Driver error" that it fails at ChangeDisplaySettings(&dm, CDS_FULLSCREEN), and refuses to try with any other library in its place (just goes into software mode, as above).

Presumably the above would work with Blood Rayne 2, but I didn't bother downloading it since it's unlikely to be playable.

Of possible note, even though Morrowind Graphics Extender XE wraps the DX8 files with DX9 calls, it doesn't fix anything to install it. Plus, running past the starting area with the buggy graphics ends up with pretty bad framerates anyways, so it may not be worth playing even if I fixed it.
 
Solution