Windows 98SE on Modern Hardware

@ruthan

something I wanted to ask, can you test if NTKERN.VXD of windows ME can work in windows 98? or if it BSODs?

MAKE A BACKUP OF NTKERN.VXD BEFORE SWAPPING

it’s located in C:\WINDOWS\SYSTEM

edit: nevermind, i can test it myself

ME_NTKERN.zip (370 KB)

Now its time for some summary / how to post.

All is done with Win98 SE, but it should work with Win95, Win98 non SE too - untested.
If someone will trying to say that Win98 are not more needed, look and DosFresks compatbility megasheet sheet:
https://drive.google.com/file/d/0B9ZuEpG…nFlZUdLamc/view
I like just run installer and play the game, not fiddle with settings to make it eventually working on more Windows / Wine etc… thats how these games where meant to play…

Here we go:

Prerequisites (details bellow):
a) Check if you CPU, MB is supporting Virtualization - vt-d or AMDs ekvivalent and turn it on in Bios
b) 1 free pcie / pci slot
c) Videocard compatible with your slots with existing Windows 98 drivers
d) Plug card in and check if card is actually working with your machine, any OS or at boot time. You dont need install drivers etc… just check that at least new unknown devices is present.
Unfortunately i have at least one Gigabyte Z370 board which is completely ignoring PCI-E gen1 videocards… I waiting about your PCI-E gen1 and newer MB compatibility reports…
f) Existing modern Linux OS installation or at least 30 GB of free space for it… If you are still not MBR, it could be installed on extended partition, so MBRs max 3/4 max primary partitions limits will not harm you… You can install lots of distros check my disk
e) Get WIndows 98 cd image, i highly recommend to use Win98 image adjusted for booting, otherwise you have to get also some Windows 98 install boot floppy and add it to script (add to starting script -fda /path/floppy.img)
f) ready graphicscard drivers and realtek 8139 network card drivers, proven package is here: http://www.claunia.com/qemu/drivers/index.html
g) Get lots of time and armor yourself by some patience it would take hours or days.


Lets do it:
0) optimal step - get hammer - https://www.youtube.com/watch?v=otCpCn0l…rt_radio=1&t=17 or bigger one you if prefer harder music : https://www.youtube.com/watch?v=NOM2HmxW…b2Xcklc&index=2

Boot into Linux…
1) Boot your existing linux installation, or make new one.
- If dont know which distro to install install Mint - most user friendly, or Arch if you like more control and steeper learning curve.

Heiko video card pass-through tutorial
2) Now is use this KVM / QEMU tutorial, thx Heiko, i read lots of them this is very best one:
https://heiko-sieger.info/running-window…ga-passthrough/

my Win98 enhancements of tutorial:
3) Use tutorial until part 11 when you starting to install Windows 10,
- you can skip:
VFIO drivers driver part (chapter 7 and all other optimal stuff)
- Part 10 - Part 10 – Create Script to Start Windows can read as something which will help you understand qemu commands.
- from part About_keyboard_and_mouse - you need just the end - how to discover devices ides, nothing more we will use other non USB way
- Part 8 - way easier is just create image, i recommend other growable types that qcow like vhd or vmdk (vmware type) these could be mounted even on Windows to easily access and add data.
There is HDD image creating command for vmdk which i prefer:
qemu-img create -f vmdk Win98-System.vmdk 5G // Name is you choice, size max is 30G or 32GB to not hit Windows 98 problematic 32 GB limit, you can add second bigger data hdd for content, after you will install all patches to fix this limit or just resize original image… For Win98 even 1GB is enough
- You also dont need to install ovmf package, its for EFI, but you can.

Modifications for not EFI videocards:
4) Heikos tutorial is for modern EFI videocards, so we will need some changes at the end:
- Part 4 - dont add this line: options vfio-pci disable_vga=1 in /etc/modprobe.d/local.conf
- We need to add x-vga=on parameter to graphics card passthrough qemu line, so results would looks like this:
TBD

Qemu starting scipt
5) Now its qemu Qemu script time, use Heiko how to make script and syntax etc… just replace qemu commands with these ones:
- \ character at the end of lines are also joiners for multi-line command to make it more readable

qemu-system-x86_64 -m 512 <br />-name $vmname,process=$vmname <br />-machine type=pc,accel=kvm <br />-cpu host,kvm=off <br />-smp 1,sockets=1,cores=1,threads=1 <br />-rtc clock=host,base=localtime <br />-parallel none <br />-balloon none <br />-mem-prealloc <br />-parallel none <br />-L . <br />-object input-linux,id=kbd,evdev=/dev/input/by-id/usb-ZALMAN_ZM-K600S-event-kbd <br />-object input-linux,id=mouse,evdev=/dev/input/by-id/usb-093a_USB_OPTICAL_MOUSE-event-mouse <br />-vga none <br />-soundhw ac97,pcspk <br />-device vfio-pci,host=08:00.0,x-vga=on <br />-boot order=dc <br />-usb <br />-hda ./Win98-System-PassThrough-i440fx.vmdk <br />-drive file=/media/Win7_64/VirtualMachines/Win98SE-ENG.iso,index=2,media=cdrom <br />-drive file=/media/Win7_64/VirtualMachines/Win98-Data-Import.iso,index=3,media=cdrom <br />-k en-us <br />-net nic,model=rtl8139,macaddr=02:01:04:03:05:01 -net tap,ifname=tap0

alter your disk image / iso filenames and patches and
-cpu host,kvm=off // Its Nvidia only for, other videocard use just -cpu host
- newer qemu at least 4.2 doesnt support -ballon none parameter, i dunno its new syntax right (maybe -ballon 0 ) now just remove it
- place evdev keyboard before mouse is important, otherwise i was getting stuck mouse cursor within VM (thans to zir_blazer )
- alter your videocard ids:
-device vfio-pci,host=… \ Line
- alter your input devices names: // Its enable you not USB input, its before that USB input, which not working during Windows 98 setup, in same mode etc and its for more modern OSes
- object input-linux… // Lines… This will pasthtough your usb devices as PS/2 ones that is main trick
To find ids, your these terminal commands:
ls /dev/input/by-id
ls /dev/input/by-path
and adjust path depending of results - to full path.
- you can alter sound card line soundhw sb16,adlib,pcspk … to simulate other windows 98 supported sound card (es1370(unproven so far to work in Win98),ac97(proven),gus,cs4231a (unproven, i dunno which card is exactly emulated, i tried few drivers no luck) are options) or pass through real PCI one or USB one… - but do it later after make all other things working…
- usb is optimal you can not need use to use it at all
- net nic… you can alter Mac address… every machine in your network need unique one!
- Drivers and other data import, line:
-drive file=/media/Win7_64/VirtualMachines/Win98-Data-Import.iso,index=3,media=cdrom \
Your need someone import at least network driver if you want to use network and games installers… for this im creating some own iso (one Linux with ISO master) on windows you can use Winimage, WinISO, PowerISO etc.
After installation - where is virtualdisk formated you can all import data right into disk images… google qcow, vmdk, vhdx data import depending on you selected disk image format… From my experience on Windows its quite easy, you can import image to Windows edit it and import it back…
- i dind tested it… too much, why someone would need slower machine… but yeah can adjust cpu speed by adding this parameter:
-cpu XXX
Here are possible values (down to 486):

