VOGONS


nekurahoka's DirectX9 s478 Build WIP

Topic actions

First post, by nekurahoka

User metadata
Rank Member
Rank
Member

Warning, several pics and long-winded typing.

So, I've had a working DirectX 9 machine for a while now. About a month ago my Abit board went kaputt, so it's time for a rebuild and perhaps a rethink of the build. What I'm going for is at least a system that can play DirectX8 and 9 games from the Windows XP era. Secondly, I intend to use it as a platform for experimenting with some more interesting or emergent technology for the time. I'm specifically looking at network accelerator cards and possibly, if I'm lucky, 64-bit processing. I'll be using this thread to track my results and post information that may be useful for other folks' future builds.

In this thread, I sought some opinions on OEM boards vs. third party boards. I was happy with the options on my Abit board, but overclocking took its toll on it. The consensus was that if overclocking was not needed, then OEM was a great choice. I've had good experience with Dell systems, so I started looking on ebay for socket 478 boards to see what was available. There are plenty of Dimension and Optiplex boards around, but I found a neat workstation board that was used in the Dell Precision 360.

Motherboard:
The Precision 360 features the top-of-the-line Intel 875p chipset for socket 478. The chipset offers dual channel DDR, Performance Acceleration Technology (reduces memory clocks in the chipset for reduced latency), a genuine AGP Pro slot, gigabit ethernet, and two SATA ports. I thought, if I'm going to use my Pentium 4 s478, might as well get the best platform available for it. eBay also pointed me to a shop in Texas (https://atmotek.com/) that has new old stock Dell boards available. They even have the board from my XPS 400 available, which I may pick up later to have a backup!

So this is what I received:
20151017_174535s.jpg?dl=0

20151017_174804s.jpg?dl=0

20151017_174827s.jpg?dl=0

The board came new and sealed as one would have received it from Dell as a replacement. It was in excellent condition.

After researching Dell's proprietary power requirements, I determined that this board (along with any other Dell board with s478 and after) needs only a standard ATX power supply. Good news. The form factor, however, does not meet with ATX, so a standard ATX case will not work.

I used my ATX case with fresh paint job anyway:
20151017_180322s.jpg?dl=0

I had to modify the case by removing the steel brace running just above the motherboard tray. The screw mounting points also don't match up with standard ATX form. Rather than drilling and tapping new holes in my ATX case to meet the motherboard's needs, I kept the Dell motherboard tray and simply attached it to the case's tray using machine screws and nuts. I was able to get the I/O panel lined up and it just left a bit of a gap (probably 2mm) between the expansion cards and their mounting points on the case.
20151103_060926s.jpg?dl=0

The next issue was Dell's proprietary 34-pin front panel connector. I scoured the web for information on it and only found what other experimenters had been able to discover. Dell, as far as I can tell, doesn't have any documentation freely available on it. This website proved to be the best source of information.

I took the positive lead out of the case's power button connector and connected the separate leads to pins 19 and 20 on the board. The other connectors could wait for later. I just needed to get everything hooked up and running.
20151103_055136s.jpg?dl=0

RAM:
I had some headaches with the DDR RAM I already had from the previous build. I had two sticks of unmatched 1GB PC3200 that worked great in the other system. They actually ran at 233MHZ stable overclocked. For whatever reason only the Kingston Value Ram stick wanted to work and allow this system to boot. The other stick was unbranded and I had no idea where I had originally got it. Trying the sticks in dual or single channel mode didn't work. For now, I'll just be using the single Kingston stick.
In a couple weeks I'll be purchasing some Mushkin matched Silverline PC3200 I've spotted available. I'll be getting 4GB of that. I really want to max this board out and open up the bandwidth.

CPU: (64-bit on s478?!)
I have a Pentium 4 530 HT (3.0GHz) that I used in the previous build. The processor works nicely and hyperthreading offered some better multimedia performance when I bought it back in 2006. For this build I will probably disable HT until I install Elder Scrolls IV: Oblivion, which can make some use of it. Most other games tend to prefer it disabled for stability.

Having typed all that, though, I decided to get a different processor. Without overclocking available, I wanted to get a 3.4GHz CPU to get some of my extra performance back. I found an intriguing possibility. Several SL7Q8 P4s were available and according to some information they may support EM64T! I found one on bid in eBay from Hong Kong and snatched it up for $9.99.

Realistically, even if the CPU supports x64, the board only supports 4GB of RAM which defeats the need 64-bit addressing in the first place. There might be some benefits from patching games with the 4GB Patch, but that will remain to be seen. My curiosity is piqued. I've got to see if I can get a fully functional 64-bit socket 478 system running. When that processor gets here in a month, I'll add to this thread with that and post differential benchmarks for comparison if the processor supports it. I'm really excited about this!

Video:
As a longtime ATI/AMD user, I immediately went with them. In my opinion, ATI has always had better and higher quality display support than nVidia. Next, I wanted a card that supported all that DirectX 9 had to offer, so that meant going with an x1xxx board to support 9.0c. Going this far also meant proceeding to the shader-based architecture that everyone uses now. I figured that would give me some extra grunt for later games. Not going as far as the HD line meant that I would be avoiding the potential problems with those cards using a PCIe to AGP bridge. Frankly though, I had a AGP HD4650 for a couple years in the P4 system when it was my primary and never had any issues with it. AMD's hotfix drivers worked great.

I picked up an ATI x1650 PRO 512MB at a good price and have gone with that. I've had good performance from it and the large framebuffer means I can apply high level anti-aliasing and anisotropic filtering at little cost in performance. If I'm going to replay these old games, they should look as good as possible.

Sound:
During this era I don't think we're terribly spoiled for choice in sound cards. Soundblaster is where it's at for discrete cards and I went with an Audigy 2zs with gold connectors. Pretty straightforward.

I loaded Windows XP SP2 and thus far it's working like a charm. Will update later as my other hardware starts getting in.
20151103_060840s.jpg?dl=0

Last edited by nekurahoka on 2015-11-03, 13:23. Edited 1 time in total.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 2 of 30, by ynari

User metadata
Rank Member
Rank
Member

Define '64 bit'. SL7PK has both x64 and NX, so it can run 64 bit code. Whether it has all the instructions necessary to run a 64 bit version of Windows is another matter, of course.

Unlikely to be worth it, though.

Reply 3 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
ynari wrote:

Define '64 bit'. SL7PK has both x64 and NX, so it can run 64 bit code. Whether it has all the instructions necessary to run a 64 bit version of Windows is another matter, of course.

I would think that it does.
I've run Windows XP x64 on first-generation socket 775 Pentium 4s (6xx series), which should be the same architecture as the SL7PK (5xx series). According to Intel, it exposes EM64T ('Intel 64' these days): http://ark.intel.com/products/27453/Intel-Pen … GHz-533-MHz-FSB
Which should be exactly the same EM64T as on the P4 I used.
I believe the 6xx series can even run Windows 7, possibly even Windows 8.0 in 64-bit.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 5 of 30, by nekurahoka

User metadata
Rank Member
Rank
Member

I wouldn't doubt that this is true. As far as I can tell there aren't any 64-bit chipset drivers available from before the 900 series. The possibility of EM64T is just intriguing. There's no point to it in a system that will not support more than 4GB of RAM. The plan is to check the processor when it arrives to confirm on way or another and dual boot Windows XP 64-bit to experiment. It's just curiousity. That aside, in part this system is to test some tech that I have gotten interested in lately from that era. Mostly I want to do some comparisons with some Alacritech Network Accelerator cards to see if they were beneficial for anything beyond SCSI and to what extent.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 6 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
nekurahoka wrote:

The possibility of EM64T is just intriguing. There's no point to it in a system that will not support more than 4GB of RAM.

