3D Mark 99 Max & 2001 SE Startup Hang Patch

Getting old Windows games working.

3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2017-1-02 @ 22:20

Same story as with Max Payne games: viewtopic.php?f=8&t=51579
Attachments
3DMarkStartupHangPatchv1.01.zip
(525.02 KiB) Downloaded 136 times
Last edited by UCyborg on 2017-1-23 @ 09:44, edited 2 times in total.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 2001 SE Startup Hang Patch

Postby lowenz » 2017-1-02 @ 23:12

Normal maps error with Nature using dgVoodoo2.
lowenz
Oldbie
 
Posts: 886
Joined: 2014-12-20 @ 01:30

Re: 3D Mark 2001 SE Startup Hang Patch

Postby lowenz » 2017-1-02 @ 23:20

Partial results:

D3D8
Image

Crosire D3D9 wrapper
Image

Dege D3D11 wrapper (1024 MB VRAM)
Image

Interesting behaviour in the High Detail Car Chase, where D3D11 wrapper generates the highest frame rate.
lowenz
Oldbie
 
Posts: 886
Joined: 2014-12-20 @ 01:30

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2017-1-16 @ 04:00

Added the same patch for 3D Mark 99 Max.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby Interl@ce » 2017-8-13 @ 09:24

I've got a 4GB windows 98 DosBox-VM full of d3d and 3dfx nostalgia from that era, now I'm trying to get benchmarks going, pushing it to it's limits.. Final Reality and 3DMark99 work great, but 3DMark2000 fails to start with an MMX-requirement. Is it possible (for debugging/sh*ts'n'giggles) to remove that check or have it pass anyway? cpytype pentium_mmx is crippled in the dosbox-build I need and it seems if anyone can do it, it's you :D

PS: For anyone interested in this little project LINK REMOVED download link in description. Only demos included, but a huge bunch of 'em :) if you wanna try 3dmark99 disable KernelEx in the shortcut's properties.
User avatar
Interl@ce
Newbie
 
Posts: 2
Joined: 2004-11-07 @ 09:59

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby teleguy » 2017-8-14 @ 02:33

Interl@ce wrote:I've got a 4GB windows 98 DosBox-VM full of d3d and 3dfx nostalgia from that era, now I'm trying to get benchmarks going, pushing it to it's limits.. Final Reality and 3DMark99 work great, but 3DMark2000 fails to start with an MMX-requirement. Is it possible (for debugging/sh*ts'n'giggles) to remove that check or have it pass anyway? cpytype pentium_mmx is crippled in the dosbox-build I need and it seems if anyone can do it, it's you :D

PS: For anyone interested in this little project LINK REMOVED download link in description. Only demos included, but a huge bunch of 'em :) if you wanna try 3dmark99 disable KernelEx in the shortcut's properties.


Do you only want the check removed or is the goal to successfully run the benchmark? Because with just the check removed it will probably crash at a certain point (or right at the start). I don't think it's possible to make the benchmark compatible with non-MMX cpus without access to the sourcecode (or maybe using some kind of wrapper).

The attached file contains two exes, one that will always fail the check I used for testing since I don't have a cpu without mmx support, and one (untested) that should alway pass.
Attachments
3DMark2000mmxcheckswitch.zip
(1.08 MiB) Downloaded 48 times
teleguy
Member
 
Posts: 364
Joined: 2004-2-28 @ 18:54

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2017-9-23 @ 22:19

Looks like that MMX error is redundant, the benchmark is programmed to handle absence of MMX just fine. Excluding 3 DLLs in e2driver that utilize extra instructions depending on selection made in CPU Optimization drop-down list, there are just 2 small blocks of code in rlmfc.dll using MMX plus a check that jumps to code that uses FPU rather than MM registers if MMX is not available.

If that wasn't the case, I guess the only way to make it work would be studying MMX instructions and replace them with standard ones. Which might be PITA to implement unless you're ASM guru. Trying to execute MMX instructions will indeed crash it on old CPUs, which is one way to locate them with debugger, another option is searching the executable file for EMMS instruction.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby n3r0 » 2018-1-09 @ 00:56

Hi. Two questions.

1) Is there a way to unlock a 1920*1080 resolution in 3DMark99?

2) Is there a way to remove 60 FPS lock in both game tests (race & shooter)?
n3r0
Newbie
 
Posts: 7
Joined: 2018-1-09 @ 00:50

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2018-1-09 @ 16:03

1) You're using Windows 95/98 compatibility mode, which limits the number of reported resolutions by the system. Turn it off and install this instead. 1920x1080 will look stretched though as no one patched the benchmark for wide resolutions.

2) Try forcing VSync off in your graphics drivers.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby teleguy » 2018-1-09 @ 17:05

Change the Frame Buffer from triple to single in the benchmark settings. This causes graphics glitches though, at least for me.
teleguy
Member
 
Posts: 364
Joined: 2004-2-28 @ 18:54

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby n3r0 » 2018-1-12 @ 05:19

