VOGONS


First post, by cde

User metadata
Rank Member
Rank
Member

Previously I had made an overkill XP build: Gigabyte GA-Z77M-D3H 1.1, Intel Core i7 3770K, MSI GeForce 960 as well as a "jack of all trades" Athlon XP build: Abit KT7A (KT133A/VIA686B), Athlon XP Mobile 2500+

EDIT: please be sure to consult this excellent post by mockingbird that expands on this build with useful advice: Re: MSI MS-7253 / K9VGM-V (KM890, VIA8237A) , Athlon 64 X2 5050e, Radeon X800 XL

After reading PCI sound cards and Chipsets from various manufacturers... I thought I'd try and make a build that would retain good compatibility with DOS sound while still offering over the top Windows 98 performance, and so chose the K8T890/K8M890. I paired it with a 2.6 GHz Athlon 64 X2 5050e (ADH5050IAA5DO) which is very low power (45W TDP); it is one of the latest K8 that were produced (65 nm, G2 stepping). A good alternative is the energy-efficient ADO5200IAA6CZ which has the F3 stepping. F3 has lower memory latency and a maximum of 2 x 1024 KB L2 cache; this particular CPU is up to 10% faster than then 5050e, but it has a slightly higher 65 W TDP.
https://en.wikipedia.org/wiki/List_of_AMD_Ath … microprocessors
https://en.wikipedia.org/wiki/List_of_AMD_Ath … microprocessors

The K8M890-based MSI MS-7253 (K9VGM-V, micro ATX version) has a VT8237A southbridge. I added an ES1938 card (Terratec ESS Solo-1) plus a Lite-On IDE DVD; all work extremely well in DOS with full sound support (CD audio, FM, SFX, and SC-55-like music with the Dreamblaster X2GS) . I just had a small issue with the ES1938 driver posted on Phil's computer lab website, and provided a fix attached to this post: Re: ESS 1938 under DOS

(The equivalent 775 board is the MSI MS-7293, with a VIA PT890 + VT8237A southbridge. It can handle 1066 MT/s Core 2 at best).

Note that the K8T890/K8M890 chipsets are limited to 2 GB of memory, which is already more than enough - I tried 4 GB but this caused DMA errors and video corruption, probably due to address space overlap.

It is worth nothing that the CPU speed can be lowered in a very fine-grained fashion using CpuSpd - A Hardware Based CPU Speed Control Utility for DOS/Win9X Retro Gaming : there are 16 ACPI performance levels, the CPU multiplier can be scaled down from 2600 to 500 MHz in 100 MHz steps and L1 cache can be deactivated. With all three slowdowns enabled, performance can be lowered down to 386 SX levels.

The integrated network adapter has NDIS and packet drivers for DOS/Win9x and is natively supported under XP/Linux. An alternative is the RTL8111C/RTL8111D gigabit ethernet PCIe card, the last one with official Windows 98 drivers (but no DOS drivers afaik). The RTL8111 requires the /M option of PATCHMEM.

If the ESSOLO.SYS driver hangs after displaying "SOLO" on a single line, it means it couldn't grab a low IRQ. A workaround is to disable LPT1 in the BIOS, so that it can grab IRQ 7, or to disable COM2 and force "PCI Slot 2 IRQ" to 3, allowing the ES1938 to use IRQ 5.

Installation of Windows 98 however is a bit more difficult, so here are a few tricks that were useful to me:

ES1938 sound card driver

The driver provided on Phil's site (solo1_drv_w9x_4.12.01.1165.zip) did not work at all for me regardless of any IRQ setting. The "ESS SOLO-1 PCI AudioDrive" driver showed a yellow exclamation mark with the error message "This device is either not present, not working properly, or does not have all the drivers installed. (Code 10.)". Instead I found driver 5.12.01.3047 which worked fine, also provided as an attachment to Re: ESS 1938 under DOS

Radeon X800 XL PCIe graphics card

The X800 XL is one of the most powerful of this generation, and this particular chip (ATi R430, Thor) was released later on the 110nm node and does not require external power; I measured the whole power consumption of this card as 50W. All pixel and vertex shared are unlocked (16/6), be aware that many other X800 models have a reduced number of pixel and vertex shaders. The default cooling solution was replaced with the Zalman ZF700-CU. (I had to solder a fan header onto the motherboard, as the footprint was not populated.)

