First post, by cde
The purpose of this computer is to be able to play DOS and Windows games from the late 80s to the early 2000s. It is not period accurate.
Motherboard: Abit KT7A
I chose the Abit KT7A for its one ISA slot. It was updated to the latest BIOS (no longer available on abit.ws but still mirrored in a number of places). The VIA 686B is supposed to have a bug with PCI latency but I haven't felt it so far, presumably because I don't use a PCI sound card. Also I suppose the latest BIOS has a workaround, as well as Windows XP SP3 (on the other hand, Windows 98 SE needs the VIA 4in1 4.43 driver to get the fix).
Previously I used a non-RAID version 1.3 KT7A but after flashing a modded BIOS found in this forum for supporting Thunderbred/Barton CPU I started having an insane amount of segfaults under Linux, to the point where sometimes not even init could start. I don't know if it's the modded BIOS or the CPU multiplier experiments I did, but going back to the stock BIOS and normal voltages did not solve the situation, so presumably something got physically damaged making this motherboard unusable 😠 (note that it was flaky at the beginning with one SDRAM slot not working). I will attempt to recap this motherboard using the KT7 caps kit from badcaps.net
EDIT: after recapping, the KT7A-RAID is back to working with up to 512 MB of memory without issues. More than 512 MB memory leads to errors in memtest86. This is a problem specific to this motherboard as another one will work without issues with 1.5 GB under XP or Linux. I also recapped a third, badly damaged KT7A but did not regain full usability - see /viewtopic.php?p=818073#p818073
Memory: 2*256 MB SDRAM PC133
This is the maximum amount with which the system is completely stable regardless of the OS. 1 GB does work with 98 SE (by editing MaxPhysPage and setting it to 1FFFF) however in this situation the NVIDIA driver refuses to offer 32-bit color, only 16-bit at 1024x768 - going back to 512 MB fixes it. My assumption is that the PCI IO space conflicts with memory above 512MB but I haven't been able to prove it conclusively.
CPU: Athlon XP-M "Barton" 2500+ (AXMH2500FQQ4C)
Has a fairly low TDP (45-53W) and is specified for 1867 MHz however the KT7A BIOS only goes to 12.5x multiplier (1666 MHz). This particular CPU can be undervolted to an insanely low 1.15V @ 1666 MHz (1.2V in BIOS, there is a 0.5V offset for some reason) and consumes very little energy, which allows reducing the fan speed without elevating temperatures. Frequency can be brought down to 500 MHz in the BIOS. Together with disabling L1 cache the speed can be brought down to below 486 DX/33 levels which is great for certain speed-sensitive games.
Unfortunately with this desktop motherboard PowerNow! is not being able to accept a live multiplier change, for example in Linux or with the DOS utilities SETMUL/POWERNOW. That's only a small annoyance because the multiplier can still be changed in the BIOS (the list of multipliers the BIOS offers will depend on the CPU, I suppose the XP-M family has the largest range). By the way, thanks to Falcosoft for this link about multiplier changes:
https://web.archive.org/web/20170822100906/ht … html/Tweaks.htm
I'm not sure overclocking this CPU would make a lot of sense, considering the very slow SDRAM is the primary bottleneck.
GPU: GeForce 6800 GT
There is not a lot to say about this GPU. It is quite powerful while working very well with a range of DOS/Win98/WinXP games. The proprietary Linux driver also has great compatibility even with old Linux distributions, and the newer open-source nouveau_vieux driver also works really well in recent distros. However I've noted a regression in performance between Debian 7 and 8 (nouveau_vieux from Debian 7 being much faster). The GPU is actively cooled by a Zalman VF-700, with a fan speed reducer to bring noise down.
Be careful when buying this GPU: some versions have an AGP<->PCIe bridge and do not work with the KT7A. I believe these versions can be identified by their 6-pin power connector (instead of the molex connector).
A very interesting aspect of the NVIDIA drivers, as compared to ATi, is the ability to preserve aspect ratio. In this way, StarCraft at 640x480, and other games, is rendered with perfect 2x scaling to 1280x1024 by adding black bars above and below. This is not necessary when using a CRT (since the native 640x480 resolution is used), but very useful when using a 1280x1024 LCD panel.
GPU: Radeon 9600 Pro
Although somewhat less powerful than the 6800 GT, I have been able to patch the BIOS ROM to force 720x400@70 Hz on the DVI output, so that games that rely on the VGA refresh synchronization signal for timing run at the correct speed (such games are Lotus III and Jazz Jackrabbit). While this change is certainly not needed when using a CRT, it is nice when using a LCD with DVI to avoid pixel "doubling" artifacts that will appears on VGA (see /viewtopic.php?p=775155#p775155) but retaining the 70 Hz refresh rate.
Power Supply Unit: Seasonic S12II-620 82+ 80PLUS Bronze
This PSU seems extremely overkill considering the whole system uses at most 85W at the wall (the CRT consumes almost more power). Nonetheless it is the only one with a reasonable price and beefy 5V output (here 24A, so 120W in total), the issue being that motherboards of this era do not use the 12V rail and take all their power from the 5V rail. Fortunately since the CPU is extremely undervolted the requirements for 5V power are lessened.
Case: Cooler Master Force 500
Although I used previously a Cooler Master N400, I switched to a CM Force 500 as the PSU is at the top instead of the bottom. In fact it's one of the last cases that you can find with such an arrangement. Unfortunately the KT7A is slightly too short, I suppose the ATX form factor was expanded a bit at the beginning of the 2000's. Because of this there is no mechanical support at the right edge so care is necessary when plugging eg. IDE/floppy cables.
There are four fans (Corsair AF120 and AF140): two (at the back and on the side) suck air in, and two at the front blow air out in addition to the PSU fan. The northbridge has no fan and so the heatsink is cooled by the airflow from the back fan. This reduced noise considerably, and even under a hugh memory load (like memtest86) the northbridge does not get hot.
The case front panel headphone and microphones jacks were connected to the audio cards line out and microphone. On the Edison Gold 16 Plus, this required soldering on the back of the ISA card 2.54mm jumper cables that can be plugged in the HD audio header, in a manner similar to:
(note that I no longer use the Audigy 2 ZS, so the microphone input is indeed connected to the ES1868F). On the TerraTec 16/96 Gold, headers are already provided on the PCB (which is excellent) and so no soldering is required, only female-male cables are used to add the connection.
The motherboard has a USB 1.1 connector that is pin incompatible with USB 2.0 headers. Still, I was able to use this connector. The cleanest solution would have been to use 2.54mm male-female cables to match Vcc, GND, D+, D- from the motherboard to the header. However it is also possible to rotate the header 180 degrees, slide it by one and now Vcc is connected to Vcc, and GND to GND. D+ and D- are now inverted, but since this is a differential pair this works fine and I was able to connect USB pen drives.
An alternative is to connect the front panel USB 2.0 header to the type A USB port on the NEC PCI card using an adapter such as https://www.ebay.com/itm/332407752005 but this does not provide good results as the D+ and D- of two USB ports are connected.
Display: iiyama 17" Vision Master 1403
It was rather cheap to buy at 20E, has a shadow mask and gives a very authentic look and feel. The only drawback I have is that at 640x480 60Hz (eg. in Windows 3.11) there is visible flickering of the screen which is visually tiring. Also I noted Windows XP in 800x600 will default to 60 Hz despite the monitor supporting much higher refresh rates. The refresh rate can be set up to 100 Hz (800x600) or 85 Hz (1024x768) fortunately. Certain games require the use of the "RefreshLock" (attached) to force the highest possible refresh rate instead of the default 60 Hz (in addition, in Half-Life fps_max must be increased). Overall this CRT was an excellent and cheap purchase. I strongly recommend getting a CRT screen, as it provides a much more faithful experience than any LCD.
Display: AOC G2590PX (1920x1080) @ 144 Hz
An excellent LCD panel that can work with different refresh rates on its VGA and HDMI inputs without dropping frames. Also features 1:1, 4:3 (17" or 19") and 5:4 modes which preserve aspect ratio. For more details, see: /viewtopic.php?p=790180#p790180
Display: Acer V176L bmd (1280x1024)
Very cheap and yet decent screen that is lightweight and works great. It features VGA and DVI and is compatible with the 9600 Pro BIOS ROM patch described above. For more details, see: /viewtopic.php?p=781249#p781249
Sound card: ESS AudioDrive ES1868F
I'm extremely satisfied with the two cards I have: Edison Gold 16 Plus and TerraTec 16/96 Gold. They both have an extremely low noise floor, do not pick up RF noise from the rest of the system, and have (as far as I can tell) very good SoundBlaster Pro capability. Installation is extremely easy. I have added a DreamBlaster X2 + Buran 0.9 which sounds really awesome and Serge is a super nice guy. Compatibility with DOS/98/XP/Linux is excellent. The only caveat this I discovered is that (on the Edison) by default the output is set to speakers which was way too loud for headphones. I switched the jumpers to Line out without 3D and the result is excellent. I wish in fact I had bought this card first instead of buying the ALS100/ALS100+ (horrible, crappy sound) and YMF719/ESS Solo-1/Audigy 2 ZS (very decent but somewhat difficult to set up and got compatibility issues). Note that not all ES1868F have a low noise floor; see this post for a picture of the card: /viewtopic.php?p=770322#p770322
Sound card: OPL3LPT
The ES1868F is a good OPL3 clone, but the OPL3LPT is an excellent choice to get authentic OPL3 sound. Just be aware that the power requires clean 5V, it is best IMO to reuse the 5V from the PSU and avoid phone USB chargers which can sometimes not provide a clean voltage. Also be careful of ESD when manipulation the OPL3LPT as the back is not protected.
Sound card: BLASTERBOARD 2.0
Expensive but excellent sound blaster clone. I still use the EF1868F on a daily basis due to its wavetable header, stereo ability and excellent Windows/Linux compatibility, but the BLASTERBOARD remains an very good alternative.
Storage: Seagate Barracuda 7200.7 (ST360014A)
Very silent and fast, a great alternative to the SSDs presented below.
Storage: Samsung 860 EVO (250 GB) mSATA SSD
My current storage is the Samsung mSATA 860 EVO (250 GB) together with a mSATA to IDE 2.5 board and passive 2.5 to 3.5 IDE adapter: /viewtopic.php?p=808477#p808477 . It has the advantage of being fully compatible with DOS/Windows 9x/XP without additional drivers. The only issue I have with it is that I have to force it to PIO in the BIOS: if UltraDMA is enabled, Windows 98 refuses to use UDMA and is extremely sluggish, and XP outright bluescreens. OTOH PIO mode 4 works fine with up to 33MB/s which is largely enough.
Storage: SI3114 with Samsung 850 EVO (250 GB) SATA SSD
Another option I've tried is the SI3114 which was reflashed with the 5.5.00 BIOS and works fine with a SATA SSD. It has the disadvantage of consuming 10KB of conventional memory for its buffers, leaving 630KB for DOS, in addition to having to share the PCI bandwith with eg. network and USB 2 cards. XP installation did require slipstreaming of the SI3114 drivers but that was no issue. I'm using driver version 22.214.171.124 which is compatible both with 98 and XP (3114-vista-x86-logo-126.96.36.199.zip).
Storage: NEC IDE DVD ND-4570A / ND-4571A
I bought a good number of IDE drives that arrived either completely dead or failed to read different kinds of media, or were very noisy. I finally found the ND-4570A and ND-4571A which are very silent and have no problems with different kind of media (CD-R(W), DVD+/-R(W)). It has RGGL audio output but unfortunately lacks a volume knob.
Storage: Gotek with HxC2001 and FlashFloppy
After having a floppy drive and a couple disks fail on me - very retro but also annoying 😉 - I switched to a Gotek "SFR1 M44-U100 K" with HxC2001 firmware and I'm very satisfied with it. It's extremely easy to use: just put the indexed mode HXCSDFE.CFG file at the root and name the disks DSKA****.IMG. The array of options this firmware offers is quite huge and very impressive. In fact Jeff added my suggestion of customizing the idle 7 segments display splash screen (https://hxc2001.com/custom_fw/) so that instead of displaying HxC all the time the screen can remain blank. I have a second Gotek on which I installed FlashFloppy, and it works great too. Be aware that newer, non-SFR Gotek drives might not be usable due to a different pinout of the serial port and BOOT0! see https://github.com/keirf/FlashFloppy/wiki/Got … k-Compatibility
Miscellaneous PCI card: 3Com 3C509B / NEC USB 2.0
The 3C509B has the advantage over the Intel Pro/100S that its lack of a ROM BIOS makes booting slightly faster. It also has great compatibility. The only drawback I found so far is that the DOS packet driver (3c90xpd.com) requires it to have a interrupt by itself, if the interrupt is shared eg. with the SI3114 then disk access fails. So I have placed this card above the ES1868F and the BIOS will assign it IRQ 9 which does not conflict with other PCI cards.
Connecting to a recent Linux machine through ssh requires the -g option, and on the server end this configuration options:
HostKeyAlgorithms ssh-dss, ...
KexAlgorithms diffie-hellman-group1-sha1, ...
Ciphers aes128-cbc, ...
MACs hmac-sha1, ...
Run ssh-keygen -A to generate the DSA key. Otherwise ssh2dos will fail to connect with a handshake failure error message.
The NEC USB 2.0 card works without issues, although unfortunately like the USB 1.1 found on the motherboard it can only provide a small amount of current. Therefore it is not capable of powering eg. the OPL3LPT. Presumably when USB was still new it was only designed to be used with low power devices such as keyboard and mices, and only later was the 500mA current delivery option added. I'd be wary of plugging a device that draws a lot of current since I have no idea if the card or the motherboard has overcurrent protection. Nonetheless it's fine for connecting USB pen drives.
Operating systems: MS-DOS 6.22 / Windows 98 SE / Windows XP SP3 / Debian 7.11
The Samsung SSD has four primary partitions.
The first one is for MS-DOS 6.22. After installation, the partition type has been changed from 06 to 60 and IO.SYS has been altered to recognized this partition type instead of 06 with the following patch:
at offset 4E610 from the beginning of the partition
74 06 26 80 3F *06* 75 06 0A F6 74 3A FE CE 83 C3 becomes
74 06 26 80 3F *60* 75 06 0A F6 74 3A FE CE 83 C3
This change may seem strange but it will prevent Windows 98 / XP from creating files on the partition with Long File Names, which I dislike and may not be compatible with certain disk tools (the partition can still be mounted in Linux with msdos filesystem type).
Also you must edit the disk directly to make this modification: editing IO.SYS at the filesystem level may relocate the file rendering the system unbootable.
By the way, EMM386.EXE from DOS 6.0 has a bug that causes the system to hang. The version shipped with 6.22 is OK which is why I switched to this version. The second and third partition host Windows 98 SE and XP SP3. Finally the last partition hosts Debian. Initially I used 7.11 which is the most recent version of Debian that has an Xorg version compatible with the NVIDIA driver for legacy cards (NVIDIA-Linux-x86-96.43.23-pkg1.run), here the GeForce4 Ti 4200. This is also the last Debian version to use a real SysV init by default which has a nice retro feel to it. After changing the video card for the 6800 GT, I installed Debian 8 which has faster booting times and includes the NVIDIA driver in its non-free repository.
At first I thought browsing the web with this machine would be impossible, but in fact it is possible with the trick of using an old version of Firefox that does not require SSE2 (48 or below I believe) plus the noscript and ublock origin add-ons. addons.mozilla.org does not keep versions of addons that are more that a couple years since they made changes to the addon API. Fortunately old add-ons versions can be found on legacycollector.org (I presently use noscript-188.8.131.52.xpi and ublock-origin-1.9.16.xpi). As a matter of fact, I'm posting this on the very PC I'm describing. I find Firefox 38.8.0esr to be veyr usable with the aforementioned plugins, and faster than the 4x series.
In conclusion, this was a triumph. I'm making a note here, huge success! It's hard to overstate my satisfaction 😀