VOGONS

Common searches


First post, by OMORES

User metadata
Rank Member
Rank
Member

I was convinced that Windows NT 4.0 is way too picky to run on new modern hardware. But that's not exactly true... Now I have a fully functional NT 4.0 on my Ryzen 3900X machine! ( *this post is updated after a weekend of trial and error)

NT4_sound_net_video_info.png
Filename
NT4_sound_net_video_info.png
File size
98.15 KiB
Views
3644 views
File license
Public domain

First, I installed NT 4.0 on a K6-2/500 because I have a AccelGraphics Eclipse video card which has NT only drivers. (This card from 1997-1998 is based on Mitsubishi 3DPro/2mp chipset co-developed by Evans & Sutherland 15MB 3D-RAM FrameBuffer + 4 or 16MB CDRAM Texture Memory ($3,495)).

AccelGraphics_EclipseII99.jpg
Filename
AccelGraphics_EclipseII99.jpg
File size
284.99 KiB
Views
3644 views
File license
CC-BY-4.0

Then I ported... this installation to my Ryzen390X machine which has two classic PCI slots on a Biostar motheboard.

What works:

CPU: Ryzen 3900x - no problems, no errors @ 3.8Ghz * 64mb cache L3 (only single core)

USB keyboard : YES! Works normal via BIOS emulation - this will trigger some warnings if you check system event viewer: Could not set typematic rate. )

RAM: ~ 3.5 GB RAM (of 32GB)

Video: Voodoo 3000 PCI - driver installs perfectly - 1920x1080 and above resolutions available.

Network: - Yes, using a PCI-E 1X Broadcom Nextreme gigabit card. This card is amazing: has drivers for DOS, which also works in 3.11, 95. Also 32 bit drivers for 98, Me, NT 4.0, 2K, XP, 7. Of course, there is a newer driver (2018) for Windows 10 64bit.

SATA: Originally, I installed NT 4.0 on a 8.4GB IDE drive - I hooked up this drive to my Ryzen machine using a VIA 6421A PCI to SATA/IDE - which has drivers for NT4.0. Then I installed NT4.0 on an SSD using the same VIA card. In the end, I used UniAta drivers and hooked the same SSD directly on the motherboard.

USB: Using a PCI-E 1x to USB card (VIA 6212L chip) - there is mouse, keyboard, USB storage and there is support for some other stuff... Everything that is supported (not much though) works perfectly fine after installing USB patch.

Sound: Yes, using a Creative SB 128PCI. This one took a lot of time and reinstalls to make it work! It was a problem with the PCI slot/adapter. This motherboard uses and Asmedia PCI-E to PCI chip. Also the USB adapter card uses a PCI-E to PCI chip, this one is from Pericom. When I tried to use another PCI-E to PCI adapter with an Asmedia chip Windows NT didn't like it! Solution: replaced VIA PCI to SATA with Creative PCI128 (using PCI slot from the motherboad) and booting up with Uniata drivers.

The attachment nt_4_ryzen.png is no longer available
nt_4_ryzen.png
Filename
nt_4_ryzen.png
File size
60.5 KiB
Views
4031 views
File license
Public domain

Attachments

  • acceleclipsepcifvb.jpg
    Filename
    acceleclipsepcifvb.jpg
    File size
    272.99 KiB
    Views
    4010 views
    File license
    Fair use/fair dealing exception
Last edited by OMORES on 2021-11-04, 09:38. Edited 2 times in total.

My best video so far.

Reply 3 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

What happens when you change the single processor kernel to the multi processor kernel?

OMORES wrote on 2021-10-27, 17:21:

Well, it didn't boot from SSD - the same message occurred: Error: boot device inaccessible. - But this was kind of a nice error message... I mean, no crazy CPU or memory blue screen...

This is no wonder to me because the NT kernel has not started yet at this time.

Reply 4 of 17, by chinny22

User metadata
Rank l33t++
Rank
l33t++
Disruptor wrote on 2021-10-27, 20:37:

What happens when you change the single processor kernel to the multi processor kernel?

yeh you have to do this! Idealy you want NT4 enterprise as that gives you access to 8 of your 12 "CPU's" and 64MB of ram.

How big is the SSD and what Service pack are you running? anything earlier then SP4 will blue sceen if over 8GB
https://jeffpar.github.io/kbarchive/kb/197/Q197667/
You can download the driver disk from here
https://www.helpjet.net/dl/85106202-75843699- … 05902/ATAPI.EXE