Why not?
I can think of some very good reasons:
1) 64-bit mode offers a lot more than just a larger address space. You also get more and larger registers, and you can perform 64-bit arithmetic in single instructions now.
2) Don't forget about virtual memory. On a 32-bit system, having more than 4 GB of virtual address space requires the inefficient PAE hack. A 64-bit system can natively address a virtual address space of much more than 4 GB.
Heck, we've had a 32-bit address space for many years, where it was nowhere near possible to get 4 GB of physical memory. Nobody really cared about that. It was the 32-bit virtual address space of the 386 that was such a step forward, even if you only had 16 MB or so of physical memory (a lot of your address space is never mapped to physical memory, but is reserved for memory-mapped IO and such).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 8 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
Logistics wrote:

As was stated above, it matters not--there is no such thing as a 64-bit s478 processor.

That's not really the point though. Some early S775 systems didn't take more than 4GB either, if even that.
Take this one for example, 2 GB max: http://www.gigabyte.com/products/product-page … spx?pid=1930#ov
But as you can see in the CPU support list, it supports plenty of EM64T CPUs.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 9 of 30, by Logistics

User metadata
Rank Oldbie
Rank
Oldbie

That's a good point. However, I would definitely not suggest anyone run 64-but on early 775's that barely had EM64T as it just runs slow. Disabling HT on my old 3.2GHz single core was a huge upgrade in itself, but 32-but XP and 7 both ran better in 32-but, and it had 4GB of RAM.

Reply 10 of 30, by Scali

User metadata
Rank l33t
Rank
l33t

I think it all depends on what you're doing. My first 64-bit system only had 1 GB of memory. Still it ran 32-bit just fine, and some 64-bit optimized software was faster, such as the 64-bit version of Far Cry.
Same with HT. I've optimized some of my routines on an early P4 HT 3.0 GHz, and I got about 25% more performance from running two threads with HT.
But some software is not optimized very well, and is just slower in 64-bit. And some software is slower with HT.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 11 of 30, by nekurahoka

User metadata
Rank Member
Rank
Member

