Windows 98SE on Modern Hardware

From my point of view, i doubt that Unisound would be solution, its month and half old utlity, which if im not wrong just fixing that for different ISA soundcards you need different drivers, what is annoying, because you have to use config files branches… or edit config files… so unisound is solving it.
Directly in description is also that it is ISA soundcards only and its not working for PCI ones.

PnP - i really dunno if such thing is needed, i never studied PnP specs in details… In my view PnP is just for cards autodetection within OS, which support some hardware changes checks… usually after boot like Win95… is card is not supporting PnP you just have to add it manually or use some Wizard like Add New Hardware in Win9x, which is probably asking some addresses for right values, if some devices is there or not… its same way how Dos HW diagnostics utilities are working.

Old MBs had even option you modern OS with PNP, or set IRQs etc… manually. And when i used manual selection… good for force IRQ 5/7 for Sound Blaster… what is essential… everything worked fine, include sound.

My guess is just that Dos PCI sound card drivers simply check all slots if card is there and if yes load its drivers… no PnP magic used.

Problem would be probably with DMA, that is way PCI soucards are not working on real newer boards. Where are lots of methods how make DMA working - details are here:
https://docs.google.com/spreadsheets/d/1…K4l0/edit#gid=0
https://www.vogons.org/viewtopic.php?f=62&t=24769

And Qemu MB function is probably not good enough to provide / implement some interface to make DMA calls working.

PnP is NOT only for autodetection, it also involves resource configuration. An unconfigured ISA PnP card shouldn’t have IRQ and DMA Channel assigned to it (I think that it is still mapped to an address so MMIO and PMIO should still work). PCI uses a completely different PnP system for resource configuration than that of ISA PnP, but your symptoms are way too similar to those of an uninitialized card, which explains why in DOS your Sound Card is half working, half not. And since SeaBIOS is supposed to not have PnP BIOS support, it makes sense than it may be involved, as PnP BIOS was mainly for ISA PnP but tangentially covered PCI configuration, too.

By default, ISA PnP and PCI Cards have to be configured and assigned resources before they works as intended. A PnP BIOS is supposed to configure the cards to hand them over to an OS that isn’t PnP aware, like DOS is. This is why ISA PnP and PCI Cards for the most part works in DOS (Except the famous ISA DMA). In Windows 98 it works even if lacking PnP BIOS simply because being PnP aware, Windows 98 can configure and initialize the cards by itself. DOS can’t do that automatically, you need to do it manually. That is why there are tools like Unisound, which can initialize ISA PnP Cards in systems that have no PnP BIOS support, so that you can use a more modern Sound Blaster PnP variant in, say, an original IBM PC 5150.
Yes, Unisound works only for ISA PnP cards, so it is not going to help you. What you need to find is if there is any tool similar to that, but that can initialize PCI Cards in DOS instead of ISA PnP. Since PCI has a rather standarized PnP system thanks to the PCI CS (Configuration Space), I think that there should be universal tools to check it.

Check here if you want to know how the PCI CS works: https://wiki.osdev.org/PCI

I THINK that there is an utility known as PCIFind.exe that can display data from the PCI CS in both DOS and Windows, so you could use it in both to see if there are differences. However, I don’t known a good source to download it and never used it, nor saw it mentioned in Vogons or VCFed.



I have absolutely no idea whenever QEMU supports PC/PCI and DDMA (Distributed DMA). It would be wonderful if these could be handled via Chipset emulation, but I don’t know if there is a physical Hardware requeriment at the PCI Bridge level for them.


I know, its opposite to manual assignment, which i covered in last post… so i didnt mention it directly, but it implies from it.

That sound card initialization stuff. This too much variables problem i dont really understand it on low level and that is needed, so i would let it to someone else, for testing you just need only 1 PCI slot or PCI-E to PCI adapter and Dos compatible PCI sound card. On real machine, its all handled by sound card driver, which communicate MB. I never heard any big success story for Dos PCI sound outside usage of vendors drivers… there are some minor successes like Realtek HD is working without any driver with Q2DOS port, some Multimedia players also using some clever libraries which are able to make cards without drivers working…
And there are some minor successes with PCIset here:
https://www.vogons.org/viewtopic.php?f=62&t=61256
but is way from same compatibility with drivers, at least so far.

