Windows 98SE on Modern Hardware

@ruthan


Zitat von ruthan im Beitrag #140
@XPLives
I think that you trying to search for problems… not way how to solve them. There is not silver bullet solution, you really have only 3 choices how to play 3D Win98 games in higher resolutions (to exclude PCem emulator which can simulate at the best K6-2 at 266 Mhz + 2x Voodoo 2 with fastest todays CPU):
1) back in era old HW
2) new physical machine with old videocard
3) KVM passthrough with old videocard

All of there have lots of disadvantages, for example:
1) You need extra space, machines are usually more noisy that todays machines, some parts are hard to get or expensive, maintenance is hassle, because lots of things are not working with old machine - often no USB boot, often no live cds / backuping tools cd /s… some programs refuse to work because if required higher instruction sets.
2) There is hassle to make it even working… and you need some monitor input switching, extra monitors, bios profiles etc… You can make Windows 98 sound working but you need PCI slot, or PCI-e PCI extension… or USB sound card and working USB. If want to something in safe mode i will need also at least PS/2 keyboard. You can use
3) Main hassle is initial software setup… after that you can run 1 or more virtualized machine along side modern linux and it has advantages… Biggest problem is so far only emulated Dos sound, but its software problem, this can get better quickly and for free in the future.


I have Voodoo 3 PCI but for me its too slow and because nGlide is working i can run GLide games faster on more modern cards and Voodoo 3 doesnt scale well with fast CPU. Win 3.1 - its not games system, i dont know any 3D game for it, you can use it fine with virtualized emulated graphics, its just 2/3 lines change is Qemu starting script. Im not claiming that Geforce 6 is best card, best choice would be probably some Geforce 2/3 in PCI version, which are rare and expensive… maybe, maybe Matrox G400 Max, even Geforce 5 would be much better, there are also Radeon X300- X850 PCi-e which are still quite cheap and available…
Quake 3 is running on everything… even on ARM Linux machines, Android etc, that is why i like to test it… its quite demanding so was nice to show that is able work at 1920x1200 at 90FPS stable… you course are more demanding Win98 games - im lazy to search for them online - but Doom 3 for sure, Gothic II, Unreal tournament 2003 or 2004, if someone will point out some game demos list, i dont mind to test them.

Really only chipsets matters you can search with chipset name on eBay. Otherwise its like packages, it doesnt change compatibility. So find couple cards by chipset and select right one based on other criteria. I have cards, where i never actually have to cared who is original manufacturer or exact type.
There are some high end cards with Aureals or Yamahas, but it will not help with compatibility. Bettter Yamahas has optical audio out, proven is AOPEN AW744L II, someone from Vogons bought and sold couple of hundreds of them.,best Aureal Vortex 2 is probably - Aureal SQ2500 it has digital sound out too.


Old news i have one, already testing its working with Aureals and Yamahas, i prefer Gigabytes because of primary gpu slot selection prefer, mine is ga-x79-up4 rev 1.1 … here is actually some brand info of my HW:
https://docs.zoho.com/sheet/open/8mn7n8e…ails/ranges/B14





#1)
Original hardware always wins. I agree there is no silver bullet for all in one. It may require at least 4 generations…
Some extremely old games pre-DOS bootable cannot run on fast machines or require real floppy drives due to copy protection. You will always have to have multiple generations of machines to run everything 100% properly.

V3 seemed really fast in my test that maybe newer PCI slots have better bandwidth than past. But if your nGlide can work in 98SE then that would be a better method to run on modern hardware bare metal. I think it only works in Windows 2000/XP or later.

GeForce 2 and 3 might be useful for more frame rates for certain older games optimized for it but not recommended using such older driver versions. V3 would be a better card in terms of OS driver support. nVidia came a long a bit late in the game after Windows 3.1 so no driver support exists that I could find. But since Windows 3.1 could use more memory than DOS and multitask and easier to setup knowing how to program in Windows 3.1 might bridge the Sound Blaster sound effects via PCI slot. Maybe soon Microsoft will release the source code.

GeForce 5 I tested but it did have overheating problems so probably better to go with 6 series or go 7 series for Windows 2000. But during 9X era I find Radeon had better graphics support. Certain games do not load the screen properly on some titles like NFS is black screen but audio working and later the graphics comes back.