Well, the next round of hardware is in. I received a 70mm fan replacement for the ridiculously loud (even though it's adjustable) Thermaltake fan I've been using for my P4 since it was new. The new one runs at 2500rpm, cuts down on a lot of noise, and I'm looking at probably 1 or 2C of increased temperature from it according to Speedfan.

Next, the 3.4GHz P4 from China arrived. SL7Q8:
20151103_054918s.jpg?dl=0

Since I ordered it I've considered all sorts of things about the cpu. The conversations here and research I've attempted on the SSPEC led me to believe that it could actually be a counterfeit part. There's no listing for SL7Q8 in Intel's archive. It's listed on cpuworld.com and there are supporting comments attached to the page, but who can trust a third party site about such a thing. There are mentions of other similar SSPECs as OEM parts that weren't otherwise available for retail sale, but nothing specific on this one.

Anyway, the processor appears just like any other Intel P4. Problem is, the Dell BIOS won't boot it. The system starts fine, BIOS starts, then hangs at the point where it would discover and configure the bus for the processor. The fact that the system starts is a good sign that the processor is good, but the board just doesn't know what it is. The board came with Dell's latest BIOS preinstalled, so there's no hope of an official update.

I have two options going forward. I'm still immensely curious about this CPU. I'm going to see if I can breadboard it in another 478 board. If that doesn't work, I'll dust off my long disused hacking skills and look at modifying the Dell board's bios. I imagine it should be pretty simple to replace one of its existing processor configurations with one that will recognize the SL7Q8. I'm on vacation next week, so that may be a project I can work on.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 12 of 30, by nekurahoka

User metadata
Rank Member
Rank
Member

Updates

So, I've finally gotten a copy of the board BIOS in ROM form. It took a lot of frustrating attempts with searching and using various phoenix utilities, because Dell only provides executables that flash the BIOS for upgrade purposes. Turns out adding /writeromfile to the command line on the executable will write a copy. I've begun my initial poking and am hopeful to add some microcode for the SL7Q8.

For further supporting information on the EM64T capabilities of some s478's, I found a couple of supportive threads.
http://www.cpu-world.com/forum/viewtopic.php? … der=asc&start=0
http://valid.x86.fr/hf9k4r
I also read that these processors were used in some IBM server systems using the intel 7210 chipset.
Good thing about that is, that I can attempt to use documentation from those systems to create/add the microcode necessary to support the processor on this board. At the very least, I should be able to have it running as a generic P4 3.4 prescott. I sincerely doubt, even if the processor supports it, that any 64 bit instructions will work through this system, but it'll be fun to try.

As for the build, 4GB of matched DDR should be on the way next week. I'm still planning on running some before/after tests with some synthetic and game-based benchmarks. I'm considering some games that may take advantage of the increased bandwidth. I'm also curious about using ramdrives for gaming purposes. This might be pretty swift for games like Morrowind that thread load a lot of data.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 13 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
nekurahoka wrote:

I sincerely doubt, even if the processor supports it, that any 64 bit instructions will work through this system, but it'll be fun to try.

Why?
If the CPU exposes the EM64T CPUID bit (easy to check with something like CPU-Z), then it should work fine.
After all, the only difference is inside the CPU. The rest of the system doesn't need to know anything about it.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 14 of 30, by nekurahoka

User metadata
Rank Member
Rank
Member

At the time I wrote that, I had assumed there would be a chipset limitation of some sort. Looks like some of the IBM systems using these processors run the same 875P chipset as this Dell board. I'm also trying to manage my own expectations, should I fail or give up the project.

Update:
I've got the microcode I need. Intel provides all their microcode as support for Linux. I don't have a way of knowing the CPUID of this processor without booting it up, so my efforts are focused on adding relevant microcode to prescotts on socket 478. There are 5 sets of microcode for prescotts on that platform totaling 18KB. I'd like to just add them all to ensure I won't miss anything.

The current issue is adding the microcode to Dell's BIOS. I'm using utilities from pioneering microcode updaters around the web. Apparently, this is a popular option for cross-support of 771/775 processors, so there's plenty of tools available. Some of these tools, however, are not functioning with the Dell BIOS. My work now involves understanding the structure of the BIOS and ensuring that it has no compressed portions confusing my investigations into its current microcode. One of the utilities recognizes that it's a Dell BIOS and indicates that there is no compression used. When a decompress command is sent to this utility it returns an dump that is identical to the original ROM. Probably a positive sign.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 15 of 30, by MrGenius

User metadata
Rank Newbie
Rank
Newbie

Sorry for the necro. But this is one of the only threads on the subject I could find on the web(other than this one). And I do have some relevant info to add. At least I think I do.

Anywho...I've got an SL7Q8 that I've been trying to get running on my P4P800-VM. I'm having a similar no boot issue. The system will power on. Then it throws a long list of "Unknown BIOS error" codes. After which point it hangs. Figured it was just a missing microcode issue. But it doesn't appear to be. I've checked the latest BIOS for the P4i945GC(which is known to run these things). It doesn't have any microcodes that the latest BIOS for the P4P800-VM doesn't also have. And, specifically, it(latest P4P800-VM BIOS) already has the MBDF4117 patch(that's supposed to be the ticket to ride). As well as the other 4 for Prescott. So...if nothing's missing...there's nothing to add. Where to now?

TL;DR

There must be more to it than the microcode. Which I have no clue as to what that might be. So I'm most likely just going to grab a P4i945GC and call it good. Unless someone has a better idea.

Why bother? Well...if for no other reason...to prove to the "you know whos" above that they're a couple of "you know whats". That being said...I SHALL RETURN...PREPARE TO BE SCHOOLED FOOLS!!!

UPDATE 2019-6-6:

CLASS IN SESSION!!!

Got the P4i945GC. Installed the SL7Q8. Booted and installed Windows 7 Ultimate 64-bit. 100% successful installation with no issues whatsoever.