Otherwise its uncompleted, but Qemu has SB16 emulation within Dos so some sort of DMA has to be already implemented.


I found other annoying thing, Qemu seems to support for cd images only *.iso, format which is only good for data, but it doesnt support multiple tracks, audio cds etc… so most games cd / dvd couldnt be mounted by this way. So only way is copy data on Win98 discs and use some cd mounting tool here.



That is precisely what you should try next to see if you can get Sound Cards working in DOS. However, I can’t help you with that one, is also beyond my knowledge.

You need to figure out if someone at Vogons that already has experience manually initializing PCI Devices in DOS can give you a hand. If anything, you may want to see if you can get the PCI Configuration Space data in both Windows and DOS and compare them to see if there are any differences. That would be the first thing that I would test.

For reference, there are a great deal of custom stuff that was done with QEMU, but requires a developer guru to pull out:
https://www.mail-archive.com/vfio-users@…m/msg03702.html




So far, what are the things that you did NOT manage to get working at least on par with bare metal? The Radeon X600?



These PCI edits - here i want to be just user, if someone will make it working for Qemu and report how to do it, if will use it to. Otherwise its just thing for some Dos Midi musicians. I will wait for proper Qemu solution… because PCem has it already working, Dosbox is also possiblity…some Vmware guy is working on for free… so there are better options… of course that Qemu DOS / Windows combo solution for everything would be better.



I have only Linux related problems:
1) Im not able run Qemu script as normal user, because i cant run TAP networking with user rights, i wrote in older posts.
2) Qemu USB passthrough is not working with my custom Qemu 4.2 build, because it need to mess with some ./configure parameters, because its disabled by default, im using etdev when for new OSes, so i can live without it… i would need it maybe for USB sound cards testing.
3) Rebooting because of not working audio devices - i posted and dmesg logs above.

Some new releases:

PCem16: https://pcem-emulator.co.uk/index.html
There is nothing major, but your newer know is behind lots of undescribed bug fixes, i would be really nice, if would be possible to use same disk images as Qemu. Qemu KVM is now better to Win98x and new games, but PCem is much better for Dos and good for 1995-97 Windows 9x systems… P150 + Voodoo 1/2 or something like that.

Qemu 5.0 released, but again when i look at changelog nothing major:
https://wiki.qemu.org/ChangeLog/5.0

You may also be interesed in this patch that was just recently released. The author has been trying to upstream it so I assume than in 6 more months it would be available in QEMU 5.1.

https://forum.level1techs.com/t/qemu-nat…-support/156494

That is supposed to solve the audio backend side issues, but you still have to perfect the emulation of the Sound Card Devices guest side.

Thanks, for info. So far with new audo sh files parameters, even present AC97 emulation seems to be quite good.

I have found other way how to dump card ROms, its working at least for Nvidia, but i thing that it would be working with ATIs too, its Dos Way.
Navratil system info- https://www.navsoft.cz/ , has it in Tools menu. Im doing it with other machine, maybe it could work with pass-through and Dos machine too…

I had opportunity just quickly test if PCI-E gen 1 videocard will working with modern Gigabyte Z390 board, because previously i tested other cards with Gigabyte Z370 without luck… and its working at least for boot, i havent time to i pass through / not main slots etc etc, i just tested my proven Asus Geforce 6600LE in first slot, if it will give me picture for bios screen.

I will migrate one of my machine to this board, so after i will fix and migration problems (i have lots of OSes, especially MacOS is Pita), or at least majority of them for main OS, i will do more testing.

ruthan
Could you post the demos archive?

Its 10GB or so, it would need some FTP to host.

How about mega.nz?

Do you have experience with it, its really free without credit card etc? How long will files stay here etc. Its new megaupload, so i dont believe that there is no some catch.

15GB, no credit card required.

Im still working on migrating my OSes to Z390 HW Win7+Win10 are ok.
Linux Mint 19.3 and Ubuntu 20.4 are ready. I had to upgrade some old Linux install to new one, which pretty time consuming. I mostly have to migrate them to Vmware, use snapshots… because of upgrade failing…

To go:
OpenSuse - im on last version in Virtual, but i have problem boot it after migration to physical machine, something wrong with disk uuid search from Grub 2. I has some problem to boot from extended partition, but old version booted fines… /etc/fstab is fine.