x86 486
x86 Broadwell-IBRS Intel Core Processor (Broadwell, IBRS)
x86 Broadwell-noTSX-IBRS Intel Core Processor (Broadwell, no TSX, IBRS)
x86 Broadwell-noTSX Intel Core Processor (Broadwell, no TSX)
x86 Broadwell Intel Core Processor (Broadwell)
x86 Cascadelake-Server Intel Xeon Processor (Cascadelake)
x86 Conroe Intel Celeron_4x0 (Conroe/Merom Class Core 2)
x86 EPYC-IBPB AMD EPYC Processor (with IBPB)
x86 EPYC AMD EPYC Processor
x86 Haswell-IBRS Intel Core Processor (Haswell, IBRS)
x86 Haswell-noTSX-IBRS Intel Core Processor (Haswell, no TSX, IBRS)
x86 Haswell-noTSX Intel Core Processor (Haswell, no TSX)
x86 Haswell Intel Core Processor (Haswell)
x86 Icelake-Client Intel Core Processor (Icelake)
x86 Icelake-Server Intel Xeon Processor (Icelake)
x86 IvyBridge-IBRS Intel Xeon E3-12xx v2 (Ivy Bridge, IBRS)
x86 IvyBridge Intel Xeon E3-12xx v2 (Ivy Bridge)
x86 Nehalem-IBRS Intel Core i7 9xx (Nehalem Core i7, IBRS update)
x86 Nehalem Intel Core i7 9xx (Nehalem Class Core i7)
x86 Opteron_G1 AMD Opteron 240 (Gen 1 Class Opteron)
x86 Opteron_G2 AMD Opteron 22xx (Gen 2 Class Opteron)
x86 Opteron_G3 AMD Opteron 23xx (Gen 3 Class Opteron)
x86 Opteron_G4 AMD Opteron 62xx class CPU
x86 Opteron_G5 AMD Opteron 63xx class CPU
x86 Penryn Intel Core 2 Duo P9xxx (Penryn Class Core 2)
x86 SandyBridge-IBRS Intel Xeon E312xx (Sandy Bridge, IBRS update)
x86 SandyBridge Intel Xeon E312xx (Sandy Bridge)
x86 Skylake-Client-IBRS Intel Core Processor (Skylake, IBRS)
x86 Skylake-Client Intel Core Processor (Skylake)
x86 Skylake-Server-IBRS Intel Xeon Processor (Skylake, IBRS)
x86 Skylake-Server Intel Xeon Processor (Skylake)
x86 Westmere-IBRS Westmere E56xx/L56xx/X56xx (IBRS update)
x86 Westmere Westmere E56xx/L56xx/X56xx (Nehalem-C)
x86 athlon QEMU Virtual CPU version 2.5+
x86 core2duo Intel(R) Core™2 Duo CPU T7700 @ 2.40GHz
x86 coreduo Genuine Intel(R) CPU T2600 @ 2.16GHz
x86 kvm32 Common 32-bit KVM processor
x86 kvm64 Common KVM processor
x86 n270 Intel(R) Atom™ CPU N270 @ 1.60GHz
x86 pentium
x86 pentium2
x86 pentium3
x86 phenom AMD Phenom™ 9550 Quad-Core Processor
x86 qemu32 QEMU Virtual CPU version 2.5+
x86 qemu64 QEMU Virtual CPU version 2.5+
x86 base base CPU model type with no features enabled
x86 host KVM processor with all supported host features (only available in KVM mode)
x86 max Enables all features supported by the accelerator in the current host



Optimal add second HDD for Data
6) You can add optimal second drive image by this sub parameter:
-hdb ./Win98-Data-28G.vmdk <br /> Create it by same way as main disk… after adding it to machine, you would need to partition it and format it:
so start command.com
write fdisk:
select it - change disk… bla…
create primary partition full size, enable support of LBA
wait its annoying…
reboot…
Format it through windows explorer right click - format

You can format it through some better tool as Partion Magic too of course.

Other method to add data with fully installed OS
- there is advantage that you are running on Linux, you can install OpenSSH server on Linux or even Windows 7/10 (inbuild) machine, enable it for your user account and on Windows 98 you can use WinSCP 4.x two panel manager for quickly copy data from and on KVM machine, good is that networking si working really fine so it can max 100 Mb/s networking speed and give you ~10 MB/s traffer rate and all without ISO importing hassle, or Windows networking hassles. WinSCP is just working when you network is working.

Remote connetion or second mouse and keyboard fallback
7) Now are ready to start, but… i high recommend one more step and its install Teamviewer or Anydesk (most easy, just download it and click to install, create alias and setup unattended access, set pass world and test connection), or enable VNC or Windows desktop connection, or at least ssh for shutdown virtual or restart machine, if something with input will go wrong, or connect second mouse and keyboard combo.

Cable hassle
8) Check if video cable is connected to card which you want to pass through - if you have only 1 cable do nothing yet.

Straight way to start - lets try to start it - lets reach errors list emptiness (to make Qemu and Thulsa happy)
9) Starting time, open terminal is directory where you have your starting sh script and write:
sudo sh NameOfScriptFile.sh to run it…
Unless you are quite lucky you will get some errors to fix… there is lots parameters, fix them to make script running - To so Vm process to monitor or hint it - you can use htop utility, or system monitor (you need to enable display of processes from other users).
Now you can check second monitor, or switch monitor input… or reconnect monitor… Qemu monitor commands its just ugly command line based replacement for standard Vmware /Virtualbox vms control gui:
https://en.wikibooks.org/wiki/QEMU/Monitor

Now its most important time… if you get picture from second card… you won… your MB and videocard support pass through and you setup it right… If is something wrong comeback to Heikos tutorial.

You should get some info about booting process… select to install Windows 98, if is input working, it should if not return to -object input-linux settings.

Machine restart problem, because videocard is already used
If will getting error during machine restarting that video cards is not ready:
Something like this:
QEMU 2.11.1 monitor - type ‘help’ for more information
(qemu) qemu-system-x86_64: warning: host doesn’t support requested feature: CPUID.80000001H:ECX.svm [bit 2] // this warning is just bug, import message is bellow…
qemu-system-x86_64: vfio-pci: Cannot read device rom at 0000:08:00.0
Device option ROM contents are probably invalid (check dmesg).
Skip option ROM probe with rombar=0, or load from file with romfile=


change its qemu line by adding its rom file:

-device vfio-pci,host=08:00.0,x-vga=on,romfile=/media/Win7_64/VirtualMachines/!roms/Asus6600LE.rom </i>
You can get you roms on TechPowerUP page, or maybe on you card manufactors pages, if they still support it…
Im sure that you can somehow just download rom to file, but dont know how exactly from top of my head… Some people reporting that rom file is not helping… my quess is that they have wrong one… but if its reality, solution is reboot whole machine, or get other card to pass through… But i thing that all Nvidia / Ati cards from this era would be very similar / or same so… it should or should work for all them… and we will quickly know…

Here is how to just download (dump) rom from card in Linux and check if UEFI compatible or not:
a) On Linux:
https://pve.proxmox.com/wiki/Pci_passthr…f.29_compatible
Something cant be done just by sudo, i had to use “su” to become more powerfull important is just create rom file, after that you can use any filemanager to copy it to better place etc… if you copy result into same directory as tool, you can show details by this command (use you rom name):
./rom-parser TNT2M64.rom
I not 100% sure but i thing that this dumping working after you pass through card and reboot with pass through on - i dont mean with Qemu machine on, it has to be down.
b) On Windows
https://www.trishtech.com/2017/07/how-to…inside-windows/ for me its working only for more modern cards… or its not working for dual cards systems - i dunno

