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 Data6) 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 fallback7) 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 hassle8) 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 // reset
stop // Pause
cont // Resume from pause
help // help
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 // 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:
* 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 "" 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