VOGONS


QEMU 3Dfx Glide Pass-Through (WHPX/KVM works!!!)

Topic actions

Reply 360 of 377, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

@ruthan You would probably be better off using a 1gb+ ram drive for the OS drive image or as a block device for better performance. Both worked me with Linux host and XP and win98se guest. This seemed to make a bigger performance impact by far than custom compile options.

Reply 361 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-05-13, 05:27:

@ruthan You would probably be better off using a 1gb+ ram drive for the OS drive image or as a block device for better performance. Both worked me with Linux host and XP and win98se guest. This seemed to make a bigger performance impact by far than custom compile options.

Well i have enough ram and last SoftPerfect free Ramdisk installed, but DOs or WIn98 never was disk heavy, is there really big difference? I have enough place on even on NVME drive.. but im during Qemu so far from HDD as most of my games.

Other interesting which thing tested someone Unisound ( Universal PnP Sound Card Enabler for DOS v0.70c (UNISOUND) ) with Qemu DOS SB emulation? It could maybe fix that annoying not working SB driver initialization problems..

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 362 of 377, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

@ruthan It's faster than nvme on at least pcie 3.0. Every OS I tried (98se, 2k, and xpsp and xpsp3). It worked like normal and took noticibly less time to install than a pcie x4 nvme drive. Also responsiveness is better. App installs take seconds. Ive heard of OSx16 Wich is USB and dos based and has USB sound drivers.

Reply 363 of 377, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

Also the VMware drivers does load and play unreal tournament , they don't work in 256 or 16 bit mode and no 640x480 support.

However the few games that did not need that I tried worked. Full throttle, unreal tournament and a random shareware game outbound.

Are there any 3dfx games that support 32bit color? Just curious if there's a case where the VMware driver and 3dfx could work together at the same time.

Reply 364 of 377, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-05-13, 22:23:

Are there any 3dfx games that support 32bit color?

Glide3x PIXFMT extension is required for Glide games to support 32bit color. No native Glide games were known to query and use it. It was used by 3Dfx OpenGL ICD for VSA100 but OpenGL was another area that caused the downfall of 3Dfx where NVIDIA excelled. For games supporting 32bit color, you do not want Glide for it. Use OpenGL or Direct3D. QEMU MESA GL pass-through offers a much better OpenGL from 3Dfx OpenGL ICD through Glide. You can play FarCry and UT2004.

Reply 365 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-05-13, 22:09:

@ruthan It's faster than nvme on at least pcie 3.0. Every OS I tried (98se, 2k, and xpsp and xpsp3). It worked like normal and took noticibly less time to install than a pcie x4 nvme drive. Also responsiveness is better. App installs take seconds.

I know that Ram access is much faster, but disk traffic for these OSes is so small, that are should be noticeable difference between NVME or RAMdisk both are very fast for such small traffic, unless some Qemu shenanigan are in the play.

Ive heard of OSx16 Wich is USB and dos based and has USB sound drivers.

Im hearing about it first time, i will check it. Working USB dos soundcard would be nice. In Windows 98 is USB audio officially supported for Win9X apps, its usually working, but i so some strange things like working FX or FM unfixable problem (except reinstall) because of some MS virtual proxie sound drivers problems.
Update: Here is some info - https://gryftech.wordpress.com/category/usb-sound-card/

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 366 of 377, by RayeR

User metadata
Rank Member
Rank
Member

Aha, this OSx and the driver is not related to Mac OSX 😀 I have to look closer, don't remember it from the past... Question is what USB U/OHCI controllers are supported on new MBs. I doubt it can handle new xHCI based boards with USB3.0 only...

BTW 3Dfx voodoo 1-3 chips was designed for 16bit color model in 3D that simplified the HW design, save VRAM and improved performance over chips using 32bit colors so as Glide was proprietary designed to work close with 3dfx no 32bit colors was needed.

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 4GB DDR3, 128GB SSD, GF7900GT, SB Audigy + YMF724F + DreamBlaster combo

Reply 367 of 377, by RayeR

User metadata
Rank Member
Rank
Member

I was able to boot the disk image via GRUB4DOS:

title OSx16
#CHS: 150,14,40
map --mem (hd0,0)/OSX16.IMG (hd0)
map (hd0) (hd1)
map --hook
chainloader (hd0,0)+1
rootnoverify (hd0,0)