Boot Win98 installer and install it
10) Now install Windows 98 as on physical machine.


Windows 98 devices installation
11) After end of installation.

Now its suffering time, mouse will freeze a lot, lots of stuttering and very long lags… because PC is running on ISA level no PCI no, DMA, drivers without drivers.

I recommend to copy RTL8139 drivers from second Iso somewhere to main disk, because i will loose optical drivers access during installation, is not bad idea copy whole Win98 folder from install cd to… because of in-build drivers.

Main devices detection trick
12) Main trick, to make Windows 98 usable… Go to control panel - Device manager, navigate to Plug and Play Bios component with exlamation mark, select update driver and force PCI bus driver on it… Restart.

Now you get devices detection point devices to drivers if will asked for, now copied Win98 folder could be handly. Same as RTL8139 copie driver is for PCI ethernet device.
You will get couple fo restarts its ok. Not install videocard drivers yet, just keep it as standard PCI.
After reboot not forget check DMA for disk and CD rom devices, to get faster disk transfers.

Win98 drivers installation
13) After that install all drivers except videocard will intalled and without conflicts. Install videocards drivers… they could be on CD inbuild or from some mounted *.iso image… reboot.
I made working without it, but you can install intel 440fx chipset drivers:
http://www.vogonsdrivers.com/getfile.php…menustate=30,28

Setup you videocards drivers
14) If something is goes right. You be now able to set higher that 640x480x16colors resolution… and it should works. If its working you won… you can install your programs and games for testing.

15) If you are using sound card withou in-build drivers setup them
AC97 - working driver - http://vogonsdrivers.com/getfile.php?fileid=1319&menustate=0 - it means that last realtek 4.00 to 4.06 are not working, at least 3.41 are, there is also 3.62 whql driver -
http://vogonsdrivers.com/getfile.php?fil…&menustate=36,0 tested to (thx to robertmo from Vogons).
Imnot 100% sure but it seems that for AC97, SB emulation fallback you have to install Win95 - vxd driver, not Windows 98 one.

How to shutdown machine, is something wrong, or shutdown is failing
16) Shutdown, if you machine get stuck at shutdown, or simply freeze, kill it through htop or System monitor or similar utilities… Its you use Qemu system monitor window to and write command: quit or for reboot: system_reset

If you get stuck just ask, more details better and report success stories (include used HW, Qemu version), some Win98 benchmarks numbers are welcomed.

For input releasing with evdev device, use LEFT CTRL+RIGHT CTRL… CTRL+ALT+G is not working alone, or you need to use both.

List of tested PCI cards which are working for me (it could vary base of your MB chipset theoretically, i tested it with GA-Z170M-D3H ):
Geforce 6600LE PCI-E (Asus)
Geforce 2 MX PCI - videocard
TNT2 PCI - videocard
Matrox G200 MMS PCi - videocard
3dfx Voodoo 3 2000 PCI - videocard
Geforce 6600GT 128MB GV-NX66T128D PCI-E Gigabyte - video card with MSI xxx.69.00 Bios, with original Bios i was unable to boot with installed driver - System protection error
SB Live! PCI - Sound card
Yamaha 724 PCI - Sound card
Aureal Vortex 1 PCI - Sound card
Geforce 5500 PCI - videocard
Geforce 7600GT PCI-E MSI


List of Win98 cable videocard, which where i made passthrough working, but i wasnt able to make Windows 98 videocards drivers working:
- problem could be Qemu, HW incompatibility or my Windows 98 skill (big chance)
Radeon X600 PCI-E HP Low profole with DMS-60 connector - drivers seems to be installed fine, but i try to change resolution - i get bluescreen, or boot when i got that graphics driver has problem