Arch - i cant restore Grub with boot Boot repair cd - to make virtual bootable, because some new package extraction mechanism, so extraction always fails, when i try Arch boot cd and chroot Arch installation… i have some problem, im unable to run network from command line… So im stuck for now.
Unrecognized archive format


Sabayon (Gentoo rolling)
- i here stuck on some upgrade loop with too old entropy… - Details here: https://forum.sabayon.org/viewtopic.php?..=185654#p185654 there was also some change how packages are synchronized.

Im slowly also working on physical WinXP boot.. it would be great to compare WinXP in KVM and on Physical. I can boot WinXP once, but after some drivers are installed its got classic 0007B not bootable driver error, maybe i have bad Marwell controller drivers…

I though that upgrade of rolling of distros would be more simple, but its not.

I also had change to try Linux again for Main gaming… but it is still problematic:
- i finally had some AfterBurner like HUD - MangoHUD - what is nice, but its working so far, only with i dunno 25% of tested games, details:
Issue: https://github.com/flightlessmango/MangoHud/issues/193 General Info: https://linuxreviews.org/MangoHud
- other annoying thing is half of games are running on wrong, left monitor (1 have 3 - i want to play on middle one), so games have special launch commands for it, few newer one have it in game option.
But im missing some OS / Steam level forcing option for it… so far, i didnt find it, im using Mint 19.3 with Cinnamon and LightDm.

Win98 demo pack:
About demos upload, i have now mega account… but i have to make the package… i would be able make faster pack, but it would need download / upload all at once and its not ideal, so i would have to make some stand alone parts and it needs more time…
There is some stupid problem, its possible on Windows sort files by letters, regardless they are Folders or Files… I would like to create some packages A to F, F to K etc… but without need of place all installer to folders.
Because some installers are in one file (make sense to let them in root) and other are in multiple files, make sense to let them in folders. Package all folders to files, is not good idea, because on older machine, unpacking take too much time.
I would able package it on Linux where is sorter, regardless of files or folders… but there packing sw sucks… i need something like 7zip gui. When i packing something with Caja (Mint filemanager) inbuild packing is slimmer.

Here is package (every pack is stand alone archive) 1 of 5 of Windows 98 game demos:
- its spited by alphabet, i will later update post with other parts, :
A-D : https://mega.nz/file/JI5j2Z6T#JV3uA0fJfk…oH7q2GePSy8Wqp8
E-J - https://mega.nz/file/gcoS1CBL#qsq32tHL_2…tJfDvLKWg2hrMKU
K-O - https://mega.nz/file/dRhBDYwS#f0Tyw88iLb…CBTKVm1v2tLM2Qc
P-S - https://mega.nz/file/sdZEGARS#-J6xxg-oq9…QBclPUn2Szhukd4
T-Z - https://mega.nz/file/NIYnkCSC#M-YTjm0RrU…tC4Dy9e-LjwtDFQ

all archives (7zip) password:
gustav

Demos lists (174), size all together 15 GB, invidual packages have 3-4 GB:


Age Of Empires 2 demo
Age Of Wonder I demo
age-of-empire-3trial-Win98
AgeOfEmpiresDemo
Alien vs P-MarineDemo
alien vs predator 2sp demo
Anachronox-Demo
Arx_Fatalis-demo
Asghan-demo
BALDURs-Gate-demo
Blood2-demo
braveheart-demo
Carmageddon TDR2000 demo
Carmageddon2Demo
CnCgenerals
commandos-demo
Conan cauldron
Crashday-demo
croc dem6
Croc2Demo
CrusaderOfMightAndMagic
Daikatana-demo
Daikatana-katanademo
DarkColony-MagDemo
DarkstoneDemo
descent3demo10
descent3demo2
DescentFreespace-sdemo10
DeusEx Invisible War
Deusex-Demo
Diablo-prereleasedemo
diablo1_demo
diablo2demo
Die by the sword demo
Discipless2_demo
DrakanOrderOfTheFlameDemo
Driver-Demo
Dungeon Keeper Demo
Dungeon Lords-Demo1.5-Win98-Fine
Dungeon-Siege-mpdemo
Earth2150Demo
Evolva-demo
Expendable_demo
Farcry_demo
fifa99demo(english)
FinalFantasyViiDemo
FlatOut2_Demo
FORSAKEN-Demo
freelancer_demo
giants-citizen-kabutor-demo
Gothic1demo-EN
Gothic2-demo
Half-life-1_Demo 1
Halo-Demo-Win98
HARDWAR demo
Heavy Gear demo
Heavy-Metal-fakk2demo102
Heretic2_demo_us
Heroes-Of MaM-Demo
Hexen 2 demo
hexplore-demo
HiddenAndDangerousDemo
HomeWorld-Demo
Hulk_demo_en-Win98
IGNITION demo
IncomingDemo
IncubationDemo
Interstate76 demo
Kingdom-Under-Fire_Demo_Win_EN
Kingpin-DEMO
Kings Quest VIII Mask demo
Knights of the temple I demo
kohan_demo
kott2_demo-Win98
LostPlanetTrialDx9Setup
Mafia demo Win98
MageSlayer demo
Maxpayne-demo
MaxPayne2DemoSetup-Win98
MDK2Demo
MechCommader DEMO
Mechwarrior 4 demo
MechWarrior3Demo
Medal of Honour Allied Assault Single Player
Messiah-demo-Win9x
metal gear 1 strial
midnight-club-ii_1.0-Win98
midnight_racing
Monter-Trucks-Madness-2-demo
MotorHead-1998-demo
mountandblade_0903_setup
Myth2_Demo_180
MYTHDEMO
nascar2003_demo
Need for speed 2 demo
Need For Speed Porsche Unleashed
need-for-speed-iii-hot-pursuit_1.0
Newman Haas demo
nhl1999demo
NHL2000demo
NHL2001Demo
nhl2002demo
nhl2003demo
no-lfife-forever-2_demo
no-life-forever-demo
Nox-demo
operation-flashpoint-demo
Painkiller_SP_Demo_3_Setup
pandemonium 2 demo
pandemonium-demo
pod-demo-3dfx
Postal2_ShareThePain_Demo
punisher_demo-Win98
Pyl-demo
Quake 2 Demo
quake 3 arena demo
Quake II Demo older
quake wars demo final-KernelEXprobably
Rayman2Demo
RedFactionInternationalDemo-Win98
redline-moto-demo
requirem awaiking demo
Resident Evil 2 demo
return-to-castle-wolfenstein_demo-1.0
Revenant-demo
Rollcage demo
Rollcage2demo
RuneDemo
Sega-RALLY
Sega-RALLY2DEMO
serioussam 2 demo
SeriousSamDemo
Severeance Blade of Darkness Demo
ShogoDemo
SilverDemo
Simcity3000Demo
SinDemo
SlaveZeroDemo
Soldier-of-FortuneDemo
Speed Busters DEMO
SpellCross demo Dos
Star-track-EliteForce Demo
StarcraftCDEMO
StarTrek-EliteForce-2-sp_demo
StarWars-Racer-demo
summoner-demo101
SWAT 4demo
system shock 2 demo
Teracide demo
Test Drive 5DEMO
Test-drive-4demo_3dfx
thiefdemo
Toshinden Demo-Dos
Total Annihilation-Demo
Total-Anhilation-kingdoms-demo
TotalWar medieval demo
tresspasser-demo
TUROK-Demo
turok2demo
ultima underworld 1 demo
UltimaIXdemo
undying-demo
Unreal2-demo
UPRISING-Demo
UT2003Demo2206
ut2004-demo3334
utdemo338
utdemo348
vampire_masquerade-demo
Vietcong demo
Warcraft-3Demo
Wheel of Time Demo
Wizzardry8-NetDemoEB
XII-Demo



Update: New version - 234 games + info about used graphics API - SW, D3D,GLide,OpenGL you can find here:
https://www.vogons.org/viewtopic.php?p=938600#p938600

Let me know if its working.
Lots of games would work also with Win95, there is no need for KernelEx or any special updates, beside standart runtimes as DirectX, some Video coders and VB,C++ runtime packages…

Downloaded and successfully extracted. Thank you!

Im still working on Z390 upgrading…

Now i have nice 5 up to date distros:
Mint 19.3
Ubuntu 20.4
Manjaro
Solus 4.1
Fedora 32