UCyborg, 1) that helped, fullhd is available now. Yes, it's stretched, but does it still render in fullhd and make more load on video card?
2) Forced vsync off in AMD settings app, but still capped at 60FPS :(

teleguy, yep, switching to single buffer uncaps, but image blinks so heavy that can cause epilepsy.

-------------------------------------------------------------------------------------------------------------------------

Okay, now encountered issue with 3DMark2001SE. It hangs on startup, even with a patch from this thread.

System: Win7x64, graphics card: r7 260x.

This was not the case when I had GTX750Ti card. I tried different compatibility modes with this patch.

Compatibility with Win98: app crashes.
Compatibility with Windows XP SP3: app hangs on start, no errors.
No compatibility: app throws 128MB memory error, then hangs.
n3r0
Newbie
 
Posts: 7
Joined: 2018-1-09 @ 00:50

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby lowenz » 2018-1-12 @ 10:06

n3r0 wrote:UCyborg, 1) that helped, fullhd is available now. Yes, it's stretched, but does it still render in fullhd and make more load on video card?
2) Forced vsync off in AMD settings app, but still capped at 60FPS :(

teleguy, yep, switching to single buffer uncaps, but image blinks so heavy that can cause epilepsy.

-------------------------------------------------------------------------------------------------------------------------

Okay, now encountered issue with 3DMark2001SE. It hangs on startup, even with a patch from this thread.

System: Win7x64, graphics card: r7 260x.

This was not the case when I had GTX750Ti card. I tried different compatibility modes with this patch.

Compatibility with Win98: app crashes.
Compatibility with Windows XP SP3: app hangs on start, no errors.
No compatibility: app throws 128MB memory error, then hangs.

60 FPS limit is due to fake VSync on a Win 8/8.1 or 10 system
Try in windowed mode.
lowenz
Oldbie
 
Posts: 886
Joined: 2014-12-20 @ 01:30

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby teleguy » 2018-1-12 @ 14:49

n3r0 wrote:
Okay, now encountered issue with 3DMark2001SE. It hangs on startup, even with a patch from this thread.

System: Win7x64, graphics card: r7 260x.

This was not the case when I had GTX750Ti card. I tried different compatibility modes with this patch.

Compatibility with Win98: app crashes.
Compatibility with Windows XP SP3: app hangs on start, no errors.
No compatibility: app throws 128MB memory error, then hangs.


viewtopic.php?f=8&t=33579&start=20
teleguy
Member
 
Posts: 364
Joined: 2004-2-28 @ 18:54

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby n3r0 » 2018-1-12 @ 19:03

teleguy, thanks, that one helped.

lowenz, but I am not using neither Win 8 nor Win 10. I use Win7, and still get FPS cap. Setting VSync OFF in AMD setting doesn't help.
Where can I set windowed mode in 3DMark99?
n3r0
Newbie
 
Posts: 7
Joined: 2018-1-09 @ 00:50

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby lowenz » 2018-1-12 @ 20:03

That cap is for DX1-7 applications too on Win 7! And 3DMark '99 is DX6 (or 7)
lowenz
Oldbie
 
Posts: 886
Joined: 2014-12-20 @ 01:30

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2018-1-13 @ 00:13

I've been messing a bit with the old 3DMark versions recently, including 3D Mark 2000 plus the the other two: Final Reality and XL-R8R. If I don't get distracted by something else, I will post versions with some new patches here some time this weekend. There's something still left to do. It will be nice to have everything in one place. :)

Anyway, 3DMark 99 runs at 60 FPS even in real fullscreen mode because DirectDraw (yes, everything DX7 and below uses some basic DirectDraw functions) defaults to VSYNC on and it must be disabled explicitly. And yeah, AMD drivers not giving a damn about some user choices has been my experience as well.

I've also checked 3DMark 2000, found out teleguy did some patches. I corrected plain JMP instructions for bypassing RAM/VRAM/texture memory check with the ones that treat the integers as unsigned. Because for example original JGE (Jump Greater than or Equal) won't work correctly, but JAE (Jump if Above or Equal) will. :D Also found and removed restriction with CPU Speed test only running if 16-bit color is selected. 3DMark 2001 will no longer show the thing about 128 MB memory requirement unless run on machine with actually less RAM. All versions that had issue with reporting memory amount will now report it (more) correctly, at least up to 4 GB.

Then, I modified some API calls for reading registry so they work when running as standard user and with disabled file/registry virtualization. This is just so the registration information can be read successfully in such scenario.

Small things like that basically.

Regarding Single option for Frame Buffer, I think glitches are expected due to the nature of single buffering. Need at least 2 buffers for this sort of thing.

I'm not sure about the hang of 3D Mark 2001 on certain configurations, we're probably looking at some separate issue. I've had GeForce GTX 750 Ti until recently, sadly, it was starting to make my system hang, so back to Radeon 4890. The only newer AMD GPU I have is the integrated Radeon R2 in a laptop, where things seem to work when allowing usage of all CPU cores. I think single-core workaround is better applied on case-to-case basis, you can get higher scores with all cores, particularly when combined with dgVoodoo 2. It can really make a noticeable difference in Max Payne games on low-end hardware, which use a version of the engine used in 3D Mark 2001.

A must thing that 3D Mark 2001 needs on newer operating systems from Windows XP compatibility mode is the RedirectMP3Codec shim, otherwise, an error occurs.

There's also something about 3D Mark 99, I suggested using the EmulateHeap shim with it (posted a compatibility database in some other thread), but I'm not sure whether it's actually needed or not. Still crashes sometimes on my end, usually after transition to new test. It seems more likely on my Windows 10 install than on 8.1, everything else being equal. Weird.

That thing in Windows 8/8.1/10, so called maximized windowed mode, it's a sort of hybrid between windowed mode and fullscreen mode. MS introduced it when they were overhauling their desktop composition engine and the original DIrectDraw without some wrappers can do some crazy things that don't go well with composition, hence why composition gets disabled on Vista/7, but in later systems, such operations won't disrupt it anymore. But there are consequences. It's been a while, but I checked some sample one time that drew something directly on the desktop and it didn't work too well on 8/8.1/10. From my observations in general, only 8/8.1 have an issue with extremely low frame-rate, a workaround if one insists on this mode is enabling NoGDIHwAcceleration shim with Compatibility Administrator.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby teleguy » 2018-1-13 @ 02:25

UCyborg wrote:
Anyway, 3DMark 99 runs at 60 FPS even in real fullscreen mode because DirectDraw (yes, everything DX7 and below uses some basic DirectDraw functions) defaults to VSYNC on and it must be disabled explicitly. And yeah, AMD drivers not giving a damn about some user choices has been my experience as well.


From what I have heard it's because of this:
In DirectX vsync is supposed to be completely up to the game developer, so if there are no vsync controls included in a game's options menu the users shouldn't be able to make any adjustments. Since AMD "follows standards" most of the vsync settings in AMD's driver controlpanel only apply to Opengl. (Luckily for Nvidia users, Nvidia doesn't care.)