Or what I did in the late 90's, Partion below 8GB, Install and patch NT4 then partion the remaining few GB in NT (it was only a 10GB drive)

NT4 also crashes if installing to a large partiton . I forget the number 4GB? but basiclly when setup does the conversion from fat to NTFS it crashes on drives larger then the majic number.

Reply 5 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie
chinny22 wrote on 2021-10-27, 21:39:

NT4 also crashes if installing to a large partiton . I forget the number 4GB? but basiclly when setup does the conversion from fat to NTFS it crashes on drives larger then the majic number.

I guess the maximum partition size for the installation partition is 4 GB because NT 4 formats the partition in FAT16 with 64K sized clusters. The possible conversion to NTFS is done afterwards in the setup process.

Reply 6 of 17, by NJRoadfan

User metadata
Rank Oldbie
Rank
Oldbie

I managed to get NT4 running on Core2 era hardware (PCIe video and SATA) with no problem. I followed the multiple step process to slipstream SP6a+post SP updates along with the UniATA driver onto CD. Having UniATA seems very important on AHCI only systems. The NT4 kernel is much better behaved on high memory systems vs. Windows 9x. Start with a blank HD as well. NT4 creates a 2GB FAT16 partition to do the initial install and converts to NTFS afterwards.

Ironically it might be easier to get NT4 running on modern hardware vs. XP or 7 due to not relying on ACPI. The lack of XHCI USB drivers would be a problem though if your motherboard lacks PS/2 ports.

Reply 7 of 17, by OMORES

User metadata
Rank Member
Rank
Member

Update:

Now it's booting from SSD on the newer configuration. The SSD is some WD 120GB SATA3 drive. When I put back this SSD on the older machine (K6), where it worked before, I got the same error message "Inaccessible boot drive", then I rebooted in VGA mode, then it worked flawlessly on both machines Ryzen & K6-2. Don't know why...

I still have to do some tinkering with the sound card - I had the impression that is working on the Ryzen machine, but is definitely not...

NJRoadfan wrote on 2021-10-28, 12:38:

The lack of XHCI USB drivers would be a problem though if your motherboard lacks PS/2 ports.

It's working with USB keyboard - plugged into motherboard. (emulated by BIOS)

Mouse is plugged into a PCI-Express VIA USB card - and works just fine.

chinny22 wrote on 2021-10-27, 21:39:
Disruptor wrote on 2021-10-27, 20:37:

What happens when you change the single processor kernel to the multi processor kernel?

yeh you have to do this! Idealy you want NT4 enterprise as that gives you access to 8 of your 12 "CPU's" and 64MB of ram.

I'll definitely give it a try. I did try to go via upgrade path... but I got stuck. Next install will be enterprise.

NT4_after_IE6.png
Filename
NT4_after_IE6.png
File size
47.03 KiB
Views
3863 views
File license
Public domain

Some benchmarks featuring Sandra 99:
MIPS:

Sandra99_MIPS_Ryzen3900x.png
Filename
Sandra99_MIPS_Ryzen3900x.png
File size
66.5 KiB
Views
3863 views
File license
Public domain

Memory speed:
Sandra 99 is getting the exact speed, @2133Mhz bandwidth is 17GB/s

Sandra_99_Ryzen3900x_memory.png
Filename
Sandra_99_Ryzen3900x_memory.png
File size
57.92 KiB
Views
3863 views
File license
Public domain

Unreal 60 fps constant at 1024x768 (Vsync might be ON)

Attachments

My best video so far.

Reply 8 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Since NT Workstation 4.0 also supports 2 cores you do not need to reinstall Windows NT but to change the kernel.

NTOSKRNL.EXE : 1 CPU
NTKRNLMP.EXE : N CPU SMP
NTKRNLPA.EXE : 1 CPU, PAE
NTKRPAMP.EXE : N CPU SMP, PAE

https://en.wikipedia.org/wiki/Ntoskrnl.exe

You have to change the HAL too.

Standard-PC (non ACPI) – Hal.dll
MPS Uniprocessor PC – Halapic.dll
MPS Multiprozessor PC – Halmps.dll
ACPI-PC (Advanced Configuration and Power Interface) – Halacpi.dll
ACPI Uniprocessor PC – Halaacpi.dll
ACPI-Multiprozessor-PC – Halmacpi.dll