SL7Q8 64bit 2.jpg
Filename
SL7Q8 64bit 2.jpg
File size
675.77 KiB
Views
1834 views
File license
Fair use/fair dealing exception
SL7Q8 W7 64.PNG
Filename
SL7Q8 W7 64.PNG
File size
52.66 KiB
Views
1834 views
File license
Fair use/fair dealing exception

Soooo...

candle_86 wrote:

in reguards to your question mark, no you can't do 64bit on s478

WRONG!

candle_86 wrote:

no socket 478 chip had EM64T enabled

WRONG!

Logistics wrote:

As was stated above, it matters not--there is no such thing as a 64-bit s478 processor.

WRONG!

Logistics wrote:

However, I would definitely not suggest anyone run 64-but on early 775's that barely had EM64T as it just runs slow. Disabling HT on my old 3.2GHz single core was a huge upgrade in itself, but 32-but XP and 7 both ran better in 32-but, and it had 4GB of RAM.

As far as 64-bit running slow on a CPU that "barely has EM64T"...that's a full on crock of shit. I've run many early 775s, and possibly one of the(if not the actual) earliest Socket 478s, with EM64T and NONE of them have run any 64-bit version of Windows "slow". No noticeable difference really. But, if anything, 64-bit is slightly faster.

As far as disabling HT...never seen ANY performance gains from doing that either(with early or later HT CPUs).

You seem to be spouting some uninformed BS internet mythology with no basis in reality. 😉

CLASS DISMISSED!!!

Reply 16 of 30, by nekurahoka

User metadata
Rank Member
Rank
Member

Actually, I appreciate the update. I think you're right on the microcode issue. I toyed with updating the Dell board's BIOS off and on since I started this thread, but never could dedicate the energy required to reverse engineer Dell's BIOS. I also picked up a P4P800 a couple weeks ago to hopefully put this to rest. No joy. Same issue, system starts (I can go into BIOS), but will not boot. Now, while I was expecting this board to boot (still thinking the big hurdle was microcode), I was not expecting the system to benefit from 64-bit. According to Intel's whitepaper, the 800 series chipset memory controller cannot address 64-bit, kind of defeating the purpose. It would have been cool to have a 64-bit s478 on a 800-series chipset though. Altogether it was an interesting exercise.

Dell Dimension XPS R400, 512MB SDRAM, Voodoo3 2000 AGP, Turtle Beach Montego, ESS Audiodrive 1869f ISA, Dreamblaster Synth S1
Dell GH192, P4 3.4 (Northwood), 4GB Dual Channel DDR, ATI Radeon x1650PRO 512MB, Audigy 2ZS, Alacritech 2000 Network Accelerator

Reply 17 of 30, by The Serpent Rider

User metadata
Rank l33t++
Rank
l33t++

I think G0 revision should be better option: less TDP, better overclocking.

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

Reply 18 of 30, by Scali

User metadata
Rank l33t
Rank
l33t
MrGenius wrote:

There must be more to it than the microcode. Which I have no clue as to what that might be.

Yes indeed... Well, thanks for proving that 64-bit indeed works on socket 478, as I suspected it could/would.
If it's not the microcode itself, my guess is that it's something to do with the rest of the BIOS, and the way it tries to autoconfigure the CPU.
As far as I understood, the CPU actually 'works' in the board. As in: the system powers up, and you get the BIOS POST screen up, it just spouts lots of errors and then fails to boot. This at least proves that the CPU works, because the POST requires a working CPU, and the CPU can apparently run enough of the BIOS code to display the error information.
That would mean that the BIOS code runs, but it hits a snag somewhere, in the software, not the hardware.
Which is not too surprising, as the BIOS was probably never designed nor tested for 64-bit CPUs. So it is running in 'unchartered territory'. The CPU may just return some values/descriptors that the BIOS is not familiar with, and it makes a wrong turn somewhere, or just gives up, because it doesn't know what to do.
In theory the BIOS could probably be patched to work around it. But who's going to reverse-engineer the BIOS down to that level?

In which case I guess the conclusion is that 64-bit CPUs can theoretically run on socket 478, but whether or not it runs on a specific board is somewhat hit-and-miss.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/