but after executing OSx32c it halted during detection of my EHCI (it halted sooo hard that even pressing reset button doesn't do anything and I have to press power button).
Has some someone else a better luck on his PC? I'm curious how well it works...

osx32c_hang[1].png
Filename
osx32c_hang[1].png
File size
25.26 KiB
Views
137 views
File license
Public domain

Gigabyte GA-P67-DS3-B3, Core i7-2600K @4,5GHz, 4GB DDR3, 128GB SSD, GF7900GT, SB Audigy + YMF724F + DreamBlaster combo

Reply 368 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I finally tried Windows 98 3Dfx acceleration - new build qemu500-system-i386_glide_sdlaudiofix_minimal2.exe , but im unable to make it working, i dunno maybe wrong games, but probably some bad setup.

Win10 1909, CPU 9600KF, Nvidia 1070, last drivers.

Im using this starting line, so far without any HW acceleration to see difference later:
- im not sure, if cirrus is possible to use, or i have to use generica Vesa driver - from my experience its unstable even for basic desktop work, cirrus is stable and its sort of Qemu default.

qemu500-system-i386_glide_sdlaudiofix_minimal2.exe ^
-m 512 ^
-vga cirrus ^
-soundhw ac97,pcspk ^
-display sdl ^
-rtc clock=host,base=localtime ^
-boot c ^
-hda D:\Games\!Emulators\Dos-QEMU-Win98SE\HDDs\Win98System2-8GB-440-AC97.vmdk ^
-hdb D:\Games\!Emulators\Dos-QEMU-Win98SE\HDDs\Win-Data-28G.vmdk ^
-drive file=D:\Games\!Emulators\Dos-QEMU-Win98SE\Isos\Win98SE-ENG.iso,index=2,media=cdrom ^
-drive file=D:\Games\!Emulators\Dos-QEMU-Win98SE\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

I have copied fxmemmap.vxd + Glide files (dll) to C:\Windows\System.
Im using file from 2020-03-09(modified) or 2020-03-17 (Created), im thing that they are last one.

Here is my dgVoodoo settings:

Screenshot 2020-05-17 20.50.10-dgVoodooGeneral.png
Filename
Screenshot 2020-05-17 20.50.10-dgVoodooGeneral.png
File size
46.81 KiB
Views
119 views
File license
CC-BY-4.0
Screenshot 2020-05-17 20.03.48-dgVoodoo-Glide.png
Filename
Screenshot 2020-05-17 20.03.48-dgVoodoo-Glide.png
File size
49.07 KiB
Views
119 views
File license
CC-BY-4.0

I everythime copied all 3 Glide dll to game folder, maybe i have to copy, only one, but which one?

Tested games:
Quake 2 demo, it freeze right after start - so i have not possibility to switch from Software rendered to GLide.

Screenshot 2020-05-17 20.03.22-Quake2.png
Filename
Screenshot 2020-05-17 20.03.22-Quake2.png
File size
9.34 KiB
Views
119 views
File license
CC-BY-4.0

Quake 3 demo, game is not initialized, some problem with graphics card setup.

Screenshot 2020-05-17 20.05.30-Quake3.png
Filename
Screenshot 2020-05-17 20.05.30-Quake3.png
File size
37.11 KiB
Views
119 views
File license
CC-BY-4.0

NHL 2000 demo, i can it setup select Glide at all.

Screenshot 2020-05-17 20.13.23-Nhl.png
Filename
Screenshot 2020-05-17 20.13.23-Nhl.png
File size
40.3 KiB
Views
119 views
File license
CC-BY-4.0

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 370 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I have right ones, i checked date in Win98, so there dates a bit off.. i checked same files on modern OS are dates are 14th march.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 372 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Is it working for you? I run it in Win7 but is the same, dlls replaced once more, i manage to get Q2 ingame, that strange aspect window is for some reason used 320x240.. when i switch to 640x480 aspect ration is fine, but only software rendering is running, im not able to switch to 3dfx or OpenGL, i dunno maybe Nvidia problem?

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 373 of 377, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
ruthan wrote on 2020-05-17, 19:02:

I have copied fxmemmap.vxd + Glide files (dll) to C:\Windows\System.
Im using file from 2020-03-09(modified) or 2020-03-17 (Created), im thing that they are last one.

ruthan wrote on 2020-05-17, 19:02:

I everythime copied all 3 Glide dll to game folder, maybe i have to copy, only one, but which one?

Could you please at least have some sense of mind between HOST vs GUEST?
Putting the 3 Glide dll from dgVoodoo2 to game folder IN THE GUEST?!! 😵 Even if there is a perfect Voodoo1/2/3/4/5 implementation in QEMU device emulation, they won't work for dgVoodoo2 because of DirectX 10.1 as the minimum requirement.

robertmo wrote on 2020-05-19, 00:19:

i would place fxmemmap.vxd in game's folder too

Nope, that's wrong. Guest wrapper DLLs and kernel drivers for the GUEST stay in C:\Windows\System for Win9x/ME. Host wrapper DLLs such as dgVoodoo2 stay in the HOST such that QEMU can find them.

ruthan wrote on 2020-05-17, 19:02:

NHL 2000 demo, i can it setup select Glide at all.

This is a well-documented, known fact that EA Games (FutureCop, NFS series etc.) with 3DSetup scan PCI bus to detect Voodoos. It does not work, but one can apply the registry fix manually to select 3Dfx Glide drivers. This is the same for Gulikoza DOSBox Glide pass-through or running the games on modern systems using nGlide. Look at nGlide compatibility page for an example of the registry fix.

Reply 374 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Could you please at least have some sense of mind between HOST vs GUEST?
Putting the 3 Glide dll from dgVoodoo2 to game folder IN THE GUEST?!! 😵 Even if there is a perfect Voodoo1/2/3/4/5 implementation in QEMU device emulation, they won't work for dgVoodoo2 because of DirectX 10.1 as the minimum requirement.

Im using virtualization for 15+ years so i now difference and it my post was what i add to guest and host. Because its not documented in 1st post or on github, i just guessed how its working.

To guess in added you files, which are liked in 1st post in file:
wrpguest-git-11c8610.zip so in C:\Windows\Systems are now:
fxmemmap.vxd
glide.dll 44046 size
glide2x.dll 44558 size
glide3x.dll 43534 size

On host i copied, dgVooodo2 files for its package to same folder as Qemu executable based on dgVoodoo2 documentation:
hope that is right that is based on application x bit version not on OS bit version:
these 32bit ones ( 3Dfx\x86):
Glide.dll 125,440
Glide2x.dll 124,928
Glide3x.dll 131,072
these from MS\x86:

DDraw.dll
D3DImm.dll
D3D8.dll
D3D9.dll

+ dgVoodooCpl.exe configuractor and dgVoodoo.conf f file.

In dgVoodoo.conf file i changed manualy:
Environment = QEmu

So only bad thing which i did, was that i copied guess glide files also inside games folder, otherwise it was right.. based on info you wrote, but deleted them, but its the same..
So i need more hints. Qemu console i see only this message:
glidept: DLL unloaded

EA games
- because its not documented, i just guessed how its working. Isnt possible just created some virtual Voodoo device (glide call redirector) inside to Win9x to avoid neccesity of patching to these games and mare it like on old machines? Because i guess that these games probably checked existence of Voodoo just by checking if some Voodoo multimedia device is listed in system.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 376 of 377, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I deleted them, no change.. but they are not needed, they are probably also not used.

Im old goal oriented goatman, i care about facts and freedom, not about egos+prejudices. Hoarding=sickness. If you want respect, gain it by your behavior. I hate stupid SW limits, SW=virtual world, everything should be possible if you have enough raw HW.

Reply 377 of 377, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
ruthan wrote on 2020-05-19, 16:03:

On host i copied, dgVooodo2 files for its package to same folder as Qemu executable based on dgVoodoo2 documentation:
hope that is right that is based on application x bit version not on OS bit version:
these 32bit ones ( 3Dfx\x86)

That was probably the last silly mistake. Why do you think we have a dgVoodoo2 x64 version release for the Glide DLLs? You were fooled by QEMU naming built by others because you did not build it hence being ignorant for its native WIN64 binary. Being native WIN64 is one of key advantage of QEMU because 64-bit software is the future and it does not have to go through another WoW layer of abstraction on 64-bit Windows. If you had followed the thread, QEMU has always focused on being native WIN64. Dege used to name the folder "Qemu x64" because it was the only client for 64-bit DLLs.

ruthan wrote on 2020-05-19, 16:03:

EA games
- because its not documented, i just guessed how its working. Isnt possible just created some virtual Voodoo device (glide call redirector) inside to Win9x to avoid neccesity of patching to these games and mare it like on old machines? Because i guess that these games probably checked existence of Voodoo just by checking if some Voodoo multimedia device is listed in system.

Use PCem if you insist such perfection, or get a kick-starter fund raiser to create a bounty for it. 😁