You safely can copy both HAL and Kernel from your servicepack files (extract with sp6a.exe /X) or Windows NT CD to your Windows directory. Be sure to load the latest of those files.
You have to edit the boot.ini then and add a line.

multi(0)disk(0)rdisk(0)partiton(1)\WINNT="Windows NT Workstation Version 4.00"
multi(0)disk(0)rdisk(0)partiton(1)\WINNT="Windows NT Workstation Version 4.00 HALMPS NTKRNLMP" /hal=halmps.dll /kernel=ntkrnlmp.exe

Reply 9 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

Ah, you should give the ACPI HAL a chance too.
Please report!

Not all of the listed files above are available under NT 4.0 but perhaps on later versions.

Reply 10 of 17, by OMORES

User metadata
Rank Member
Rank
Member

multi(0)disk(0)rdisk(0)partiton(1)\WINNT="Windows NT Workstation Version 4.00 HALMPS NTKRNLMP" /hal=halmps.dll /kernel=ntkrnlmp.exe

Tried just once with proper files from SP6 and inaccessible boot disk saga continues...

I will install UNIAta.

Attachments

  • nt_mp.png
    Filename
    nt_mp.png
    File size
    142.3 KiB
    Views
    3807 views
    File license
    Public domain

My best video so far.

Reply 11 of 17, by Disruptor

User metadata
Rank Oldbie
Rank
Oldbie

May you compare the files of the SP6a directory with your standard ntoskrnl.exe and hal.dll please?
I'd like to know which kernel and HAL works on your system.
Have you tried the ACPI kernels too? Or, perhaps they crash.

Can you quote your boot.ini please?
It looks like your NT cannot access a file specified.

Wait, moment.
I see OS Loader V4.00
Shouldn't it be OS Loader V4.01 ?
Do you have a service pack installed at all?

Reply 12 of 17, by OMORES

User metadata
Rank Member
Rank
Member

So far, doesNT work with multi CPU...
It was OS loader 4.0 because at some point I begun a new installation, which did some overwrites. But I manually replaced the files, and still no luck with OS loader 4.01.
Both multi & ACPI hals in the end give the same error:
(to make it work... I renamed hal.dll)

no_mps_table.jpg
Filename
no_mps_table.jpg
File size
54.27 KiB
Views
3757 views
File license
Public domain

The working hal.dll is the one from SP6, version 4.0.

My biggest problem is that I can't add another PCI card - tried with several times with different sound cards and a Realtek 8029 NIC.

This is odd because there are some working PCI cards - VIA PCI SATA and VIA PCI-E USB - it's not like PCI bus is not recognized at all like in Windows 98SE where you have to install it manually on newer systems. Also If I use a tool like HWINFO32 and I do find every PCI/PCI-E card, they have and IRQ assigned, base address and so on...

Tried with /PCILOCK - (no change)

PCI_NT4.png
Filename
PCI_NT4.png
File size
48.99 KiB
Views
3757 views
File license
Public domain

*UniATA works fine, recognized all the SSDs! (except NVME)

My best video so far.

Reply 13 of 17, by OMORES

User metadata
Rank Member
Rank
Member

Update:

I was able to install it directly on SSD using F6 and VIA RAID driver. On my machine, USB floppy can be used as a regular floppy because it's detected in the DOS also in DOS part of the NT 4 setup.

To install a new PCI device you have to manually specify its bus number. I was able to install is a Realtek 8029 NIC which has a driver where you can manually select the bus. I used HWINFO to find out which is the bus number, selected bus #11 and it worked like a charm... Sound card is still not working. This is strange because Voodoo3 PCI drivers do work, also VIA PCI SATA & PCI-E - USB are working, but I plugged many sound cards and none is detected. On K6-2/500 machine ISA is reported as bus 0. PCI bus may show up as bus 1 or also bus 0... But on the Ryzen machine - PCI bus goes to much higher numbers: VIA PCI - SATA is IRQ5, bus#10, and PCI-Express to USB is IRQ11, bus#13.

8029_Realtek.png
Filename
8029_Realtek.png
File size
7.1 KiB
Views
3716 views
File license
Public domain
nt4_bus.png
Filename
nt4_bus.png
File size
78.21 KiB
Views
3716 views
File license
Public domain

My best video so far.