I had to get rid of OpenSuse, because its half dead i had problem to boot after upgrade (it was able to find my disk only in recovery mode other bad uuid which was right, maybe because their ancient 4.12 kernel bugs), i spend quite time with it, but it wasnt worthy, same with Arch, Manjaro is better for people like me. I also changed Sabayon for Fedora, because even with help of some people it was not possible upgrade it and when i downloaded new version, it still had upgraded problem and slowest upgrading system which i saw… and even clean system upraded so able to brick system in virtual machine…

I managed to get MangoHud OSD fully working with every game, it just need to try 4 setting, at least on Mint, i dont need it in other distros for now.

But why im writing this is that primary monitor settings not simply working in any distro… lots of games not starting on my primary middle monitor, but just in left corner, on secondary monitor, play in windows is cheap workaround, but not even all games have that. I wonder if some real solution exists i know that some games have some special command for it, but not all.
Same with panels - i need clone of panel (=Windows start bar) on all monitors with shared window list, but it seems like big problem, with desktop work much better i can use each monitor as standalone and move windows between monitors.
With it is one connected problem new icons… like download and windows should be added / open on primary display, other primary display setting is just empty option…

Now im workng on WinXP - new install is fine, but i need to make old one working on new HW too and have some issues - USB networking (must have) and some usb devices / NVME access which are working with clean install are not working - i could life without that, but i want to try.
I also started too mess with MacOS porting.

After that i will place second and third gpu to machine and i will mess with Win98 again.

I finally made KVM working on my main rig, its first time with “modern” GPU, Geforce 730… what is placeholder for 750 TI which would be enough for WinXP and its still passively cooled.

Im still mainly working on other things. I need to make 2 graphics card for with MacOS, now when i add second cards, 3d for games is not working, because system is somehow confused. I found some way how to do it, but so its not done and not trivial, i also tried to Nvidia + ATI (Radeon 7750 - XP compatibile) - bot i got logon screen, what is much worse, that just not working 3D. There people which are using more cards, because of rendering, so someone tried to solve it, but gaming is other matter…

I also strugling with NVME and WiXp in my main XP installation, with clean its working, i dont need it, but i want to give it shot… and i can debug it faster without second graphics can enabled, so its dissabled for now and using only generic VGA driver for main Geforce 1070 which havent WinXP drivers…

So things to make Geforce 730 with KVM working:
- im have problem with Kernel 5.4 i dont play nice with my VIA USB3 controller which i need because of WinXP and not really working community for Intel USB3 driver for anything else that mass storage and keyboard and i would to have nice multiboot without some cable reconnecting…
There is some info https://forum.manjaro.org/t/no-video-sig…sthrough/139485
But i so far dont know what is load the linux-vfio kernel and what is mkinitcipio -P linux-vfio … i havent time to search for it.
There are lots of people with this problem, when hardcore Arch guys , so im now on kernel 5.3 where its working fine… without other machine, where i had it working and new which kernel is working i would be stuck…
Second thing is that with this card, i actually had to remove rom file (BTW rom parser is also not working - i had to use GPU-Z to make the dump), from graphics card line, because otherwise it got just black screen and sounds. Its probably because cards bios is UEFI and using legacy qemu profile… im also at old Qemu 2.11, but there is now Mint 20 beta and it has nice Qemu 4.2 inbuild, so i need only to wait to get full release.

I also today got some Asmedia USB3 controller, i hope that there would be lesser problem than with VIA, its for example not really working with Xbox 360 controller in any OS… that is working for mouse for MacOS was actually example. Shame is that Asmedia has not variant internal headers to case USB panel, because its better for controller cabling, using USB mass storage etc…

I would say, that im at 80, 90% of my target, idea is almost proven (i need to fix multiple GPus in MacOS), but last 10% is always most complicated… After that i will only add one more video cards for Win98.

Now i really feel how big problem is Linux half working multimonitor, for example i add something on desktop, but because primary monitor setting is ignored its actually added on monitor which is now using different input, i would have to switching monitor input just to move the icon… im also dont know why how to have shared Windows list across multiple monitors… i can add panel per monitr, but when i add window list on it… i handle only windows which are actually not that monitor, others are not visible… until i have them to that monitor, so panel is almost useless… I tried lots of desktop enviroments and didnd found one which is working for such things.
Other thing is starting of games, which are no starting on monitor which is again used by VM… I hope that there at least some keyboard shortcut to move game started in window to other monitor, which actually have to drag it by mouse…

Not working drag and drop webpage shortcut to desktop is ablo bummer.