List of tested PCI or PCI-E cards are not working for me (it could vary base of your chipset theoretically:
ATI Mach 64 PCI - videocard - machine start segfault
ATI Rage XL PCI - videocard - machine start segfault
ATI 7000 PCI - Segmentation fault
ATI Giabyte GV-RX60P128D - Segmentation fault
ATI X700 PCI-E - videocard - completely broken picture from boot
ATI X800 XL PCI-E - videocard - completely broken picture from boot
Aopen Geforce 6800GT - i never got proper picture from it, last time i got just slidehow in my Linux OS, after card was just plugged in…

Some Win98 videocards benchmarks to help select right videocard for you:
- i know, i know some of these cards are agp only, not PCI or PCIe variant, but they are nice for performance overview anyway
1998-1999 Cards Vooodoo2 to Geforce 256 - https://www.cnews.cz/test-historickych-g…orce-1998-1999/ - use google translate (graphs are international)
Matrox G400 + G400 Max, TNT. Ati rage fury 128, Banshee, Voodo 3, TN2 - https://www.anandtech.com/show/429/6 Phils Retro review: https://www.youtube.com/watch?v=BinfyV_PdSc - its a bit faster that TNT2 / Voodoo 3
S3 Savage 2000 - https://www.anandtech.com/show/410/6 , Phils retro review: https://www.youtube.com/watch?v=tsOiTBZJ19U
Voodooo 3 / Nvidia TNT 2 / Matrox G400 Max - https://www.anandtech.com/show/351/5
Geforce 256 DDR / S3 Savage 200 / V3 / G400Max / TN2 / Ruge Fury Pro/MAXX - https://www.anandtech.com/show/429/5
Matrox G450 review - https://www.anandtech.com/show/617/8
Voodoo 4/5 - https://www.pcgameshardware.de/3dfx-Vood…pecial-1246582/ https://www.anandtech.com/show/580/7
Kyro II / Radeon DDR, Voodooo 5 / Geforce 2MX/ GTS/pro/Ultra - https://www.anandtech.com/show/735/10 , Phils retro review: https://www.youtube.com/watch?v=LuPuuCgciA4
Geforce 2 / 3 / Radeon DDR / Kyro II - https://www.anandtech.com/show/742/5
Geforce 2TI /3/4 (MX) + Radeon 8500(LE) - https://www.anandtech.com/show/875/9
Geforce 4 TI+MX / 5200 / 5600 / + Radeon 9000/9500 - https://www.anandtech.com/show/1080/6
Geforce 5800 Ultra - https://www.anandtech.com/show/1062/16
Geforce 5700/5800/5900 + Radeon 9600XT + 9800 - http://www.hardwarezone.com/articles/vie…1111&cid=3&pg=6 , Geforce 5750 PCI-E: https://hothardware.com/reviews/asus-ext…express?page=10
Geforce 6600GT / 6800GS / 6800GT + Radeon X800 XL - https://www.anandtech.com/show/1849/4 https://bjorn3d.com/2005/02/leadtek-winf…eforce-6800-gt/
Geforce 6800 Ultra / 5950, Radeon 9700 Pro / 9800 XT- https://www.anandtech.com/show/1293/21
Geforce 6600GT/6800 GT/Ultra, Radeon X800/X800 XL / X850 XT , X800 XT - https://www.anandtech.com/show/1558/12 https://www.anandtech.com/show/1567/5
---------------------
Unofficialy supported:
Geforce 7 - https://www.anandtech.com/show/2075/7 https://www.anandtech.com/show/1967/11 , https://www.anandtech.com/show/2080/8 - if you really need to push performance for any cost… and dont care about compatibility. Maybe you can even try SLI:) Or there are 7900 GX2,7950 GX2 abominations. Geforce 7 is also way how to get high-end Geforce 6 card cheaper trough mid range Geforce 7600 GT etc…

List of Nvidia videocards - https://en.wikipedia.org/wiki/List_of_Nv…rocessing_units
List of ATI Videocards - https://en.wikipedia.org/wiki/List_of_AM…rocessing_units

small overview which drivers could be used for which Nvidia cards:
Riva 128 / ZX - only special one drivers, some drivers are on Vogons - http://vogonsdrivers.com/index.php?catid=24
TNT / TNT2 : 2.08-71.84
Geforce 1=256 SDR/DDR : 3.68-71.84
Geforce 2 : 5.32-81.98 so almost full range…
Geforce 3 : 8.05-81.98
Geforce 4 : 28.32-81.98
Geforce 5 : 43.45-81.98
Geforce 6800 line : 61.76 to 81.98 -
Geforce 6600, 6600 GT : 66.94 to 81.98 -
Geforce 6200 : 71.84 to 81.98 -
Geforce 6600LE : 81.85 to 81.98 , so i discovered, that there are official drivers for it.
Geforce 7 line : only unofficial 82.69 drivers

List Win XP+ working cards - its not main goal of this project, but i used them for debugging:
- with these i tested just that im getting pass through picture not whole modern OS 3D acceleration
ATI3450 PCI-E
ATI X1600 PCI-E, its only 1 gen off of Windows 98, but didnt found any Windows 98 success driver hack story.

If you using Newer Nvidia card (Geforce 4+) install oldest as possible driver for best performance and compatibility…
Here you can download them - https://www.philscomputerlab.com/nvidia-…cs-drivers.html // search for card name on page
Proof that is slower: https://www.youtube.com/watch?v=HRhm4aGNI3o

Useful qemu monitor commands:
- documentation : https://en.wikibooks.org/wiki/QEMU/Monitor
quit // hard kill power down of machine
system_powerdown // acpi shutdown, its working with Xp+ you send machine shutdown command, all is shutdown cleanly by the book…
system_reset &nbsp;// reset
stop // Pause
cont // Resume from pause
help // help
&nbsp;help command info // help for particular command
info
info block // Informations about disc devices
info snaphots // List of snapshost
info usb // list of USB devices with reasonable device names
info usbhost // list of all USB devices on physical machine
info version // return Qemu version, but you already can see it after Qemu monitor start
info network // Network info
info pci // list of emulated PCI devices, its good check that right device was pass through to VM…
info mice // info about mices
info vnc // info about vnc, is enabled
info blockstats // info about disk operations, you have stretch console to make it readable… but i thing that still better to monitor this through classic linux process monitoring tools
info history // History of Qemu monitor commands, its for business you can check if someone was naughty…
change // change of floppy disk images, but you can also change vnc setting and other things
change ide1-cd0 /path/to/my.iso // Change cd image
eject // Eject CD image
usb_add // simulation of USB flashdisk, i reallity its create file image for it
usb_del 0.2 // Remove of USB device, numbers of you can get from info usb command
send keys ctrl-alt-f1 // Simulation of key presses , - is just delimiter for multiple keys commands… In documentations are names of keys, some of them arent straightforward
screendump FileName.ext //Make screenshop
commit &nbsp;// If is Qemu started with parameter -snapshot, all change are written on disk
log filename // Change log file, default is /tmp/qemu.log

Not working Windows 98 automatic shutdown - Qemu windows auto close up?
Try to install Intel i440 chipset drivers, this fixed problem for me.

Want to mess with KVM machine remotely?
Yeah because videocard is not virtualized basic, remote desktop to Linux will not help you, can use in-build Qemu VNC, or VNC client as TightVNC (install VNC server and set password) - but it need working videocards drivers (better than default 640x480x16 default one) - so its not working logically in preboot, for safe mode… You can discover machine ip address just by start - command.com ipconfig command… and after that you can connect with VNC viewer to ipadress:5900 port, or you can try to make it working true its hostname (that never is 100% realiable on Windows, especially with Windows 98).
In reverse, you can connect from Windows 98 to modern machine with VNC too, but there is better way, there is Remote desktop client for Windows 98, which let to connect even to modern Windows fine.

Classic Qemu Windows 98 2D virtual without 3D and input passthrough:

WinQemuWin98.png



* You would ignore whole videocard / input pass through things… you still make by some style cosy Windows 98 virtual on Windows or Linux like with Virtualbox or Vmware, just without drag and drop file import support, just remove these lines:
-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 <br />-vga none <br />-device vfio-pci,host=08:00.0,x-vga=on </i>

And adding this one:
-vga cirrus

For Windows you need to replace "&quot; lines joiners with “^” characters…

Of course you will get working only 2D graphics, not full 3D - that is why we acctually mess with video card passthrough.

Note with working fine with Qemu 4.2 on Windows, with Qemu 2.11 at least on Linux you still need that -object input line on Linux to make mouse workings, its just Qemu bug…

Qemu no pass through script example, also good to look at networking:

qemu-system-x86_64 -m 512 ^
-vga cirrus -soundhw ac97,pcspk ^
-rtc clock=host,base=localtime ^
-boot d ^
-hda HDDs\Win98System2-8GB-440.vmdk ^
-hdb HDDs\Win-Data-28G.vmdk ^
-drive file=Isos\Win98SE-ENG.iso,index=2,media=cdrom ^
-drive file=Isos\Win98-Data-and-Drivers-CD2.iso,index=3,media=cdrom ^
-netdev tap,id=mynet0,ifname=TAP -device rtl8139,netdev=mynet0 ^
-usb ^
-k en-us


Usb is not really needed, boot d is still boot from cd, you have Windows 98 boot cd inserted it after 10 second, select harddisk boot anyway, you can just use -boot c from direct hdd boot.

Windows build of qemu you can download here:
https://qemu.weilnetz.de/w64/

There is Windows install issue on virtual Cirrus vga, you get some black screen during install, fix just restart it and continue, if there is even later, just one msdos.sys as text file and add Logo=0.

To make Windows Qemu networking working you need:
- install Tap driver - easiest way is just install OpenVPN package
- select both - your Lan adapter and new tap connection device in control panel networking… create brige
- rename Tap adapter connection to TAP

For full screen use CTRL+ALF+F
For release input CTRL+ALT+G…

Later you can enable some acceleration by these parameters:
-accel hax // HAXM Parameter, not working for me with 4.2 im getting crash when Windows desktop is loaded, but maybe it can work for you, pleas report restuls.
-accel whpx // Hyper-V Parameter, pleas report results.
HAXM need HAXM package installed,
WHPX need Hyper-V enabled - its not play at the start of 2020 well with Vmware on same machine, but they are working on it…
Info: https://www.qemu.org/2017/11/22/haxm-usage-windows/

You can try instead of cirrus , emulate std graphics with universal VBE9x drivers… at least for me and Linux is significatly faster for 2D games, just install 32M version, it would be enough for Win9x.
https://bearwindows.zcm.com.au/vbe9x.htm Beware, that they are probably not working for Win98 Dos Windows mode, Cirrus does.
To fix Win9x Dos mode, you have to do this (force full screen): VBEMP9X driver does not support windowed mode in Windows DOS box. I believe this is documented. You need to create a shortcut to force fullscreen, or run the game from a fullscren DOS box instead of clicking the GAME exe directly.

I also found way how to mount any Windows folder as Qemu as not system drive, so you can for example quickly import data, share Qemu nad Dosbox game games folder etc… Its working just as FAT32 drive.
-drive file=fat:rw:C:\temp\QemuFat32Import,format=raw,media=disk ^

KVM/Qemu Issues:
- SB16 emulation is imcomplete so its spawning some errors to Qemu console, workaround is use AC97 emulation which produce nice clean sound (no Windows 98 Dos mode or real Dos support, Windows 95 driver, you can here SB AC97 fallback, but its not really working in Dos) or real sound cards passthrough. So Win98 experience fine, Dos what is main target of this project doesnt.
- even real Sound card pass through is not working Windows 98 Dos mode or real Dos - with Yamaha 724 i got nothing, with Aureal Vortex V1, i got nothing in real Dos, but working FX within Windows 98 Dos mode, but no FM… - again Win98/Dos combo would be nice, but it is not main target of this project… so there is not yet ultimate Dos / Win98 combo.
- present build of Qemu on Windows has broken sound you need these patches:
https://www.vogons.org/viewtopic.php?p=817904#p817904 from kjliew and be able to built it… which im not able so far… its some coders p*rn… - i build it and uploaded it here + together with 3Dfx patch:
Windows 98SE on Modern Hardware (10)
- Qemu Dos keyboard bugs - it affecting at least Scandisk - arrow key press is doubled, you can usually bypass to use numpad as keys…
- numpad is not working for numbers within DOS, Windows 98 preboot / within Windows 98 its working fine.
- so far not good experience with Windows 98 dos mode for play Dos games within Win 98. - Again not main target of this project - that is Windows 98 Direct3D/GLide/OpenGL gaming.
- when you are using games which are using fullscreen switching resolutions, videocard is often stuck after crash and whole Linux machine has to be rebooted, to fix it… VM reboot is not enough. So videocard reset on Linux level would be nice. That stuck is strange one, after restart of machine, text mode is working fine, but grafical mode should be set to higher resolution (Load Windows 98 desktop) there is only black screen and screen input blinking.


Honorable mentions:
- Heiko for best pass-through tutorial
- zir_blazer - For hints, ideas… and make me to try it with vanilla KVM.
- Rayer for some hints.
- LoneCrusader for that Plug and Play bios = PCI bus hint.
- Unraid for first success full Win98 pass through years ago: https://msfn.org/board/topic/177807-qemu…re-passthrough/
- Spaceinvader One - for first Win98 2d videocard pass through video: https://www.youtube.com/watch?v=rgIF8uG-2G0
- Rloew (RIP) for hints about Windows USB land and sound cards and faster videocards… and its amazing patches for Windows 98 - https://archive.org/search.php?query=cre…olph+R.+Loew%22
- Qemu developers for this most ambitios SW project ever - it can emulate even other architecture - yeah you can run even PowerMac with it… Spart / Misc / Arm developement machines… but it also means lots of bugs and missing things…
- kjliew for Qemu Win audio patches… Look at his 3dfx passthrough - https://github.com/kjliew/qemu-3dfx … its still great on Windows, where full pass through is not available (KVM is Linux only)
- MSFN Last Versions of Software for Windows 98SE thread - for keep info about lastest and best Win98 programs: https://msfn.org/board/topic/105936-last…r-windows-98se/
- VFIO Discord server
- Linux that i can love and hate it at same time…
- nGlide - glide wrapper for not 3dfx cards - http://www.zeus-software.com/downloads/nglide/compatibility Phils nGlide video - https://www.youtube.com/watch?v=1-w1NziFoLg
- MDGx - important Win9x things: https://msfn.org/board/topic/95815-impor…98-seme-topics/ Be carefull, install everything and trying to make Win9x too clever maybe is not better way… if you can use same features without hassle within new OSes.
- How to play Gog and Steam games on Win98 -https://www.vogons.org/viewtopic.php?f=7&t=48490 + https://docs.google.com/spreadsheets/d/1…it#gid=27834725 - there is Win98 tab too in online sheet

If you have some problems to make it working just ask, im from Linux point just BFU, but where is will… It really can be done much simpler way, Wendell say something about his Windows 10 tutorial that it would 16 hour long video for Windows10…
I think that it could be edited to some <1 video and that someone can make some picture guide, but im not that guy. Maybe it could be done with virt-manager, but you will really need some xml editing and i dunno where to as what wild edits are supported what arent… Low when i understand it at low level and learn it hardway im not really in mood try it again through virt-manager, but if someone will try i can help.

It took lot of time so if this helped you, i dont mind some small max 2$ Paypal donation, unless you super rich to have house, card and fast computer…d


No one likes my guide :frowning:


I’m glad that you could figure out most things by yourself. I simply can’t be helpful because you’re doing things in a totally different way than how I do it (For example, if you check my guide, you will see that I use systemd-networkd and some text files to create virtual MACVTAPs, one for each VM), and I just know how to do things my way. Linux gives perhaps TOO MUCH customization freedom as every existing person does things slighty different than every other one.

After all the time you spended to make the damn thing work, are you satisfied enough with the results to consider correct my belief than virtualization with just Video Card passthrough is already good enough to completely supercede bare metal? I can’t see any reason why someone would prefer bare metal over virtualized assuming that there is no compatibility edge case and that you are already confortable with all the Linux and QEMU woes. All the performance related stuff can be quite fine tuned, latency is not significantly worse than bare metal on a fully optimized system (Albeit that takes A LOT of effort, too).
You may want to test more games to figure out if compatibility is as good as the real thing. Seems like the only thing that needs some more fine tuning is the emulated Sound Card, but given than both QEMU, DOSBox and PCem are open source, I suppose that someone can figure out which project has the best emulation and port it to the others. The only thing that was missing was the Video Card and now you have it working.

[quote=zir_blazer]No one likes my guide :(guide[/quote]
Its that your guide is now down… I wanted to check it once more… Problem was that text, was wall of text… Heikos guide is long and have nice ToC nad section and its easily readable that make huge difference, other info was that your guide is from 2016, if someone intest so much time into it, its good to keep it up to date.


In general people are scared new things, read some Nvidia Geforce Now, comments, for example, i now that is streaming and but i could you still get better picture and latency than old console. Before pass through there was hard to argue argument - no 3D - no 3D=no gaming.
Before i installed PCI bus, i was slideshow it can get lots of people scared… later with enabled DMA driver, even with generic VGA driver it got response, with real graphics driver, i can really say difference between passthrough and real machine, i dont feel any additional input lag, but im quite sure that lots of people will be afraid of that. For me its now performance nice, look and disks benchmark picture, 400+ MB/s wasnt before possible with Win98.
Only thing what i can tell now, is sound… i tried Quake 3 all was right… but after that i tried Unreal Tournament 99 demo… and there was 3 seconds lag something like that… In console is spamming some unknow Sound Blaster 16 command… but there are other sound emulation possibilities, sound card pass through or usb sound card options… I simply haven enough time to test it, i thing that something by one or other way its solvable… I simply started to write guide… before some more testing. I other hope is simply newer Qemu, 2.11 is 2 years old, Qemu 4 should have some sound enhancement, i only dunno if official or some custom version…


Exactly i respond same way, before i read what you wrote… Otherwise see issues not working keypad is also PITA and its same even with Qemu 4.2 on Dos, but its strange that with XP+ its fine, its probably some difference between PS and USB keyboard emulation… or old OS dont support some clever not wiring.

You can still help me with some things.

1) iGPU // People which are interested with Win98 only can ignore it, but we already started to messing with it…
I found quite nice guide from Intel:
https://github.com/intel/gvt-linux/wiki/…te-gvt-d-kvm-vm

But im unsure by one thing. I section 4.1.2 is this:
NOTICE: After you change the display card to Intel graphics card, Qemu will comes to black screen, you only can see guest desktop by remote protocal.

and it NOTICE: After you install Windows GFX driver, you can see guest desktop by both QEMU and remote protocol. QEMU display the emulated driver and the remote protocol display the Intel GFX driver. BTW, There is a known issue that some 3D workload cannot run with hardware acceleration while both GFX card is available, so suggest to disable the emulated GFX card in "Device Manager" after you make sure the Intel GFX card is working.

Im not sure what is exactly Qemu display… Could you confirm that iGPU picture work just dedicated card passthrough and can get direct picture from it, not just some remote desktop?

I tried to applicated suggested X /etc/X11/xorg.conf change, but i got scared, because when i rebooted… i got 640x480 desktop instead my normal Nvidias full monitor resolution… Maybe i can simply change resolution, but i wasnt sure, that happened… For Nvidia was Xorg empty…

2) I have some partition backups, so i try some wild things… I would like to install last Qemu 4.2, i found some guides:
http://tabletuser.blogspot.com/2019/05/i…-to-ubuntu.html // Tohle vypada sofistikovane…
https://www.reddit.com/r/VFIO/comments/b…audio_test_now/
https://askubuntu.com/questions/1067722/…on-ubuntu-18-04
I can build Qemu easily, maybe with all targets (im not sure which build target i need and how to setup it, used names are strange soft something), not with one which i really need, but i can… But im not sure how i will do next setup, how i will actually replaced old qemu inbuild in my distro with builded one… Is there some better way that copy lots of files to lots of location manually. There is some checkinstall which maybe to do that… maybe sudo make install from other tutorail do that…
Last thing which i want is replace system qemu links… to some folder on my desktop where i built it.

3) You mentioned now need for extra monitor or mouse and keyboard, should this work for for Win98 machine too? I tried ALT+CTL no luck.

4) Its someone to setup that shareable disk image with QEMU, or its only virt-manager thing?


The first section about QEMU black screening seems to apply to Linux guests only, whereas the second quote is for Windows ones. You may want to read this, which provides far more detail about both Legacy and UPT modes: http://vfio.blogspot.com/2016/07/intel-g…assignment.html

Regardless, I do NOT recommend to do IGP Passthrough (GVT-d), but instead try GPU Virtualization (GVT-g). Here are Intel own instructions about how to create a vGPU instance:
https://github.com/intel/gvt-linux/wiki/GVTg_Setup_Guide
Note that GVT-g doesn’t display to the physical output directly (Which IGP Passthrough does), but either remotely (VNC/SPICE, needs a client), or as a window in the host like if you were using an emulated Video Card (Which I think is what Local Display means). You should still be able to configure QEMU to run at a borderless full screen resolution, in its own X.org session or Workspace, so that it appears as if it owned the Monitor.
Check the GTK one here for GVT-g Local Display: https://github.com/intel/gvt-linux/wiki/Dma_Buf_User_Guide
I’m sure that there should be better guides around.




I have no idea about how to manually compile. Check in whatever distribution you use wiki about how to install the latest packages versions from the repositories, as is impossible that there isn’t a recent QEMU version ready to be installed.