I think if you can keep testing your X79 and compare to X58 all DOS titles if compatibility is equal or broken that would be a very useful update. You can start a X79 test log here and make a new thread. I would try to help build it together but need to have the same exact sound card, drivers, boot files used to do confirmed testing.

But we do know that without a true ISA slot nothing PCI has can compare in DOS sound compatibility. If possible to bridge this gap or use USB Audio.

There is one DOS game you could test on both X58 and X79 to limit the amount of time to test. If you have Tomb Raider 1 CD and see if digitized speech works on it in DOS on your AV1 or AV2.

Yes I already mentioned one message you wrote says you got X79 so you should be able to repeat all DOS SB Compatibility tests again for differences.

If X79 works properly than possible next test on X99.

New problem with your last link at zoho.

"Unsupported browser version!
Sorry! Zoho Sheet does not support Firefox 52. Please upgrade your browser to access Zoho Sheet without any hindrance."

Maybe find another site to document your data that is still FF 52.X compatible.

#2) Preferred method when possible.

#3) Needs work and probably less compatible than #2. DOS sound issues? Only with pass through? Maybe DOSBOX is the best method for Linux. Do you have Linux that installs to FAT32 partition?


Not for me, i could probably move some my old hw case to my main room and place it beside of my desk and connect it to my main keyboard, mouse and use some KVM switch for it… but still some HW changing would be annoying because of room space problems, cables etc.
If Qemu would be able to work with PCI dos card passthrough it would be clear victory for me… I would be able to use Linux as gloried boot loader and use just 1 main rig for everything from Dos to Win10, without rebooting… So i would be play to play Dos / Win98 games and just by press mouse / keyboard release hotkey i would be able to use modern goodies as Discord, Browser, Youtube etc. It would need some time and work and some temporary 1 TB NVME SSD for data, but i would able to migrate all my phisycal modern OS quite easy to Qemu machines… hassle would be MacOS to regarding some online info its doable too.
With working HDMI swithc input autodetection / switch, it monitor switching would be solved, so only problem would be sound input handling… with modern OS its easy you can again use HDMI sound and D/A convertor to connect ouput to real speaker… But for legacy audion you would have to use some manual audio input switch, or mixer board, unless someone will finnaly make some audio input switching device, which i would for years… or maybe i can use PCI DOs / Windows 98 card with digital audio output… and maybe it would be possible connect such signal into hdmi audio which would be handled by HDMI switch too, but i would need somehow mix DVI picture and that digital audio together… as 1 hdmi video+out input - this is not my cup of tea… but in theory it would work.
For also some good side effects like that XP would run from any NVME disk fine, with any modern Lan NIC etc.
Other problem to solve would be not working input releasing, but i guess that i my rare problem, with my setup.

Nglide


I was surprised, but nGLide is working with Windows 98, but it does. V3 is16 MB card and it has ~2x Voodoo 2 performance or so, so its on PCem level boosted by faster cpu, but in comparison with newer cards, faster cpu cant push it too much. I have also doubts about its videoplayer / Win98 youtube performance. Geforce 5/6 / Ati x8xx card have 128 /256 MB+ mem, its 8+ times more.
Hmm, regarding this video, Voodoo 2 SLI is stuggling with Quake 2 a and 1024x768 to keep stable 60 FPS:
https://www.youtube.com/watch?v=-pnVllXI7vk
Quake 3 1024x768 on Voodoo 3:
https://www.youtube.com/watch?v=PnTTmSFFff0
Its not 60 FPS neither and there are drops down to 20 FPS and its even 16 bit coloros only,
Doom 3 on one Vooodo 2, for Voodoo 3 + A Coppermine 1GHz P3, imagine this choppy slideshow 2x faster and it look awful, its using some custom driver, but still, i remember correctly i tried it on Voodoo 3 and some Durron system and it was slow too:
https://www.youtube.com/watch?v=KQSIT18bOvg

For first 2 tests were done on quite fast cpus, so they are not bottleneck, or not main one.

So if you want to have machine with is able even last games which still support Win98 along side of XP, what i want to for max flexibility, Voodoo 3 is not the way… maybe not Vooodoo 4/5 which are very, very expensive. Other big no, no for Voodoo3 is just analog output, i like clean digital picture.

Windows 3.1 - once again, there not 3D games, so this OS is dead… 2D is working with emulated videocard, these is really nothing to solve, its solved.


