VOGONS


First post, by Revolter

User metadata
Rank Member
Rank
Member

Help me disable some advanced features of a Pentium 3 CPU, please 😀

I've owned these two computers during my youth: a Pentium 133 - which was my first love and essentially what got me into IT, and a Coppermine-based Celeron 800 - which can run some 3D-heavy games like Deus Ex and Morrowind, and which I also have fond memories of. I've re-made both as dedicated "retro-PCs" over the last year for the purpose of playing my fav old games exactly the way I remember them, but, since I only have room for one PC secondary to the regular modern one, I'm now trying to unite these two machines into a single one that can switch back and forth between them in terms of performance - using the s370 platform as a base.

1.jpg
Filename
1.jpg
File size
455.89 KiB
Views
566 views
File license
Fair use/fair dealing exception

So far this venture was mostly a success: I went for a Pentium III 600EB instead of a C800 (they are roughly the same, but the PIII has more benefits), and with chipset throttling via Throttle dividing the performance in half (50% skipped CPU cycles) on the 66 Mhz FSB (600@133 > 300@66) the resulting 150 Mhz performance is VERY MUCH like the P133 I remember and have close by for comparison. For instance, there's just a 2 FPS difference in Quake, which I consider to be negligible 😀

However, there are other games that differ too much performance- and feel- wise: Tiberian Sun, Worms World Party, Heist, Dune 2000, Klingon Honor Guard. They are a tad faster than on the genuine P133 computer. It was much worse before I discovered the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\DirectDraw\ "DisableMMX" registry switch, but it's still not a perfect match.

I wouldn't be bothered that much about the exact performance, if it wasn't easily achievable by disabling the DirectDraw acceleration! With it disabled, these games start to perform EXACTLY as on the real Pentium 133 (WITH the acceleration enabled), which is amazing to me, but there is a slight problem that comes with this: only a handful of games tolerate being run with emulated framebuffer. Games like Red Alert and Need for Speed III do not even start unless the acceleration is turned back on.

I've tried using the MTRRLFBE util with the "Write Protected" switch: it does the trick somewhat and the performance is getting there, especially for 3D-games, but it gets intolerably choppy during any kind of 2D-scrolling (especially in Dune 2000 and Heist), while with the true P1 or the software DDraw it is smooth, just not fast. I've also tried all other DirectDraw and MTRRLFBE switches to no good effect.

Guys, are there any other tricks that could make the DirectDraw still provide the resources necessary for the games seeking hardware acceleration to be able to run, but behave like software emulation in terms of speed?

Thanks in advance!

Celeron 800, 512MB, GeForce2 MX, ES1938S/DB S2, Windows ME/DOS 6.22

Reply 1 of 4, by wouterwashere

User metadata
Rank Newbie
Rank
Newbie

Maybe it is possible to disable the CPU cache in the BIOS. A Pentium 133 didn't have that fast cache, if it even did have any installed on the motherboard. The P3 has SSE, which the P1 didn't have. But I don't know how to disable that.

You don't mention which graphics card you are using, but I suppose it is an old PCI card, otherwise that could be the issue. A faster graphics card might perform way better with DirectDraw, regardless of the CPU speed.

Other than that, I don't have any suggestions.

Reply 2 of 4, by alvaro84

User metadata
Rank Member
Rank
Member
wouterwashere wrote:

The P3 has SSE, which the P1 didn't have. But I don't know how to disable that.

Just use a first edition Win98. SSE needs specific support on the OS side because it comes with extra registers the OS has to save/restore on every task switch (the same is true for AVX but not for MMX because it simply used the x87 stack as 64-bit MM registers so it was saved/restored by legacy OS' already) and it wasn't a thing when Win98 first came out. The question if it counts at all. 3D accelerator drivers surely used these instructions but I'm not sure that 2D games of the days ever took any advantage of them.

Fun fact: SSE could be used under DOS after enabling it by flipping a bit of a control register (I found the info in a BIOS developers' guide back when I played around with my shiny new Palomino XP) but I don't know about any DOS software that uses it - beside a tiny mandelbrot renderer I wrote in x86/SSE assembly 🤣 This is how the OS enables it too, by the way.

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 3 of 4, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

Why won't use Celeron Mendocino? 300mhz were also available as PPGA.

I must be some kind of standard: the anonymous gangbanger of the 21st century.

Reply 4 of 4, by Revolter

User metadata
Rank Member
Rank
Member
wouterwashere wrote:

Maybe it is possible to disable the CPU cache in the BIOS. A Pentium 133 didn't have that fast cache, if it even did have any installed on the motherboard.

It sure is possible, and I use this feature all the time, but sadly this takes performance straight to the stone age in Windows 😀 To make things worse, my particular P133 is a faster one, with all PCI peripherals, lowest RAM timings, SDCard for HDD, shortened IDE cables, etc., so the speed difference couldn't be more apparent and sudden...

wouterwashere wrote:

The P3 has SSE, which the P1 didn't have. But I don't know how to disable that.

The games I intend to play with this "fake P1" mostly do not have the SSE implemented yet, AFAIK. Even in MMX-aware titles there is little to no difference with the DirectDraw HW acceleration disabled. Maybe it's due to the low frequency of the CPUs?

wouterwashere wrote:

You don't mention which graphics card you are using, but I suppose it is an old PCI card, otherwise that could be the issue.

Yeah, the card is Geforce2 MX AGP, but swapping it for a Savage4 Pro or a Trio64UV+ (the exact card that's in the real Pentium 133 PC) did not change anything - which is exactly why I believe it has something to do with the Pentium Pro architecture optimizations.

alvaro84 wrote:

Just use a first edition Win98

The situation is the same in Windows 95 OSR2 of all things. There's literally no perceivable difference between it and Windows ME in this context 🙁

The Serpent Rider wrote:

Why won't use Celeron Mendocino? 300mhz were also available as PPGA.

The priorities are slightly different: I'd rather keep the higher-end CPU and GPU game compatibility instead of the very specific P1 mode if it comes to this. It's just that I'm so close now to getting everything right on the first try that for me it's worth at least a couple of sleepless nights conducting this weird research, otherwise I'd be happy with the rest of the project as it is.

Thank you guys very much for trying! I really appreciate it. Looking forward to more of your suggestions.

For instance, is it at all possible to cripple the MMX features somehow, system-wide?

Celeron 800, 512MB, GeForce2 MX, ES1938S/DB S2, Windows ME/DOS 6.22