If you’re using EVDEV Passthrough, use Left Ctrl + Right Ctrl. You’re also missing grab_all=on,repeat=on for the Keyboard, like this:

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

Note that there may be issues with stuck keys and ghost presses if you’re using EVDEV Passthrough but not the VirtIO Keyboard and Mouse devices and Drivers, but since these have no Windows 98 Drivers anyways…



I don’t understand what you’re trying to mean with this question.

You can’t share in-use disk images, so if QEMU is running a VM that is using a disk image, you have to close it first before using it somewhere else. At times I have attached the disk image of a VM to another VM as a secondary HD if I wanted to make a mass file transfer without using network. Just imagine Dual Boot inside a VM.

I quickly tested SB16+Qemu 2.11 sound with some games:
- im testing demo, filesharing betwenn Win98 and Samba is not working yet… so im importing data true some iso… so smaller is better. I probably have to install some updates to Win98 for networking, because now when i trying to get to some share, i get dialog only with password but not user name… and when i try right password im getting working password.

- Diablo 1 demo- i know this game very wel, so i could sometime notice some strange sound, but its far from some classic stuterring, simply something from time to time sound old.
- Diablo 2 - its not good, some stuttering some sounds are cut in half
- Starctaft demo - all seems fine
- Wacraft III demo - there is some unwanted pops sound… from time to time…
- I retested Unreal Tournament lastest demo - set sound quality to low - some sound are cut in half or broken, i also installed DX 8.1 update, maybe it matters.
- NHL99 demo- everything nice.
- Deus EX demo again Unreal engine, same problems with Unreal Tournament
-Vampire Masquerade - very small additional crackling sometimes
- Sin demo - sound is low quality
- Serios Sam demo - some additional crackling from time to time and it seem that there is some delay
- Return to Castle Wolfenstein demo - there some addition crackling
- MDK 2 demo - seems fine
- Myth 2 demo - seems fine
- Cliver Barker Undying demo other unreal engine game - big delay
- Dungeon Keeper W95 demo - everything seems fine
- Max Payne demo - some crackling and pistol shoot sound is strange(broken)
- Heavy metal FAKK 2 - demo i got few pops through dialogs

What is good all tested games as worked, no video glitches.

I selected to emulated SB16 because it could provide in theory DOS/Windows 9x combo system, because its nice to have it… But maybe its too high target and some standalone Dos and Win virtual machine would be better.
I plan to test some Dos games too.

Im also using SB16 driver from Windows 98 SE CD, its from 1999, maybe Creative have some better driver.

Im far to be audio guy, im fine with Realtek integrated sound cards for years. Back in era, i for long time machine without sound cards, because it was expensive thing… And i had only for 2 years some SB 16 - Turtle ISP16 or something like that SB 16 clone and cheap speakers… and i dont really remember how sound was like. Later i had SB 128 PCI, which was just fine.
So some not perfect audio thing, could be just SB16 natural thing, because its 1992 or something like that soundcard, which is used for 1999-2002 games.
We really need some Vogons audio experts to review this…

There is some Windows 98 - quality sample conversion rate settings, i had set by default to good, there are 2 more levels, i wonder if it matters.

Otherwise i saw, in Heikos Win 10 qemu script also some Pulse audio variable, im using them for Win98, maybe its mistake… maybe they are just for hda emulation.

Other question is if could get something more that stereo from virtual sound card… it could be catch for some people too.

So lots of variables…

BTW can someone recommend some Win98 updates pack to install? I prefer something less invasive that whole SP3 pack, just updates.


Have you considered having two launch scripts where one uses SB16 and the other something else? You have to change JUST a single line. I don’t know how picky Windows 98 could be if you change the Hardware if you decide to boot with one or the other.


Oh, and you may be interesed in reading this: https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/

Note that I haven’t played around with all the environment variables and decided to just passthrough the Motherboard integrated Intel HD Audio (And Realtek codec) to my main Windows 10 VM, so I get perfect sound at the cost of having my host and other VMs are soundless. This may not be viable for Windows 98 due to the lack of Drivers unless you get an era accurate PCI Sound Card.

@zir_blazer