Use back in era coolers sucks… it needs big of shelf passive 3dr party cooler for any newer card, expert these which were already designed as passive one, that why i like Geforce 6600LE its passive one and 1 slot card… and its still able to max Q3. Im sure that nvidia had much better drivers support at least for older card in Win98 and there was lots of info that ATI drivers and especially its OpenGL sucks, but i never actually had problems, but other hand i have used it heavily in Win 98 era machine, i have some my set of 20,30 games which i like than there is not problem… But there are people which had much more knowledge about this.



Its not really needed, because i have consulted manuals and chipset diagram is the same as for X58, if my memory serves with same ICH10 sub chipset… i tested some small subset of games and compatibility is same, so im quite sure that it would be same for all other games… Only problem is only 1 PCi slot, so you can use Vortex + Yamaha combo for best compatibility and sound quality… or not without some PCI to multiple PCI adapter - which im not able to find… and you would need to solve some case space problems to house it.


Sense of all my testing and sheet is to show that conclusion is highly questionable… i tested 160 high profile, highly rated games… and i was able to reach 85% procent of compatibility for Yamahas, 88% for Vortexes and 97% with combo… Here are exactly numbers:
https://docs.zoho.com/sheet/open/8mn7n8e…mary/ranges/G39
Some even people are even quite fine even with i865 + SB Live, which is giving you 80% of compatibility.

Its not often working out of box, you have to mess with sound setup and memory setup etc… find out in which mode which game is working, i but you can use my hints in testing set as guide, what you have to setup… i have my ultimate configs and drivers packages, to quickly setup different modes. So of these games simply has some design flaws that are only working with SB on certain IRQ etc, so not all hassle in caused just by old systems etc… I had to mess with Dosbox settings too. Last but not less important, is that all this testing process is just my creation, so there could be some ways how to make even more games working, some patches which im not aware… and people can still making new fixes.
Look at https://www.serdashop.com/OPL2LPT people are still making patches for more and more games.

Its worth to mention that i did big free demos and free games testing package for make testing faster:
http://vogonsdrivers.com/getfile.php?fileid=1572&menustate=0

X99 is dead for dos sound - i tested it got nothing, there not neede internal wiring as on all newer chipsets.

Zoho documents - i cant do anything with that, i dunno if Google sheets are more compatible, you can write to Zoho to keep old Browsers compatible, but they will probably send you away… or you can ask someone for fixing Zoho support in some custom builld, or they are tricks to fake Firefox version. Other way could be some Vmware, VirtualBox, Qemu on WinXP and Linux / Win7 virtual machine within.
Otherwise you can only download my sheets as Excel Spreedsheet -attached.

RuThaNs-Modern-As-Possible-Chipsets-Pure-Dos-PCI-Soundcards-Compatibility-Test-Matrix%2BVmware.xlsx (174 KB)

Hmm, im trying to make working ATI X800,X700 it seems that Linux rom parser have really problem with ATI cards, i again got cat: rom: Input/output error . I have found that GPU-Z is able to download roms from cards, its working for new primary cards, but at least with Win7, this feature is not working, maybe because there is only MS default driver installed.
I know that bios flash utilities has update option to save old rom before flashing, but i would mean place card to other machine boot with it and find compatible utility and do it. For some card you can just download some bios online, but for some im not really sure, if that online bios is right one, some companies web already are dead, dont supporting it… or card is not in Techpower up bios database…
If someone know some other utility for that, i would like to know.

Hmm, so far these (X700,X800) cards arent working, both have same problem, im getting picture through pass through, but its broken. On picture on digital output i got nothing what is quite typical… but usually DVI Emulator is helping. not now. On analog im getting picture, but its not readable, these cards are notorios to be fried, or has hlaf broken memory, but with physical machine, both of them worked few months ago, so i dont believe that i fried both by same way…
There is really refuse to working without rom files…
Device option ROM contents are probably invalid (check dmesg).
Skip option ROM probe with rombar=0, or load from file with romfile=


and there is big chance that rom files which i tried, arent right ones… if wrong rom file can generate such broken picture… i dunno, have to discover it… there is one more thing is point to wrong rom, when i trying to restart machine which error, im getting error: vfio: Unable to power on device, stuck in D3 , i was getting similar error with Nvidia card, after first shutdown with missing bios… Got sing is that during machine boot process is picture on screen changing so machine is somehow running.

These card are listed in system as 2 devices - one as vga card second and display controller (secondary ouput), i past through both, first main one with x-vga parameter second without it… Because this could be problem too.

2020-03-22 23.05.33.jpg

I build Qemu 4.2 for Windows with unofficial 3dfx and sound patches from kjliew with hyper-v and hax acceleration support (Dos only, Windows 98 is crashing when desktop is loading):
https://www.vogons.org/viewtopic.php?p=835963#p835963
So you can play Glide games with emulated graphics (its recommended to use VBE9x 2d drivers) with Qemu on Windows. In both cases you need just copy kjliews glide wrappers to system path or too game directory… You can download wrapper files here:
https://www.vogons.org/viewtopic.php?f=24&t=60950
32bit (i386) version should be a bit faster, exe without “w” at the end should be better, w - version, has some stripped control features, but it should work too.

You can build it for Linux too, if you know or want to mess with Qemu building, because its not easy and im have KVM when i can use nGLide, i will not do it now…

Some more info about Qemu emulated 3Dfx, why it matters… I probably now that there is some Dosbox at least unofficial 3Dfx support like Gullikozas old but awesome build… and there is Pcem, well my advantage is Qemu 3Dfx is that is much faster, so games really running smoothly. Kjliew also working on OpenGL support for Windows 98 so after that only missing thing would be Direct3D support and of course classic Qemu not 3D related bugs.

Here are details:
https://www.vogons.org/viewtopic.php?p=832278#p832278

I dont have too much videocards for which make pass-through sense, because there is no AGP on modern boards and there are only few PCI-E capable of running Win98.
I tried tried some Frakenstein Matrox G200 MMS PCI card - it has 3 or 4 G200 on 1 card and main sense of these is multi monitoring… and its working fine, so probably other Matrox card will too. I has same issues with rom parser for Linux, so it seems that its really working only for Nvidia cards so far…

I interesting thing for this card is that it has even more 4 lspci devices, but they have same ids… when i tried to passthrogh not primary device, i got error, but passthrough only main device is working.

No rom file needed for multiple start, that is nice… and 3D is working fine, i played Quake 3, but its card for 640x480.

2020-03-23 17.47.47-G200-PassThrough.jpg

I ok, i made 3Dfx Voodoo 3 2000 working. No rom file need, i was affraid that on Z170 i will not even boot, but its really problem of only S3 and Cirrus old cards.

As i said better its not highres card… There are maybe better drivers thatn used 1.07 and maybe full version of Quake 3 is better optimalizer thatn Q3 demo 1.11, but this Geforce 6 its running fine with it 90 FPS+ at 1600x1200.
I tried V3 timedemo - first 1 test on 1024x768 and full 16bit details and i got 37 FPS for 1024x768 and 55 FPS for 800x600, so with this card you can play at half resolutions of mainstream Geforce 6600LE… Good is that with nice back in era 1600x1200 monitor you get 800x600 which any pixel interpolation, so picture is clean.
Yeah there are faster Voodoo 3 card 3000 and 3500 but i would not expect more than 25% performance boost and you would get probably better 800x600 than fast enough 1024x768, yeah of course you can low details… but this 1999 card is not simply good enough for more demanding Win98 games… its 20 years when i bought card which im not testing:)

But yeah even emulation is much faster, its probably faster that real cards, Kjliew got Q3 1024x768 running at 300 fps on some laptop with Intel HD.

2020-03-23 18.53.17-3dfxV3-2000-PassThrough.jpg

So we need some summary time.

Passthrough is really working for majority of videocards and soundcards, its actually better than expected. Except "evil" ATI videocards everything else is working. One shame is that Pericom PCIe-PCI is not working… but as Rayer point out, its quite possible that its problem that if my MB already has ASM1083 PCI chip and slot… that there could be conflict and with MB without PCI slot, it could actually work better… that we need to test.
I dont see as big problem that S3 or Tridents and ATI Mach 64 are not even posting with new works, because they are only 2D cards and Qemu has Cirrus 2d card emulation, so its not really loss.

With ATI maybe battle is not lost… but its not working with only some MBs, same there is some patch workaround etc… if someone want to help just google passthrough of old ATI cards, if there are some success stories… i though that ATI Mach 64 worked with Unraid, but you know my memory :frowning:

I still dont understand 1 thing, my system acting as onboard sound cart would be somehow connected to iGPU.

When i added iGPu to passthough vfio-pci list have lots Linux sound… and now i had some sound devices but there some missing Test speakers dialog… and sound doesnt worked… and was getting Qemu errors that hda is not available for emulation of AC97 or SB16… i would swear that it worked fine before, but i had to remove iGPu from vfio list to make it working again.

I would understand if these 2 would be in same IOMMU group, but they arent, or i dont understand how its working, here are lspci -mm and find /sys/kernel/iommu_groups/ -type l outputs, in theory it could be problem of my iGPU problems… I maybe share some PCI-E root or something like that.

Display adaper is 00:02.0 … is IOMMU group 2… soundcard is :1f.3 group 13 where are other on board devices include LAN, but i dont use them for passthrough.

Update: Hmm im still having at least for some boots not working audio problems, when i try to run virtual machine im getting, maybe is also some permission hell, but im not aware of any changes…:

Home directory not accessible: Permission denied
ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave
alsa: Could not initialize DAC
alsa: Failed to open default':<br />alsa: Reason: Device or resource busy<br />ALSA lib pcm_dmix.c:1052:(snd_pcm_dmix_open) unable to open slave<br />alsa: Could not initialize DAC<br />alsa: Failed to open default’:
alsa: Reason: Device or resource busy
audio: Failed to create voice `adlib’
qemu-system-x86_64: Initialization of device adlib failed: Initializing audio voice failed



lspci -mm

00:00.0 “Host bridge” “Intel Corporation” “Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers” -r07 “Gigabyte Technology Co., Ltd” "Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Host Bridge/DRAM Registers"
00:01.0 “PCI bridge” “Intel Corporation” “Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16)” -r07 “” ""
00:02.0 “Display controller” “Intel Corporation” “HD Graphics 530” -r06 “Gigabyte Technology Co., Ltd” "HD Graphics 530"
00:14.0 “USB controller” “Intel Corporation” “100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller” -r31 -p30 “Gigabyte Technology Co., Ltd” "Sunrise Point-H USB 3.0 xHCI Controller"
00:16.0 “Communication controller” “Intel Corporation” “100 Series/C230 Series Chipset Family MEI Controller #1” -r31 “Gigabyte Technology Co., Ltd” "Sunrise Point-H CSME HECI"
00:17.0 “SATA controller” “Intel Corporation” “Q170/Q150/B150/H170/H110/Z170/CM236 Chipset SATA Controller [AHCI Mode]” -r31 -p01 “Gigabyte Technology Co., Ltd” "Sunrise Point-H SATA controller [AHCI mode]"
00:1b.0 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #17” -rf1 “” ""
00:1b.2 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #19” -rf1 “” ""
00:1b.3 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #20” -rf1 “” ""
00:1c.0 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #1” -rf1 “” ""
00:1c.2 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #3” -rf1 “” ""
00:1c.4 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #5” -rf1 “” ""
00:1d.0 “PCI bridge” “Intel Corporation” “100 Series/C230 Series Chipset Family PCI Express Root Port #9” -rf1 “” ""
00:1f.0 “ISA bridge” “Intel Corporation” “Z170 Chipset LPC/eSPI Controller” -r31 “Gigabyte Technology Co., Ltd” "Sunrise Point-H LPC Controller"
00:1f.2 “Memory controller” “Intel Corporation” “100 Series/C230 Series Chipset Family Power Management Controller” -r31 “Gigabyte Technology Co., Ltd” "Sunrise Point-H PMC"
00:1f.3 “Audio device” “Intel Corporation” “100 Series/C230 Series Chipset Family HD Audio Controller” -r31 “Gigabyte Technology Co., Ltd” "Sunrise Point-H HD Audio"
00:1f.4 “SMBus” “Intel Corporation” “100 Series/C230 Series Chipset Family SMBus” -r31 “Gigabyte Technology Co., Ltd” "Sunrise Point-H SMBus"
00:1f.6 “Ethernet controller” “Intel Corporation” “Ethernet Connection (2) I219-V” -r31 “Gigabyte Technology Co., Ltd” "Ethernet Connection (2) I219-V"
01:00.0 “VGA compatible controller” “NVIDIA Corporation” “GM107 [GeForce GTX 750 Ti]” -ra2 “Palit Microsystems Inc.” "GM107 [GeForce GTX 750 Ti]"
01:00.1 “Audio device” “NVIDIA Corporation” “Device 0fbc” -ra1 “Palit Microsystems Inc.” "Device 1380"
03:00.0 “PCI bridge” “ASMedia Technology Inc.” “ASM1083/1085 PCIe to PCI Bridge” -r04 “” ""
04:01.0 “VGA compatible controller” “3Dfx Interactive, Inc.” “Voodoo 3” -r01 “3Dfx Interactive, Inc.” "Voodoo3 2000 PCI"
09:00.0 “Non-Volatile memory controller” “Vendor 1cc1” “Device 8201” -r03 -p02 “Unknown vendor 1cc1” “Device 8201”


find /sys/kernel/iommu_groups/ -type l
/sys/kernel/iommu_groups/15/devices/0000:03:00.0
/sys/kernel/iommu_groups/15/devices/0000:04:01.0
/sys/kernel/iommu_groups/5/devices/0000:00:17.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.2
/sys/kernel/iommu_groups/13/devices/0000:00:1f.0
/sys/kernel/iommu_groups/13/devices/0000:00:1f.3
/sys/kernel/iommu_groups/13/devices/0000:00:1f.4
/sys/kernel/iommu_groups/3/devices/0000:00:14.0
/sys/kernel/iommu_groups/11/devices/0000:00:1c.4
/sys/kernel/iommu_groups/1/devices/0000:00:01.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.0
/sys/kernel/iommu_groups/1/devices/0000:01:00.1
/sys/kernel/iommu_groups/8/devices/0000:00:1b.3
/sys/kernel/iommu_groups/16/devices/0000:09:00.0
/sys/kernel/iommu_groups/6/devices/0000:00:1b.0
/sys/kernel/iommu_groups/14/devices/0000:00:1f.6
/sys/kernel/iommu_groups/4/devices/0000:00:16.0
/sys/kernel/iommu_groups/12/devices/0000:00:1d.0
/sys/kernel/iommu_groups/2/devices/0000:00:02.0
/sys/kernel/iommu_groups/10/devices/0000:00:1c.2
/sys/kernel/iommu_groups/0/devices/0000:00:00.0
/sys/kernel/iommu_groups/9/devices/0000:00:1c.0


I also wonder could be that CRTL+ALT+G shortcut used by Linux/Mate for something else is its not working for Qemu? If yes, how to check it, i know only some shortcuts listing utilities for Windows… I checked Menu - Keyaboard shotcus Crt++ALT+G is not here used.

What is interesting, if i run with Qemu Dos machine without videocard passthrough CTRL+ALT+G is working fine, so its probably KVM or evdev thing.
Update: I test Windows 98 all virtual machine and its evdev thing not KVM one…
Update2: At least with all Windows machine, keyboard release is working, not mouse doesnt…
-object input-linux,id=mouse,evdev=/dev/input/by-id/usb-093a_USB_OPTICAL_MOUSE-event-mouse <br />-object input-linux,id=kbd,evdev=/dev/input/by-id/usb-ZALMAN_ZM-K600S-event-kbd,grab_all=on,repeat=on </i>
I have tried to add same, flags - grab_all=on,repeat=on to mouse line, but its not solution.



The IGP and the integrated HD Audio Azalia Controller are unrelated. I don’t understand what issue you had there.





On command line QEMU, the order in which you input parameters is important. Try putting the Keyboard first, then Mouse second:

-object input-linux,id=kbd,evdev=/dev/input/by-id/usb-ZALMAN_ZM-K600S-event-kbd,grab_all=on,repeat=on <br />-object input-linux,id=mouse,evdev=/dev/input/by-id/usb-093a_USB_OPTICAL_MOUSE-event-mouse </i>




Also, at some point supposedly an AGP-to-PCIe Bridge was announced by Albatron: https://www.tomshardware.com/news/albatr…boards,976.html
…but I’m not sure if it actually became available: https://hwbot.org/newsflash/4883_throwba…_to_pci_adapter
Could actually solve yet another issue considering than there is a lack of high end PCI Cards and first generation PCIe ones.


I as wrote is strange, but my MB is dont behave like that are unrelated… if remember correctly when i add first time Display adapter to vfio and blacklisted it, i lost my sound card on Linux.
Also when i blacklisted HDMI audio (blacklist snd_hda_codec_hdmi), i was losing whole HDA sound too… Which should be other device, if own blacklist command (blacklist snd_hda_intel)

Other strange this is that im getting that sound card errors only in some boot sessions…


Thanks i will try it.
Update: Thanks its working, if use LEFT CTRL+RIGHT CTRL or CTRL+ALT+G and before / after CRTL+CTRL! But, but… who BFU should know that is other magic… at least half-bug…


Thanks, i will check it out… i saw in the past some PCI to AGP adapters, but i never had such thing in my hands… I really depends how work card holding mechanism otherwise these things are MB and cards killers.

Update: Its mystery thing, maybe it exist… but i didnt found any test or place there i could order it… AGP to PCI is slower, but its at least available on eBay - but its expensive.
I contacted some AGP to PCI seller he send me some questionable manual and it seems to be only Voodoo thing and there is no word about other cards… it make sense, because we actually know that Voodoo Agp… actually doesnt support agp features, so adapter doesnt need to be clever.

I just checked some Voodoo 4/5 benchmarks and comparison with Geforce 2 ultra… sometime its faster, but usually it has same or worse performance.
https://www.pcgameshardware.de/3dfx-Vood…pecial-1246582/
https://www.anandtech.com/show/580/7
There are few games when it could give you 1600x1200 60FPS as 1999 3d games as Expendable - also own as Millennium soldier / Descent… There are games where you can get 1024x768 and 60 FPS, but later games can give even that.

I finally had time to test AC97 sound - i used Realtek 3.62 Win9x driver, because it seems that only this one has SB emulation, Windows 98 drivers doesnt.
I tried Doom 2 - slideshow and now sound, Wacraft 2 demo - in setup FX is working, FM doesnt. So conclusim seems to be that Windows 98 Dos sound is broken in Qemu itself, that is not problem of sound card pass through etc… and Qemu would need some patching to make it working.

I tested same Win98 game set as with Sound blaste 16:
Windows 98SE on Modern Hardware (6)
Except Vampire: Redemption sound in all games was clean, no stuttering etc… and Vampire has not stuttering but sound is low quality, im not sure why, because its simply only “feature” of this demo, im used to play full games… But all games have big lag…
I havent time to play with Qemu / Linux audio settings, there are some guides… Are 2 possible results…
1) Its possible on Linux / Qemu level get rid of lag and after than i would have nice and clean Windows 98 sound and except Dos would be nice.
2) There is not fix - if would be sad, so only good solution would be use real sound card passthrough and we can maximaly create some Win98 related sound bug report.

We should also try Qemu on Windows is it has same lag, or it is only Linux problem.

So far im using Qemu starting script without any sound variables, in Heiko tutorial are these lines, im not sure if they are only for emulated HDA and new OSes or not?
export QEMU_AUDIO_DRV=pa
export QEMU_PA_SAMPLES=8192
export QEMU_AUDIO_TIMER_PERIOD=99
export QEMU_PA_SERVER=/run/user/1000/pulse/native


Update: I tested these lines its much better… There is now exact measurement, so i could be wrong it could be now completely fine, because im still using Voodoo 3 which had sub-d only i have to sit elsewhere (because of other monitor) than usually so i have speakers not frond me but at the left side…


Emulated sound is, perhaps, the hardest thing to get right in QEMU. Latest QEMU versions reworked the environment variables and instead uses -audiodev parameters, but since I never used these, I can’t help you with that. Environment variables should still work due to backwards compatibility, but if you’re using modern QEMU versions you may want to check how audiodev is used.

You may want to read this: https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/
I have no idea whenever there is more documentation that is easy to use by non-developers.

Also, keep in mind that most people uses either AC97 or HDA for modern Windows versions. If you’re using SB16 and W9x, you’re pretty much on your own since I doubt that there are a lot of people that used these features.

@ zir_blazer
Thanks i willl check this info. Biggest problem is that my ears arent really some reliable measurement tool, so it there would be some SW way how to print somewhere how big lag is it would be big help.


I found out same thing. SB16 is much worse for Win9x machine and in situation when Dos fallback is not working, it really make no sense to use it for Windows 98.
I still want to use AC 97 with Win98 driver + SB16 emulation for a bit better fallback and Dos support - multiboot , if Windows 98 would handle nice Qemu system with both cards.


I checked this sound article: https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/

You actually can help us… I never got into Alsa vs. Pulse Audio thing, its nice DirectSound vs. Xaudio, OpenAL whatever on Windows. What are differences, what is better for what?

Otherwise article just state that Qemu 4.2 has improved audio…

There is only one interesting line:
qemu -audiodev alsa,id=snd0,out.buffer-length=10000,out.period-length=2500

With description:



Problem is that i dont really understand sound, to know what values are good or bad… maybe someone else does?



ALSA is what provides Software access to the Sound Card. The problem is that only a single application can use the Sound Card via ALSA. Pulseaudio is a mixer, so the standard setup is to let Pulseaudio to have exclusive access to ALSA, then take as inputs all other applications. If you plug QEMU directly to ALSA, then you’re not going to get sound from any other host application, only from the VM. Configuration parameters may also drastically change. I think that most people used Pulseaudio because it was easier to interface with anyways.



Zitat von ruthan im Beitrag #157
Otherwise article just state that Qemu 4.2 has improved audio…

There is only one interesting line:
qemu -audiodev alsa,id=snd0,out.buffer-length=10000,out.period-length=2500

With description:



Problem is that i dont really understand sound, to know what values are good or bad… maybe someone else does?




I don’t understand them, either. Can’t help you there.



Oh, there is something that I just noticed. You say that you have issues with the Sound Card on some boots. I think that you may have a race condition, as the name of the Devices may change during boot depending on the order that they are loaded. Are you blacklisting anything related to any of the Sound Cards? I can’t help you to troubleshoot that, but check whenever you can see if there is a pattern about how devices get named when they work, and if they change when they don’t. I think that race conditions were usually solved by using udev rules, or something like that, but first you have to identify if that is your exact issue.


Thanks for explanation it works, otherwise that i though, i lived that they are 2 different APIs for same thing.


I "love" Linux like errors description downplaying… its just segfault, regression or race condition. It some time working, sometime dont, so its probably some sort of race condition.


Yeah im blacklisting some sound cards, which i used for pass through, but they are not in system now, but there still in black list. And you would say that is not soundcard, but it has at least HDMI audio… and i already wrote how is on my listem connected, so i blacklisting - i915 for iGPU too… I now removed it just to check if problem would be still there, first boot was fine, but its not big proof.


Where to find these names to check?

To main tutorial post, i added part with videocards benchmarks to help you orient in Windows 98 3d cards performance:
Windows 98SE on Modern Hardware (6) // Search for “Win98 videocards benchmarks” string…
Problems is that cards are often compared only with previous generation… if someone know some chart will card from Voodoo 3 to Geforce 6/7 let me know, you can at least try to compare cards through Passmark score.

Otherwise i did some research about Win 98 compatible PCI / PCie cards videocards options, to bypass lack of agp, there are options, but they are often pretty rare, so they could be expensive, if you are not from rich part of world.
- only really widely available and cheap cards are Geforce 6xxx PCI-e cards they are also fastest, second would be ATI X300-x850 line, but there are not working with pass through so far:
6200 LE, 6200 TC,6200,6500,6600 LE,6600 (DDR/DDR2),6600 GT, 6800 LE,6800 XT,6800,6800 GS,6800 GTO,6800 GT,6800 Ultra
- there are of classic options known to everyone as Voodoo 3 /4 /5500 / TNT / TNT2 / Matrox G200 PCI
- Matrox G450 PCI exist
- Matrox G550 PCI exists
- Matrox G550 PCI-E exists
- Radeon 7000 PCI exists, it could be dud for KVM, it will still work fine with physical Win98 install
- Radeon 9250 PCI - exists, it could be dud for KVM, it will still work fine with physical Win98 install
- Geforce 2 MX 400 PCI - exists
- Geforce 4 PCX 4300 PCI-E - exists, it has faster memory clock mighty 666 (where MX400 has 332), but it also has only 64 bit bus.
- Geforce 5 FX 5200 PCI exists
- Geforce 5 FX 5500 PCI exists
- Geforce 5 FX 5600 PCI exists
- Geforce 5 PCX 5300 PCI-E exists
- Geforce 5 PCX 5750 PCI-E exists
- Geforce 5 PCX 5900 PCI-E exists
- Geforce 5 PCX 5950 PCI-E exists

If you found others pleas report, we can make some nice list.