Reply 14 of 17, by NJRoadfan

User metadata
Rank Oldbie
Rank
Oldbie

The UniATA driver should allow the onboard SATA ports to be used by NT4. PCIe's architecture is more hub and spoke vs. conventional PCI. There are a ton of PCI-to-PCI bridges visible in legacy OSes to deal with it. I wouldn't be surprised if the bus numbers have some relation to IOMMU grouping seen in modern OSes.

The other big problem is IRQs. NT4's standard HAL likely only deals with stand dual PICs (IRQ 0-15) when PCIe was designed for APIC and message based IRQs. The MPS HAL has to support APIC (its part of the standard), but it looks like the Ryzen board's BIOS removed support relying solely on ACPI. (It still works on Core2 systems) Note that some Ryzen boards are already having problems booting Windows 7 due to ACPI table changes, so I wouldn't expect MPS to be working!

Reply 15 of 17, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie
OMORES wrote on 2021-10-30, 08:00:

To install a new PCI device you have to manually specify its bus number. I was able to install is a Realtek 8029 NIC which has a driver where you can manually select the bus. I used HWINFO to find out which is the bus number, selected bus #11 and it worked like a charm... Sound card is still not working. This is strange because Voodoo3 PCI drivers do work, also VIA PCI SATA & PCI-E - USB are working, but I plugged many sound cards and none is detected. On K6-2/500 machine ISA is reported as bus 0. PCI bus may show up as bus 1 or also bus 0... But on the Ryzen machine - PCI bus goes to much higher numbers: VIA PCI - SATA is IRQ5, bus#10, and PCI-Express to USB is IRQ11, bus#13.

NT4 has no PNP manager so device drivers had to scan for hardware themselves. I wonder if some driver authors didn't bother to scan such high bus numbers because they didn't anticipate that they would ever be used.

again another retro game on itch: https://90soft90.itch.io/shmup-salad

Reply 16 of 17, by OMORES

User metadata
Rank Member
Rank
Member

NT4 has no PNP manager so device drivers had to scan for hardware themselves. I wonder if some driver authors didn't bother to scan such high bus numbers because they didn't anticipate that they would ever be used.

I don't know in what range are this bus number scanned but, after some re-installs and messing with more PCI cards, I find NT 4.0 pretty reliable on the PCI side... It seems that all the problems were caused by using a 2nd PCI-E to PCI adapter with same bridge chipset.

PCI cards I have installed and without any extra settings on my Ryzen machine:
M-Audio Audiophile 24/96
Sound Blaster Live 1024
Sound Blaster PCI 64 (ES1371)
Generic sound card with CMI 8738 chipset
VIA6421A PCI to SATA
Voodoo 3 3000 PCI

Yesterday, I was pleased to find a SATA II PCI card with good drivers for NT4.0. (9x too) It has an Initio INIC-162x chipset. http://www.initio.com/Html/inic-1620.html

This card can make Windows 3.x boot in enhanced mode from a SATA drive.

It claims that is has "BIOS support for DOS [...] applications without driver involvement." Whatever that means...

I noticed that any drive will be reported as 8.4GB for DOS and no strange numbers will appear when using FDSIK or Windows NT format utility during DOS part installation.

Attachments

My best video so far.

Reply 17 of 17, by matti157

User metadata
Rank Member
Rank
Member
bakemono wrote on 2021-11-22, 17:30:
OMORES wrote on 2021-10-30, 08:00:

To install a new PCI device you have to manually specify its bus number. I was able to install is a Realtek 8029 NIC which has a driver where you can manually select the bus. I used HWINFO to find out which is the bus number, selected bus #11 and it worked like a charm... Sound card is still not working. This is strange because Voodoo3 PCI drivers do work, also VIA PCI SATA & PCI-E - USB are working, but I plugged many sound cards and none is detected. On K6-2/500 machine ISA is reported as bus 0. PCI bus may show up as bus 1 or also bus 0... But on the Ryzen machine - PCI bus goes to much higher numbers: VIA PCI - SATA is IRQ5, bus#10, and PCI-Express to USB is IRQ11, bus#13.

NT4 has no PNP manager so device drivers had to scan for hardware themselves. I wonder if some driver authors didn't bother to scan such high bus numbers because they didn't anticipate that they would ever be used.

Windows NT4 has plug-and-play support; you have to install an .inf file on the installation CD.