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.
EDIT: as of 2022 the KT7A has become very difficult to find. A newer, similar DOS/Win98/WinXP build with easier to find parts is described here: MSI MS-7253 / K9VGM-V (KM890, VIA8237A) , Athlon 64 X2 5050e, Radeon X800 XL
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).
https://www.theregister.co.uk/2001/04/12/data … s_via_chipsets/
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 using PATCHMEM or 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.2V @ 1666 MHz (1.25V 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: the XP-M family should have the largest range, and Athlon XPs before week 39 of 2003 should also be unlocked: http://fab51.com/cpu/barton/athlon-e24.html .
I'm not sure overclocking this CPU would make a lot of sense, considering the very slow SDRAM is the primary bottleneck.
GPU: 3dfx Voodoo 3 2000 PCI
There is not a lot to say about this GPU. It is quite powerful while working very well with a range of DOS/Win98 games (some games, like Unreal, do work best with a 3dfx card). I'm using this card for Windows 98 SE with driver http://falconfly.3dfx.pl/downloads/voodoo3-10700.zip (in XP I use the GeForce instead). This works best to avoid conflicts between drivers.
GPU: GeForce4 Ti 4200 AGP
I used the GeForce 6800 initially but it proved not compatible enough with certain older games. Instead the Ti 4200 is great for DirectX 7/8 games, being compatible with a wide range of nVIDIA driver versions, and retaining legacy features such as 8-bit paletted textures and table fog. The GPU is actively cooled by a Zalman VF-700, with a fan speed reducer to bring noise down; the airflow also has the advantage of cooling the Voodoo 3 underneath.
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 (although a better option would be the OSSC below).
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 for the cPU and take all their power from the 5V rail. Fortunately since the CPU is extremely undervolted the requirements for 5V power are much 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; this aids in removing hot hair from the CPU. In fact it's one of the last cases that you can find with such an arrangement. 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 three fans (Corsair AF120 and AF140): two (at the front and on the side) suck air in, and one at the back blows air out in addition to the PSU fan. The northbridge and CPU fans cables were modified with a resistor to limit their speed and thus noise.
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.
Display: iiyama 17" Vision Master 1403
It has a shadow mask and gives a very authentic look and feel. It's weight is also reasonable, and has digital OSD. The refresh rate can be set up to 100 Hz (800x600) or 85 Hz (1024x768) . 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.
In Windows 98, it is also nice to use the PS2RATE utility to force the highest possible mouse refresh rate (up to 200 Hz, from the default 40 Hz).
Display: AOC G2590PX (1920x1080) with OSSC
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. When using the OSSC line-doubling, it displays pixel-perfect 1280x960 (for 640x480 games) in 1:1 mode. The OSSC is also great for doubling 640x400@70 Hz VGA (DOS 320x200 games) to 1280x800@70 Hz HDMI. For more details, see: /viewtopic.php?p=890660#p890660 . Keep in mind that by default OSSC samples 720x400@70 Hz instead of 640x400@70 Hz - it is easy to setup two profiles on the remote to switch between these modes easily.
Sound card: Sound Blaster 16 CT2290
This card works extremely well with low noise and in my experience no MIDI bugs. Advantages:
- line out with extremely low noise, even with volume at maximum
- does not pick out the electric noise from the CPU activity unlike my CT1750
- CT1741 DSP 4.13 without hanging note bug, functional WaveBlaster header
- modern CD-IN connector, again unlike the CT1750 (it does not block the DreamBlaster X2 which works fine)
- real sounding OPL3 (the CT1747 includes a YMF262 clone)
- CSP/ASP chip (although not all models have it)
- not speed sensitive (works with Athlon XP)
Please note SB16 cards may require the SBMPU401.EXE (from waveptch.zip) to fix a lockup issue in certain games using the Waveblaster.
Sound card: ESS AudioDrive ES1868F
I have found two models with very low noise: the Edison Gold 16 Plus/KWX-SC200 and KWX-SND21-W (MPB-000074 1.1) with UTC VFA33 LM386 preamps. 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 compatibility. Installation is extremely easy. I have added a DreamBlaster X2 + Buran 1.0 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 CT2290 and ES1868F 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 + Marvell 88SA8052
My current storage is the Samsung mSATA 860 EVO (250 GB) together with a mSATA to IDE 2.5 board (Marvell 88SA8052, usually sold by Ableconn/RENKFORCE) and passive 2.5 to 3.5 IDE adapter: /viewtopic.php?p=908209#p908209 . It has the advantage of being fully compatible with DOS/Windows 9x/XP without additional drivers, and supports UDMA/100, with best results on the secondary IDE port. The JM20330 is easier to find but the issue I have with it is that I have to force PIO mode 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 the JM20330. I'd recommend using Linux to diagnose any UltraDMA issues since the kernel messages are very helpful.
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 Voodoo PCI cards. XP installation did require slipstreaming of the SI3114 drivers but that was no issue; driver version 184.108.40.206 is compatible both with 98 and XP (3114-vista-x86-logo-220.127.116.11.zip). This card does not support TRIM; so 88SA8052-based IDE-mSATA/SATA adapters are a better option overall.
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. It is compatible with CDBQ (http://cdbq.dosforum.de/README.TXT) to reduce maximum speed and hence noise.
A good alternative, also CDBQ compatible, is the Lite-on LH-20A1H. Be aware that older drives like the Sony CD-R/RW CRX175A1 do not work well in ultra DMA mode and may cause errors and disk corruption when used as a slave device.
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 (and running ssh-keygen -A to generate the DSA host key):
KexAlgorithms = +diffie-hellman-group1-sha1
HostKeyAlgorithms = +ssh-dss
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.
Further information on how to setup a network share in DOS can be found here: Re: networking under DOS
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. I use Debian 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.
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 so I've attached to a later post in this thread noscript-18.104.22.168.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 😀 Some pictures below: