I added to main tutorial post - Useful qemu monitor commands part, it could help to shutdown (with XP+ working nice clean acpi shutdown),reset machine, mount cd / floppy images on the fly, check which devices are emulated, if vnc enabled, what device was pass through etc… its nice for usage and debugging, im using it from the start.
Some new discoveries:
1) I managed to get proper shutdown working it was annoying… i had to no-acpi line from starting script for sure, im not sure if Intel chipset drivers was needed to installed them at the same moment… and they created some intel power management device…
Im adding Win 98 shutdown fixes package to attachment, they were not needed, but they are hard to get and they will not hurt anyway.
2) Sound, AC97 + SB 16 emulation combo is working, qemu line (-soundhw ac97,sb16,adlib,pcspk ). When you install AC97 WDM driver… and use add new hardware wizard for SB16 detection. SB is after that on great IRQ 5 and A200 and 388 - what is im not work for Adlib. In Windows you can select AC97 as prefered device and sound is still nice and clean and SB 16 is just fallback for Dos…
With this Warcraft 2 setup is able to detect both FX and FM, but i still wasnt able to make game working… i got freeze right after Dos4gw exectution… but im getting same even when i disable sound… so its probably some Qemu bug which block to set Vesa 640x480x256 in dos mode, or its Voodoo 3 bug (i doubt it, but through is that i 20+ ago wrote some Dos Vesa engine and standard vesa implemetation not worked with Voodoo 3, something in my memory say me that i had same problem with Voodoo 3 on other machine… Update: I consulted my Dos sound card testing matrix and had same problem with X800, Nvidias and old Ati Mach 64 are fine), or its just some Win98 unpatched bug (not probable)
Dos Windows 98 mode and needs more testing for sure…
Here is still lots thing to test. I want to test more modern Ati cards, they would be nice at least for XP… I also want to test some later HW heavy games to slow that some Win98 games can require quite fast GPU…
ShutdownFixes.zip (1.88 MB)
Here are pictures from sound settings tray icon wizard when Linux audio is working and not working:
AMD 3450 PCi-E passthrough its working, its not Windows 98 card, but it good to finnally have at least one ATI/AMD working card… Its one would be nice for WinXP.
X1600 is working too, so its only 1 generation from X300-X850 line.
Diderius made working unsupported Notebook ATI with Win98 driver just by inf update:
Windows XP 32-Bit and Server 2003 32-Bit on Modern Hardware (277)
I was a bit hoping that some can make X1300-X1950 line make work too. But even MSFN guys failed:
https://msfn.org/board/topic/158640-comp…i-x1250/page/2/
Maybe, someone can try to mess with it again, i will not.
I tested that X800XL which not worked with passthrough with real HW - same monitor, vga switch, cable - VIA Core2 MB and its working fine, at least for boot to Dos, so no working KVM problem is very probably to coursed by half dead card… These are fist ATI PCI-E cards, they are quite problematic… often they have fried memory, they not even working with all DVI monitors without DVI emulator… i tested they with Z370 i also got nothing.
I have some Radeon 7000 PCi on the way with Geforce 2 MX PCI and Geforce 5700 PCI-E but with present europe situation, im near Prague - at scorched hearth of Europe… i will take a time. BTW if here is someone from France, Italy,Spain, Iran,Germany and USA i keep fingers crossed.
I found some better ASM PCI-E adapter its still only 1 slot, but its not card killer… and when you get some mighty 9/10 slots case (yeah they exists, shame is that even we you now get huge case, you get only standard 7 slots) you place it right under MB - look here i already did my homework: https://www.vogons.org/viewtopic.php?p=715991#p715991
https://www.amazon.com/PCI-E-Express-32b…S4F0WQPD0Z6DWYX
I got myself nice Win9x games testing demo package, i love this golden era of gaming when most any big game has demo… and all was installed quickly through nice wizards, without any launcher.
Im not telling that these games are exactly what i want to play, because i already played most of them and on Windows 98, i primary want to play some obscure thing, which are not working within modern Windows, or not without headaches, but its nice testing package, i had quite nostalgic feeling.
Im quite curious about performance of some heavy titles (XP came in 2002 or 2003, lots of games still worked within Win98 until 2005 / 2006 or so), i tried to Doom 3 demo, but it dont some not woking kernel extension error, so i will try full version, i would need probably read some tutorial for it.
Ok this golden era, wasnt so golden… i also got into Windows 98 system protection boot hell and had to recover my disk image from backup… to make backups of system disks! There are small in comparison with modern systems.
Im often able to fix Windows protection boot fail with removing old hardware from safe mode Device manager - before Windows 98 keep all already installed HW here as devices… but not this time, if someone know how to solve it, let me know… i hate to reinstall and reconfigure system with every new HW change, so i changed lots of HW within one installation and its often source of this problem.
After i will done with all testing i can make some nice and clean installation… but not now.
Read a bit this and figure out if it helps with your sound issues: https://wiki.archlinux.org/index.php/Adv…ernative_method
There are instructions there on both identifying the Sound Cards and how to create a config file to set the default one.
Basically, use both aplay -l and aplay -L (Lower case L and upper case L) to check what is currently available.
There is aplay -l list, from situation when is not working:
- i want to use ALC892 Analog
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892 Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 7: HDMI 1 [HDMI 1]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: NVidia [HDA NVidia], device 8: HDMI 2 [HDMI 2]
Subdevices: 1/1
Subdevice #0: subdevice #0
So i created /etc/asound.conf:
pcm.!default {
type hw
card 0
}
ctl.!default {
type hw
card 0
}
As i wrote, its still broken…
But i made screenshot from boot, when it was ok… and there is difference at first device… Subdevices has 1/1 values, when its not working i has 0/1 - so probably some device was not found or something like that.
I figured out that if Sound card priority is the problem, that simply disable Nvidia HDMI audio, could be solution… But its not so easy, because Nvidia HDMI audio is using for some reason intel driver too:
01:00.1 Audio device: NVIDIA Corporation Device 0fbc (rev a1)
Subsystem: Palit Microsystems Inc. Device 1380
Kernel driver in use: snd_hda_intel
Kernel modules: snd_hda_intel
Otherwise Linux sound devices are really mess, i though that just blacklist on or two would be enough, but in this list are lots of modules just for on board soundcard:
lsmod | grep ‘^snd’ | column -t
snd_hda_codec_generic 81920 1 snd_hda_codec_realtek
snd_hda_codec_hdmi 57344 1
snd_hda_intel 53248 9
snd_intel_nhlt 20480 1 snd_hda_intel
snd_hda_codec 131072 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek
snd_hda_core 90112 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek
snd_hwdep 20480 1 snd_hda_codec
snd_pcm 102400 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
snd_seq_midi 20480 0
snd_seq_midi_event 16384 1 snd_seq_midi
snd_rawmidi 36864 1 snd_seq_midi
snd_seq 69632 2 snd_seq_midi,snd_seq_midi_event
snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi
snd_timer 36864 2 snd_seq,snd_pcm
snd 86016 29 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi
That is correct, snd_hda_intel is used by both the integrated Motherboard HD Audio Controller and by the HDMI functions of Video Cards. You may want to blacklist it with a Kernel Parameter then try to make a script executed after booting that automatically loads it again for the selected Devices, and add some sleep seconds between command and command to reduce any chances of a race condition. Binding a PCI Device to a Kernel Driver looks like this:
echo 00:1f.3 > /sys/bus/pci/drivers/snd_hda_intel/bind
As far that I know by default Linux only automatically tries to bind a Device to whatever Kernel module says on lspci. So if you blacklist snd_hda_intel it shouldn’t be picked by any of the other ones.
There is also dmesg, which allows you to see the kernel log. If something fails, you should be able to find if anything is different there, to see if there is an error message about why you’re not getting a sound device.
Thanks, im waiting to fail boot, it took me 6 reboots to get it working again… some update or system change probably messed with it, because before it just worked everytime, or at least most of the time.
Otherwise i found some Windows 98 gaming guide, if someone want really push it… to make most newest games to run… that is not my primary goal, im trying to live without KernelEx and other things which could break compatibility…
https://msfn.org/board/topic/112685-gaming-guide/
I finally did some bigger games compatibility / performance testing.
Initial conditions:
- Geforce 6600LE with unofficial 82.xx driver, i will test Geforce 6600 GT with official driver 66.xx (its first when this card is supported), if it would be better or not, also this card is faster (4 vs 8 Pixel shaders, 300 vs 500 Mhz clock and 400 vs 1000 MHz vram clock ). full Geforce 6800 has 2x time more Pixel and vertex shaders (yeah and lesser clocks) even that Geforce 6600 GT so you can expect much better performance with it…
- you get probably get same compatibility with Geforce 7 cards (256 MB ones, 512 need Rloews magic patches… custom bios etc…), because they are using same driver. i have beefy Geforce 7950GT but it has too big cooler for my testing case.
- all tested games where just demos, its actually good thing for compatibility testing, because demos often working best on typical configurations, so have more “requirements” and full games and more problematic, so its good compatibility test…
- i prefer 60 FPS lock on, because its better than get 45-90 FPS, or so.
- For FPS monitoring, im using old Win9x compatible Fraps 1.9D.
- I used nGlide 1.05 for 3Dfx on Nvidia.
Games/results:
- Arx Fatalis 1600X1200-32bit full details, not solid FPS 60, but its near to it.
- Carmageddon 2 - 60 FPS, it has not resolution settings so it run
probaly in 640x480.
- Clive Barker Undying - 1600x1200x32 - 60 FPS
- Carmageddon 2000 - 1600x1200x32 - 60 FPS, but they are some micro freezes from time to time, but maybe because of data streaming or something like that, it seems to not related to videocard.
- Conan Dark Axe - its probably demo limitation, it runs only in 640x480, so im getting 180-300 fps.
- Darkstone of course 60 fps, but its 640x480 game.
- Diablo 1 +2 - its running fine of course.
- Deus Ex demo - it seems to be limited to 1152x864 - 60 FPS.
- Doom 3 full game patched to 1.3.0, there is broken some backround planet in main menu, other no other glitches - 1600x1200 - 18 FPS in timedemo (timedemo demo1.demo use cache m game has to be started with console), when i disable all setings in advanced i get - 21 FPS, when i try 800x600 all expect antialing on - im getings - 57 FPS, but its 30-100 FPS, when i turn on Vsynch for 60 FPS max - im getting 38 FPS (so results without Vsynch could be really misleading, vsynch results is more valid, because it means more stable gameplay). Even when i set 640x480 and disable everything im getting only - 42 FPS, not great. I had opportuninty test it with Geforce 6600GT with Dual code Pentium E5500 @ 3.5 GHz and i got 1600x1200 60 FPS without AA and speculars… so its big difference, but i also used 66.xx driver and fully patched system - it could make difference too - we will see where is difference, if would make Geforce 6600GT working with KVM.
- Drakan - i cant see the menu items, just background picture…
- Dungeon Keeper - 2d game, its running fine.
- Expandable - crash when map is loading
- Far cry - 1600x1200x32 - very high detail - im getting 25-50 FPs, average are 35. But there are glitches… game is known for them… maybe full version will fix it, maybe older driver is needed…
- Flatout 2 - 1600x1200 when i pushed all filtering to max - i got just 5 fps and 10 fps in tunnels, so this game can use very fast gpu.
- Gothic 1 - german demo, not worked good for me no 3d settings etc, english is newer and fine. This game behave strange in 800x600 and 1600x1200 is the same, with max settings im getting 20-60 fps, often 21 for very long time.
- Gothic II - when i execute main exe, nothing happens… here were are really pushing Win98 world… but it should work (a mean full game, i never tried demo).
- Heretic II - im getting error (Unauthorized access not permitted) when first mission should load, regardless of video mode, even in software… i saw this on other machines to, full version should run fine…
- Heavy Metal FAKK 2 - 1600x1200 - 40-60 FPS, but there some drawing glith so its looks like stuttering.
- Half-Life I - is limitted to 1280x960 in OpenGL ist running 60 fps.
- Half-life II - this version has included Steam, which is not working, so no fun. Its Steam flaw. I there is not Steam demo or patch let me know. Other option would be some no Steam hack for full version.
- Husita - its just czech Warcraft II clone, i didn even knew that is Dos game, but what is good its using Dos 1024x768 vesa mode and its running fine, without sound, i didnt even tried sound…
- HomeWorld - it doesnt matters which mode i setup, mouse is very lagy and game too.
- Nhl99 - its 2d only so its fine, sorry hockey is our national obsession
- NHl 2000 - it cant find 3D card so no fun…
- NHl 2001 - it cant find 3D card so no fun…
- NHL 2003 - its running in 640x480 - 60 FPS
- Incoming - only 640x480, 60 FPS.
- Kings quest VIII - its seems that this game run in 15 FPS by the design in all 3dfx,Direct and software mode, in full version, i hope that it is fixed. I played it before and it seems to be fine… but its 20 years. Funny is that i was getting the same even with trilinear filtering and low details even in 1024x768. 800x600 lowest version i got 40 fps, and 640x480 and mid details finally 60 fps. Probably not best optimalized games, but there is lots of effects. You can start game once per boot, because of copy protection- for demo?
- Knights of the Temple II - this game could be pushed to 1600x1200 and Ansitropic 16x - after that im getting 15-20 FPS in starting scene.
- Max Payne - 1600x1200, 60 FPS
- Mdk 2 - 1600x1200 Max detail - OpenGL - 60 FPS
- Medal of Honor - 1600x1200- there is insane range 15-90 FPS, probably because of stupid scripts, mostly it is 50 FPS+
- Myth I- 3Dfx mode 640x480 through nGLide, fraps is not working, but its smooth.
- Myth II - 1600x1200 max - OpenGL -90 FPS but big glitches, Direct3D -50-60 FPs
- Quake II - 1600x1200 - 60 FPS.
- Painkiller - 1600x1200 max - 15 FPS, 800x600 low - 40-50FPS.
- Quake III - 1600x1200 max - 90 FPS.
- Return to Castle Wolfenstein - 60+ FPS
- Serous Sam - 1600x1200x32 Max - 60 FPS
- Sin - 1600x1200 - 60 FPS
- Starcraft - 2d only, smooth
- System shock 2 - there is max only 1024x768 resolution - 60 FPS
- Unreal Tournament 99 - its know that OpenGL is broken in demo. Direct3D is giving me only 1280x960, but when i set Glide first to 1600x1200 and change through start up wizzard to Direct3D - i got 1600x1200 - 60FPS.
- Unreal Tournament 2003- 1600x1200 all max - 25-50 FPS, Amandus map, with lesser detail its would be fine.
- Unreal Tournament 2004 - 1600x1200 all max - 25-70 FPS - only death mach map, in action 25-35fps.
- Turok - it has only 3dfx mode, so no Fraps, its only 640x480, but its smooth.
- Warcraft III - 1600x1200x32 all max - at least in first mission 60 FPS.
Results as excepted, same i would expect on physical Win98 machine, so Win98 compatibility is not crippled as Dos one.
There are dmesg outputs.
What is interesting is that even when its working im getting some red sound related messages:
hdaudio hdaudioC0D2: Unable to bind the codec
snd_hda_intel 0000:00:1f.3: couldn’t bind with audio component
Other strange thing is even when its not working… when i start AlsaMixer, both sound device are there as seems to be fine.
Except these 2 states - working and not working, i was able to reach 3 - only Nvidia Hdmi sound device available and working in Sound settings panel… and if im not wrong (im not 100% sure, that wasnt reboot between that, but not thing so) after i started Qemu… intel HDA… appeared later in this panel and sound worked.
Update: This 3 state - appearance of Intel HDA after execution of Qemu machine which is using it confirmed.
dmesh-WorkingSession.txt (72.7 KB)
dmesg-NotWorkingSession.txt (72 KB)
Some news… With Gigabyte 6600GT.
Good news is that passthrough is working in general, but there are some hooks…
I made XP working fine, even Steam with stoped XP support is working thanks to msfn people - just get and extract… - steam_201901* package…
https://msfn.org/board/topic/177702-stea…comment-1153315
https://msfn.org/board/topic/180570-can-…comment-1172493
But news… i tried to make this card working with Win7 - but i wasnt able to get any picture that just glimpse of Windows 7 boot screen logo and after that black picture and Win7 boot sound… but im not able to even connect to it remotely, so i dunno what is work. I cant also get Windows 7 install picture, im getting just text mode graphics - im quite sure than Qemu starting parameters… are same for Xp, i even tried clean disk image etc…
I also discovered that Qemu errors, could be missleading… i was getting error that some virtual disk image wasnt found… but actuall error was that video card bios rom file wasnt found because of some special character within its name…
Other problem is output, with my HP monitoring when i use DVI output i other get just black screen preboot… i know that my HP monitors have very slow output setup updates… but this i dont thing that is only problem, analog output is fine.
Windows 98 - it tried to make Geforce 6600 Gt with old disk images, but i never other that 640x480x16 graphics mode working… with older drivers that unofficial one and even with it i later got stack on Windows protection error hell, regardless of used disk image… some older should work, there wasnt too much HW changed, but they didnt… so im trying to make clean install working.
I also discovered other problem… when you install Windows 98 SEwith 2 disk images, installer (enhanced able to boot from CD directly) is not clever enough to work with them… and it except that cd - would be disk D, you have to temporary remove second drive image.
I have also some theory that Geforce 6xxx are supported by other drivers… but only if you are using AGP variants… and Geforce 6xx PCI-E are supported only by unofficial drivers, if this would true… is compatibility limitation… and it means compatibility with Geforce 7 would be probably same as with Geforce 6 and you can get with them better performance.
I really dunno if problem with Geforce 6600 GT is caused by its bios… if yes… i made dont have last one… because even than… gigabyte could simply has older - worse bioses that Asus, or Qemu simply to dont play nice with them… I never was fan of Gigabyte cards, except passive cooling support, they was always worse that any proper band… i wanst low end as Inno or Manli but still. My test X800 was Gigabyte too…
I have a pci-e gigabyte 6600gt too - the dual slot version with the massive heatsink
It works in windows98, but this is on real hardware, not QEMU
Which driver you care using? There shouldnt be difference between Qemu and real machine, for such things…
With physical machine i made Geforce 6600 GT working with Nvidia 66.xx official drivers, so PCI-E card dont need that unofficial beta driver hack, that is good.
I installed even clean Qemu machine, but with this card, im getting still Protection error hell… so there is some Qemu bug… or i needs some Windows settings / update, because machine when i tested it fully updates with KernelEx etc… my new install is just Vanilla install with few patches and runtimes for games…
I also made Doom 3 working - you need vanilla install, 1.1 update or 1.3 and there are Win9x fixes, as far is i know, there is not fix for last version 1.3.1. On pHysical machine with Pentium E5500 dual core @ 3.5 Ghz - i got it working with 1600x1200 ~60 FPS, with disable Antialising and Lens flares, timedemo gave my 57 FPS. Time demo command:
timedemo demo1.demo usecache
Update: added to previous benchmarking results - Geforce 6600LE results and Geforce 6600GT with other non virtualized machine, its big difference.
Here are the patches: // Search for Win9 text
https://www.gamecopyworld.com/games/pc_doom_3.shtml