After installing 98, there are three graphics cards listed instead of two: 1. "Standard Display Adapter (VGA)", 2. "Standard PCI Graphics Adapter" and 3. "Standard PCI Graphics Adapter (VGA)" with a yellow exclamation mark. The first one is erroneous and was created by mistake by Windows 98 SE setup. The fix is easy and consists of removing 1. "Standard Display Adapter (VGA)" and rebooting. Then the yellow exclamation mark is gone and installation of the 6.2 catalyst driver succeeds.

SATA SSD drive

Like the VT82C686B, the VIA8237A doesn't like SATA to IDE converters connected to a SATA SSD: both the Marvell 88SA8052 and JMicron JM20330 adapters caused DMA errors. However (again like the VT82C686B), an mSATA to IDE 88SA8052-based adapter worked fine in DMA mode. This adapter can usually be found under the brands Delock/Ableconn/Renkforce and has a red PCB with metal railings on the side, but it has become expensive and difficult to find. It looks like: https://m.media-amazon.com/images/I/812r43k8o … _AC_SL1500_.jpg

So a better solution would be to use a SATA SSD using one of the two SATA ports on the motherboard in IDE mode. What I found out after much experimentation is that Windows 98 SE doesn't like having more than two IDE bus masters (by default, this MB has four: two classic IDE ports and two SATA ports). Furthermore, it is necessary to apply R. Loew's PTCHSATA, and finally DMA must be activated manually for both HDD and DVD drives. Here's a short guide for using a SATA SSD with this motherboard:

- After the first reboot, the message "Insufficient memory to initialize Windows. Quit one or more memory resident programs..." is shown. (here I'm using 2 GB of memory). Reboot and instead of safe mode select command prompt. Install PATCHMEM and PTCHSATA (it is not necessary to copy SATA.INF).

- After rebooting, installation will freeze one or two times at the "Windows 98 is now setting up your hardware and any Plug and Play devices you may have...". The mouse might still move but the magnifying glass stops moving, so reboot the PC and setup will continue and eventually succeed.

- In the device manager, there is now under Hard disk controllers "Standard Dual PCI IDE Controller" (with a yellow exclamation mark) and "VIA Bus Master PCI IDE Controller" (working). Under the properties of each controller go to Settings and change the Dual IDE Channel Settings so that there is only one IDE Channel enabled for each (for example Primary if IDE0 or SATA2 is used, Secondary for IDE1 or SATA3), then reboot.

- Again in the device manager, update the drivers for "Standard Dual PCI IDE Controller" by choosing "VIA Bus Master PCI IDE Controller" (with Show all hardware), then reboot.

- Now there are two "VIA Bus Master PCI IDE Controller" devices in Device Manager with no yellow exclamation mark. In the properties of the optical drive and "GENERIC IDE DISK TYPE00", tick the DMA checkbox - otherwise performance of the HDD/ODD will be limited to around 3 MB/s. With DMA, performance is up to around 130 MB/s.

untitled.png
Filename
untitled.png
File size
5.04 KiB
Views
2289 views
File license
CC-BY-4.0

The BIOS also provides a RAID option for the SATA port. The VIA RAID drivers work fine in Win98, unfortunately the BIOS code reserves 12 KB of conventional memory for its buffers, so I wouldn't recommend going that route.

It is best to set the optical drive as the IDE master, if set to slave Windows XP takes a lot longer to boot (presumably because it timeouts waiting for the master's response). Make sure to use a recent IDE CD/DVD drive (like the Lite-on LH-20A1H or Nec ND-4570A / ND-4571A, all three are CDBQ compatible); when using an older ~2002 Sony CD-R/RW drive (CRX175A1) I would get DMA errors and disk corruption (when used as a slave device).

A note about the VIA Hyperion drivers: the last version with Win9x IDE drivers is 5.21a. However I've tested these drivers and performance is actually slightly worse than the default Windows 98 SE IDE driver. The Hyperion package also contains the AGP driver, but again after installing it I got the same 3DMark2001 scores. So I believe this driver package is completely unneeded.

Also when using a USB mouse, movement of the mouse is very jerky, as if it was sampled at 2 fps. Installing the VIA USB 2.0 driver did not fix it. However installing nusb36.exe fixes the problem completely, so I recommend it if you need USB devices (an alternative would be U98SeUSB.exe, see Re: Windows 98SE - USB mouse extremely slow, am I missing something obvious?). By the way, real-mode support for USB keyboards/mice/storage can be disabled in the BIOS, freeing 64 KB of UMB. The BIOS PS/2 emulation is actually decent and would be useful eg. if the PS/2 port was defective.

Finally, some pictures: the cooler is a be quiet! Pure Rock Slim which has AM2 compatibility (dropped in version 2 of this cooler) - PWM support must be enabled in the BIOS, and the case the Advance 6016CR Little Box (with the USB card reader replaced by a Gotek):

Attachments

Last edited by cde on 2023-09-09, 05:23. Edited 12 times in total.

Reply 2 of 7, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Cool, I rocked the fiddy-fiddy for a few years. I never got any more out of it than stock speeds, but I blame a crappy ECS board and Kingston screwing me on RAM for that, they had a very sneaky retail package that said DDR-2-800 "compatible" but it wasn't actually DDR-2-800 it was 533. So it only just did 800 by the skin of it's teeth. That's one of those weird things that always dead-ends on me, trying to get decent speed DDR2, the other thing is K6-3s and or pluses. No end of bad luck with both.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 3 of 7, by Joseph_Joestar

User metadata
Rank l33t
Rank
l33t
cde wrote on 2021-08-21, 17:05:

Like the VT82C686B, the VIA8237A doesn't like SATA to IDE converters connected to a SATA SSD: both the Marvell 88SA8052 and JMicron JM20330 adapters caused DMA errors. However (again like the VT82C686B), an mSATA to IDE 88SA8052-based adapter worked fine in DMA mode.

This is very interesting, thanks for pointing out the mSATA to IDE solution. I had the same experience with JMicron adapters on my KT7A, so I gave up on using an SSD with that build. Might give it another shot if I come across one of those 88SA8052-based adapters.

Great build BTW. Very power efficient and quite versatile, with a lot of slowdown range. If prices weren't so insane right now, I'd suggest adding a Voodoo2 for games that need palleted textures, table fog or just plain Glide support. But then again, a system this powerful can probably handle Glide emulation without any issues.

PC#1: Pentium MMX 166 / Soyo SY-5BT / S3 Trio64V+ / Voodoo1 / YMF719 / AWE64 Gold / SC-155
PC#2: AthlonXP 2100+ / ECS K7VTA3 / Voodoo3 / Audigy2 / Vortex2
PC#3: Athlon64 3400+ / Asus K8V-MX / 5900XT / Audigy2
PC#4: i5-3570K / MSI Z77A-G43 / GTX 970 / X-Fi

Reply 4 of 7, by cde

User metadata
Rank Member
Rank
Member
Joseph_Joestar wrote on 2021-08-23, 04:01:

This is very interesting, thanks for pointing out the mSATA to IDE solution. I had the same experience with JMicron adapters on my KT7A, so I gave up on using an SSD with that build. Might give it another shot if I come across one of those 88SA8052-based adapters.

Great build BTW. Very power efficient and quite versatile, with a lot of slowdown range. If prices weren't so insane right now, I'd suggest adding a Voodoo2 for games that need palleted textures, table fog or just plain Glide support. But then again, a system this powerful can probably handle Glide emulation without any issues.

Thanks Joseph. In addition to the Delock/Renkforce/Ableconn 88SA8052-based adapter, there are two solutions that could work for you:

- SI3114 with 5.5.00 BIOS + regular SSD. Main drawbacks are the 10 KB of conventional memory it requires, lack of TRIM, and being limited by the PCI bandwidth.
- JM20330-based mSATA adapter with PIO mode 4 forced in the BIOS. Despite using PIO, performance on the KT7A is acceptable for DOS / Win98 and CPU usage remains low.

Reply 5 of 7, by cde

User metadata
Rank Member
Rank
Member
cde wrote on 2021-08-21, 17:05:

The integrated network adapter has NDIS and packet drivers for DOS/Win9x and is natively supported under XP/Linux. An alternative is the RTL8111C gigabit ethernet PCIe card, the last one with official Windows 98 drivers (but no DOS drivers afaik).

I couldn't find the RTL8111C online - one listing that claimed to be a RTL8111C was in fact a RTL8111E. A second listing under the spanish brand "donkey PC" was a RTL8111D which is fortunately supported by the last Windows 98 SE Realtek driver. It was necessary to reinstall PATCHMEM with the /M option, to avoid the error "VFAT Device initialization Failed". Transfer speeds are only 34 MB/s under 98 (and almost 100 MB/s under Linux), still an improvement over the integrated NIC.

Reply 6 of 7, by mockingbird

User metadata
Rank Oldbie
Rank
Oldbie
cde wrote on 2021-08-21, 17:05:

It is worth nothing that the CPU speed can be lowered in a very fine-grained fashion using CpuSpd - A Hardware Based CPU Speed Control Utility for DOS/Win9X Retro Gaming : there are 16 ACPI performance levels, the CPU multiplier can be scaled down from 2600 to 500 MHz in 100 MHz steps and L1 cache can be deactivated. With all three slowdowns enabled, performance can be lowered down to 386 SX levels.

Would you please confirm the ability to change the CPU multiplier in DOS? I've tested with setmul, a64lowp, and cpuspd... I cannot change the multiplier, it's always stuck at 13x. I tested with a "Black Edition" variant as well (though it shouldn't matter, because Black Editions only unlock higher multipliers, whereas lower multipliers are unlocked by default on all K8 CPUs).

I tried playing with "LDT" speed in the BIOS (setting it to the lowest of 200) and setting VLINK to Mode 0, that didn't help. I disabled HPET and ACPI, ditto. Neither did disabling Cool'n'Quiet have any effect.

No matter what, it's stuck at 13x.

EDIT: Just tested with a comparable K8M890 from a different manufacturer and it worked fine. When you say "2600 to 500Mhz", did you mean to say to 1Ghz? The minimum allowable multiplier is 5x, anything below and the system will hang trying to set it.

EDIT 2: Excellent find on the IDE controller fix... I did not read it carefully and besides PTCHSATA, I only tried to update it to the VIA Bus Master without selecting "primary only" in the properties of each controller first. Only then did everything work properly. I am testing again with the K9VGM-V despite the issue with the multiplier not being adjustable on it, and I have two items with exclamation points after all the drivers are installed, "PCI Bus" and "Motherboard Resources", but I think I have a way around that. More to follow on that after some more testing.

Now for what I really wanted to know -- who wins when it comes to PCIe and Windows 98, Intel or AMD? With my Intel Wolfdale 3Ghz/G31 (ICH7) system, a Quake 3 1.32C timedemo of demo001 nets me 515FPS, with the AMD system (65nm 2.6Ghz G2 Athlon64 x2), the equivalent benchmark (1024x768, 32-bit, everything highest, trilinear) nets me approximately 410FPS. An equivalent maxxed out Intel system from that era simply blows AMD away. The video card is an X800XT.

The caveat is that Intel compatibility with Windows 98 is unofficial, and varies from motherboard to motherboard, even of equivalent spec. There exists a special method of adding several unofficial INFs to the Windows 98 install directory, and at least for me, that gives me a perfect install with a good Device Manager.

So overall, even with the limited throttling, I think I will go with the Intel system. The VT8237A lacks DDMA anyways, so there's no benefit there. The YMF724 should work with DSDMA and the ESS Solo1 should also work with TDMA with the Intel.

EDIT 3: I found out what was preventing multiplier changes on the K9VGM-V. I had a PCI video card (read: NOT PCI-e) I was using for testing, and with it installed and set as the primary display device, multiplier changes did not work. I put an SB Live into one of the PCI slots to see if it would happen with it to, but it worked, so it seems limited to PCI VGA cards. This quirk is unique to this board in particular, and my other board with the same chipset did not exhibit this issue, so this is just something to keep in mind when testing. IDE drive detection also seems to be working well now (whereas before it would detect my Lite-ON as "Lide ON" with gibberish -- and yes the board is re-capped, so I'm not sure what was causing that).

EDIT 4: I did some more experimenting. I was dissatisfied with your method of installation, because it left me with two devices in system devices that would not install properly and had an exclamation point ('Motherboard Resources', with a resource conflict, and 'PCI Bus', which complained that I could not have two separate devices of the same kind). Everything worked well though, but I found a much easier way to get things installed smoothly, with very little effort, and no system hanging during the installation process. The method involves disabling ACPI (and perhaps it's also worthwhile disabling HPET) in the BIOS. Disable all the integrated peripherals as well such as LAN, serial ports, parallel port, audio, etc... Then boot to dos and run setup with the "setup /p i" (note the space between the 'p' and 'i') parameter. After the first reboot, if you have more than 512mb of ram, it will not allow you to proceed. You boot to a command line and run patchmem and ptchsata. Reboot, and then you proceed with setup, which will complete gracefully without any hanging or errors. Once in Windows, install the Via Hyperion 5.24 drivers. Deselect all but the first option (chipset) from the installation program, and the setup will run and then complain about not being able to proceed because it was interrupted. Click finish and reboot. It will do the detection at startup of all the system devices. For each device where it stops you and asks for help, just select automatic search and it will proceed to find it itself. After everything's complete, reboot, and you're all set. No need to configure IDE or anything like that. The only thing that you need to install now is the USB 2.0 controller if you have that enabled in the BIOS. So just run NUSB36E, reboot, go to device manager and do an automatic search for the unknown device and it will find the VIA USB controller. You can now re-enable devices as required from the BIOS, see what works and what doesn't.

Two things to note:
1) None of the VIA drivers are actually "drivers". Not a single VXD gets installed. This also applies to the USB driver. Rather, they are all INFs that tell Windows how to configure Windows to use the device with the default Microsoft drivers
2) The MSI is far faster than my other K8M890 board. The MSI board exposes the VLink controller and the PCIe bridge to Windows, whereas my other board has some compatibility layer in its BIOS that exposes AGP (which the board doesn't actually have) to Windows. The difference in speed is quite measurable, and there's a good 50FPS difference between them in Quake3 timedemo. There was no speed difference with the MSI board between ACPI mode and APM (ACPI disable) mode.

EDIT 5: I did some testing to see how well this setup throttles in DOS without artificial means. That means to say, I am throttling only by reducing CPU speed and disabling cache. CPUSPD was used for setting the multiplier and disabling the cache (so "cpuspd m5 cd", for example), because while SETMUL works for setting the multiplier, it gets stuck when re-enabling the cache after it's disabled.

It turns out that K8 on VIA has some great potential. The following results were from NSSI. Speedsys showed higher speeds. All tests performed with cache disabled.

-with a multiplier of 5 (1Ghz), it scored between a 386/DX-40 and a 486/DX-33
-with a multiplier of 7 (1.4Ghz), it scored equivalent to a 486/DX-33
-with a multiplier of 13 (2.6Ghz), it scored between a 486/DX-33 and a 486/DX2-66

So the K8 is far more capable than the K7 when it comes to "pure" throttling (i.e. no usage of FDAPM), and the experience is a lot smoother. All-in-all, The KM890 with AM2 and PCIe is an amazing retro platform given its compatibility and throttling abilities. It supports changing the multiplier on-the-fly in DOS, it supports disabling cache in DOS, it supports Windows 98, and supports floppy, IDE, and SATA. It also supports TDMA with the ESS Solo.

mslrlv.png
(Decommissioned:)
7ivtic.png

Reply 7 of 7, by cde

User metadata
Rank Member
Rank
Member

Many thanks for the detailed post, mockingbird. I have updated the original post with a link to yours, in particular your reporting on PCI video cards preventing multiplier changes is very interesting. Indeed the K8 is quite versatile wrt/ slowdown options, and the TDMA support of the VT8237A makes it a very powerful retro machine.