You already posted this one, i read it… but its from 2016, in some things articles in really unsure and it seems to be for IGPU no other graphics scenario, to it boot linux to some console mode only and usign iGPU for virtual, i understand it right. I already have both mentioned kernel parameters activated.
My scenario is different i have main Nvidia card and i hav unused iGPU to play with it… I thing that is quite valid scenarion with iGPU in Virtual machine you can play, with QXL or other virtual you cant.


It took my while to see that there are actually 2 standard not one, these similar names… It seems that it article is same what i already posted.
What im missing is some info, about minimal QEMU version, there is only some info download last and shiny version of Qemu…


So why is gvt-g better when i has not direct output? By IGP passthrough you mean gvt-d? In theory VNC/SPICE is good for remote desktop work, but could it give me response times <15 ms to make gaming feasible? I dont have trust in that, but maybe its only technical superstition…
Qemu bordless full screen - it seems interesting, but how to setup it?

I dunno what type of pass through it used but, i my memory works i was able to get direct iGPU picture with it.

Qemu compilation / installation:
I finally managed to compile Win version too, on Windows but its linux toolchain - MSYS so it would be probably the same on Linux, only Qemu quide… use it as second best… or not primary, so it didnt use it.


I primary wanted to hear from you as Linux guy, how to simply replace system package by compiled one, i though that you would know… I wrote my suspitions … checkinstall and make install command but im not sure about.

Qemu of Mint is funny, we have old version because of Ubuntu, i dunno how about Debian, but its often outdated in some ways.

I found this request to integrate newer version:
https://forums.linuxmint.com/viewtopic.php?t=295983
But response it would mean, main it outside of Ubuntu inherited stuff and that is last for small minitoring of users…

I asked on Mint forum about installation and i got nothing:
orums.linuxmint.com/viewtopic.php?f=47&t=313663&p=1772120#p1772120

Input releasing


Thanks, so magic parameter, i never saw this one in guide which i red, i will test it. Is there way to use custom key combination?

VIrtio guest:
On VIrtio cs is something names guess installer, i installed it, but i dunno what it is doinging, its Xp+, do you have idea?


Yeah mean share 1 image for multiple machine, i hoped that there is some abstraction to make it happen… So probably shareble in virt manager means only that can you in multiple machine, but are not run in same time.

I already asked for this info… and you answered that it si possible, so it was maybe some misunderstanding…

In the past of mentioned this:


Do you have magic command example? Other do you have any recommendation how to mount vmdk image on linux for direct data access?

I updated SB16 sound quality testing post above, what is nice all Win9x games just working on graphical issues.

I also tested Dos inside of Windows, i tried Doom2 - but its slideshow and sound is same broken like in direct Linux Qemu Dos boot. Quake is the same, GLQuake is running well. I was affraid that Win98 dosbox Nvidia black screen bug, it is not there, details:
https://www.vogons.org/viewtopic.php?f=61&t=55794
But i have noticed before that even Fdisk simple text info, is rendering very, very slowly… My guess that unofficial Nvidia driver bug, not Qemu one… i have to mad such thing before i will start to testing other videocards… I plan to test at least some PCI card and probably also some ATI X600-X800 card.


Is there something better for Win98 remote access than TightVNC? I was using Teamviewer6, but they killed it because some security bla, bla… new version is not more able to connect to these ancient version, maybe you get some older portable one… if it can run alongside of installed version.
Remoting from WIn98 is better, you can install MS RDP and connect to newer machine Win7 fine, but there is problem with files stranges. But it working nicly with Linux, there are able to transfer files, where i use something called xrdp, when i trying to connect to machine, im getting some combobox with connection options, where i can select this one.


Is the same thing. You are going to leave the host headless. Also, you may need to configure some way to access the host remotely (SSH?) before doing that.



GVT-g allows you to create multiple vGPU instances for multiple VMs (Usually either up to 3 or 7) without sacrificing host own video (As usually you passthrough a discrete Video Card, not the integrated one). Local Display is like what you’re used to from seeing a VM windowed, but with full GPU acceleration. Watch this video: https://www.youtube.com/watch?v=7RNvGM7Wkhs

It is possible to remove the borders and menu bar of a QEMU window. It is called "undecorate". If your VM resolution matches the Monitor resolution and it hasn’t been resized, congratulations, you have borderless fullscreen. The guy from the video uses it but I don’t know what he did.
Note that you’re limited by Driver support, you can’t use GVT-g for Windows 98. Windows XP was supported but I’m not sure if Intel dropped it.



Zitat von ruthan im Beitrag #88

Qemu compilation / installation:
I finally managed to compile Win version too, on Windows but its linux toolchain - MSYS so it would be probably the same on Linux, only Qemu quide… use it as second best… or not primary, so it didnt use it.


I primary wanted to hear from you as Linux guy, how to simply replace system package by compiled one, i though that you would know… I wrote my suspitions … checkinstall and make install command but im not sure about.

Qemu of Mint is funny, we have old version because of Ubuntu, i dunno how about Debian, but its often outdated in some ways.




On Arch Linux you have ABS (Arch Build System) which is highly automatic. Only a few times I tried to compile a Linux Kernel or some other stuff to change the default features (As some have to be enabled/chosen at compile time) and it was pretty much changing a single line in a configuration file, then letting the script do the rest: https://wiki.archlinux.org/index.php/Arch_Build_System





I have absolutely no idea about what you’re talking about. There are times when your english is almost impossible to understand. I tried to decode and guess what you tried to say, but after reading it 5 times I gave up.


Zitat von ruthan im Beitrag #88
I already asked for this info… and you answered that it si possible, so it was maybe some misunderstanding…

In the past of mentioned this:


Do you have magic command example? Other do you have any recommendation how to mount vmdk image on linux for direct data access?




You can use QEMU Virtual FAT: https://qemu.weilnetz.de/doc/qemu-doc.ht…ffat_005fimages
I’m not sure if it is still used that way or has been deprecated, since it is rather old. It also has certain limitations since it seems that you’re not supposed to write to it from the host side while it is in use.
Also, for extra modern syntax and parameters: https://www.emaculation.com/forum/viewtopic.php?f=34&t=9342


Of course, exactly such i plan to do.


You are right there is not Realtek HD driver for Win98, its WinXP+


Sorry im a bit confused, does it means that i will lose my Nvidia primary GPu setup, when i will want to use iGPU pass through?
Even when i dont like mainframe relicts, i have ssh in order and im able to use it… I know that you can even tunnel X through it…


I know that, im trying it making it working with Win7.

Virtio guest


im very Sorry, im dis graphic… so sometime i forgot some letters, or replace some with others… there should be… cd… and guest… that by lots of my post are edited, i usually trying to write something without review and later i find out that there error, review everything before, would mean give up to this behavior and im lazy of course. When i open Virtio cd, there is folder guest-agent, when i run it… i dont get any message… i only wondered is some ekvivalent of Vmware \Virtualbox guest tools?

I have found some info here:
https://wiki.libvirt.org/page/Qemu_guest_agent
https://pve.proxmox.com/wiki/Qemu-guest-agent
It really dont seems that it could do match… there some freeze for backuping, but otherwise seems that all these thing could be done through basic qemu monitor too… tehre stop command too, im using system_powerdown through it all the time. I Really dunno if there is any difference…