However some tools were created that can work around this "feature", namely D3DOverrider and Radeonpro. I just checked Radeonpro and while I didn't expect it would work for DirectDraw apparently it does.
3Dmark 99 runs with unolcked framerate and without flickering. :happy:
teleguy
Member
 
Posts: 364
Joined: 2004-2-28 @ 18:54

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby n3r0 » 2018-1-13 @ 15:33

Tried Radeonpro with these settings: http://prntscr.com/hzx3ad , doesn't help.
Tried D3DOverrider with these settings: http://prntscr.com/hzx3j5 , doesn't help as well.

Still capped at 60. Am I doing something wrong?
n3r0
Newbie
 
Posts: 7
Joined: 2018-1-09 @ 00:50

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby UCyborg » 2018-1-13 @ 16:34

Oh yeah, forgot to answer about whether higher resolution still puts more load on the card, despite it being stretched and the answer is yes. Although with a widescreen patch, if it existed, you could also have a little larger field of view, so that would also add a little to the load.

I haven't got around to finishing everything I wanted yet, but here's a modified grphmfc.dll for 3D Mark 99 that should disable VSync. But if there's something about the drivers behaving on their own regardless, there's not much that can be done AFAIK, except some wrapper like dgVoodoo2 for converting old DirectDraw/Direct3D calls to something newer.

Edit: Yeah, VSync controls do seem to work on my laptop's Radeon R2 for OpenGL stuff only, but they're ineffective on Radeon 4890. Unless maybe ATI Tray Tools doesn't set something right? Been a long time since I played with the old Catalyst Control Center and I don't have it installed ATM. Using some modded 12.11 drivers where CCC is bundled separately, to let you choose the version you like. And on NVIDIA, VSync is turned on in OpenGL by default unless explicitly disabled either through driver settings or by the game's code.

Collection of all old 3D Mark patches: https://drive.google.com/open?id=19FLXg ... 7-uCwYITKn

One scene in Final Reality is frame-rate dependent, so it goes fast with uncapped frame rate. Only change in grphmfc.dll is disabled VSync.

Apparently there are some restrictions here so can't edit original post anymore.
Last edited by UCyborg on 2018-1-14 @ 17:12, edited 1 time in total.
UCyborg
Member
 
Posts: 158
Joined: 2015-9-04 @ 11:10

Re: 3D Mark 99 Max & 2001 SE Startup Hang Patch

Postby teleguy » 2018-1-14 @ 13:31

n3r0 wrote:Tried Radeonpro with these settings: http://prntscr.com/hzx3ad , doesn't help.


Still capped at 60. Am I doing something wrong?


Should be good.
teleguy
Member
 
Posts: 364
Joined: 2004-2-28 @ 18:54


Return to Windows

Who is online

Users browsing this forum: No registered users and 3 guests