Vmdk mounting
I found about that is possible through vmware Workstation gui, its not able in Player, but with Workstation have feature parity of this with Windows. I saw some tutorials, that is possible to do it from terminal, so i asked for some recommendation, it could be good for people without Vmware Workstation license… i of course prefer GUI Vmware way… I only had to run it with gksu to mount it from NTFS partitions…

I have found easy way how to install newer Qemu to Ubuntu and its clones…
https://mathiashueber.com/manually-updat…n-ubuntu-18-04/

This 3rd party repository, but there is only 2.12 so no big upgrade, but better than nothing…

Ok i managed to install newest and shinnest Qemu to Ubuntu base systems, by this tutorial:
https://askubuntu.com/questions/1067722/…on-ubuntu-18-04
Just replace qemu 3.0.0 for you wanted version… i tried its working fine. Its will replace system one, there is not unwanted directory mess etc… i dunno really understoop all checkinstall options so i used default for everything…
Goog news is that it could be removed by:
dpkg -r qemu

So you can try it until you will satisfied with result.

Pass through is still working, i only had to remove option -balloon none , it probably changed syntax… i checked docs, but im not really sure how to set it up, is -ballon 0, is ekvivalent of ballon none…

I would take at least temporarly few GBs of space, but after end you can delete temp folder where you downloaded, extracted and build newer version…

I tried enhanced keyboard line for input release, but its not working.
I tried CRTL+ALT,CRTL+ALT+G… left and right CRTL and ALT, so far i got nothing, input is still locked within virtual machine, i will try it with more moder Oses if it matters or not… With Windows version, without pass through its working fine…

Zitat von ruthan im Beitrag #92


Sorry im a bit confused, does it means that i will lose my Nvidia primary GPu setup, when i will want to use iGPU pass through?
Even when i dont like mainframe relicts, i have ssh in order and im able to use it… I know that you can even tunnel X through it…




You CAN do passthrough of all your Video Cards to different VMs, leaving the host headless, but as I said before, this may not be convenient considering that the Intel IGPs offers the only form of GPU Virtualization available in consumer Hardware. While there is some overhead, GVT-g is far more convenient than IGP Passthrough. I would experiment with it before trying passthrough.
You may also want to read QEMU documentation about the matter, if you want roughly the same information worded slighty differently: https://github.com/qemu/qemu/blob/master/docs/igd-assign.txt


Zitat von ruthan im Beitrag #92
Virtio guest


im very Sorry, im dis graphic… so sometime i forgot some letters, or replace some with others… there should be… cd… and guest… that by lots of my post are edited, i usually trying to write something without review and later i find out that there error, review everything before, would mean give up to this behavior and im lazy of course. When i open Virtio cd, there is folder guest-agent, when i run it… i dont get any message… i only wondered is some ekvivalent of Vmware \Virtualbox guest tools?

I have found some info here:
https://wiki.libvirt.org/page/Qemu_guest_agent
https://pve.proxmox.com/wiki/Qemu-guest-agent
It really dont seems that it could do match… there some freeze for backuping, but otherwise seems that all these thing could be done through basic qemu monitor too… tehre stop command too, im using system_powerdown through it all the time. I Really dunno if there is any difference…




The QEMU Guest Agent Drivers comes bundled in the VirtIO ISO. However, as far that I know, it is of very limited usefulness - I don’t even know of any really useful scenario where it may make a difference. It just opens a direct communication channel between the host and the guest, but there are no common applications for it. Thus, it is nowhere near as good as Virtual PC or VirtualBox ones, as those allows for host and guest desktop integration.



As far that I know, there are like a million of different ways to mount VMDK images in Linux, but I have no idea about them since I use LVM volumes or RAW file images.



I have absolutely no idea why it doesn’t work for you. It did for the last guy that had your problem: https://www.reddit.com/r/VFIO/comments/7…ting_to_hotkey/

The method is OS agnostic since QEMU should always trap that key combination. Guest OS doesn’t matter.

I just looked into other emulated Sound cards, it not looks good.

ES1370 - im able to install drivers, after restart im getting that device is working, but i ran some games im getting only noise, or bluescreens.
AC97 - its reported that it worked at least in the pass, i tried driver 400 a 406, from realtek but i got only Code 11 error on device in device manager.
Crystal4231 - crystal4231 should be main chip, but not whole card, there are some crystal 4232-4236 drivers, i tried some no luck… It was detected as Windows sound system, even it not worked too.

Other if they would work, both AC97 and ES1370 have also SB16 emulation. I didnt find anything like info about sound drivers recommended for Win98, there not so much info.

@zir_blazer

iGPU

This one is nice, it seems that i have all ready for legacy iGPu pass through… machine working nice through remote desktop, intel HD driver is here but still not picture from monitor output and legacy mod should had it.
I have one more indication that something not right, vanilla remote desktop is working, but when i use some advanced like Teamviewer and Anydesk to try test real 3D is working, if is enable in dxdiag (classic remote desktop disable these after connection) im getting only broken picture only some small bitmaps chucks… so something is still wrong… it not probably just video input problem… I will try install normal TightVNC server on Win7 machine, if picture would be again broken or not…


Why you are using LVM, i always though that is some "server thing", you have some home RAID? VMDK is nice for multiplatform usage, i can edit in on Win/Linux/Mac combo… with qcow - i dunno how to directly edit in Windows, vhd / or vhdx has some problem on MacOS - but there is bigger change that solution edits.


From link above, i dont really understand what means this

What is that if01 device? In commands some keyboard mouse mix, its some mouse\keyboard combo set with some unified wireless receiver?

I also now with Qemu 4.2 have problem, that my original WinXP USB pass through is not working:
-usb <br /> -device usb-host,vendorid=0x093a,productid=0x2521 <br /> -device usb-host,vendorid=0x060b,productid=0x2312 </i>

Error:
(qemu) qemu-system-x86_64: -device usb-host,vendorid=0x093a,productid=0x2521: ‘usb-host’ is not a valid device model name
I dunno if syntax changed or i compiled it without some usb support.


For now i can bypass it by etdev, but its not ideal.

Im trying to make working PCI pass through PCI-E to PCI Pericom adapter ( Pericom Semiconductor PI7C9X111SL PCIe-to-PCI Reversible Bridge ) it has 2 PCI slots.

But im getting this error for Nvidia TNT 64 PCI:
qemu-system-x86_64: -device vfio-pci,host=09:05.0,x-vga=on,romfile=/media/Win7_64/VirtualMachines/!roms/TNT2M64.rom: vfio 0000:09:05.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy

Im trying Creative SB Live, i same adapter pass through part seems ok (there are 2 devices sound card main and special for gameport), but i have test it in Win98, i have time to do it, because it would mean setup other script with virtual VGA, because TNT2 is not working. I tried without rom file, but it was the same.

I will have to setup, if problem is just with TNT2 or also with other cards…

I added to tutorial post, how to download rom directly from card and how to check if is UEFI compatible or not.

BTW if you have already working whole setup, just add pass through of other card is 20 minutes thing…

Ok i made TNT2 passthrough working i forget to add line to /etc/modprobe.d/local.conf i only add whole devices… i forget it because i made backup of file and made change to backup to original file…
alias pci:v000010DEd00000FBBsv00001458sd00003679bc04sc03i00 vfio-pci

Its actually interesting that if this is not working vfio-pci, but you still added device to list on the end of line:
options vfio-pci ids=10de:0142,8086:1912,10de:002d,1102:0004,1102:7003,8086:a170

that it is detected…

Lots of people have this problem, there is lots of bugs bla, bla its just bad or missing line.