VOGONS


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

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 322 of 619, by digger

User metadata
Rank Oldbie
Rank
Oldbie
robertmo wrote on 2020-03-22, 18:00:

I just realised that HAXM (unlike WHPX) is open source. So there is nothing that could stop its developement.

Yeah, but given how it's developed and maintained by Intel, it likely won't be an option for the growing percentage of AMD users any time soon.

It would be nice if somebody finally forked VirtualBox. Yes, Oracle sucks, but VirtualBox OSE is open source and contains some pretty good parts. For one thing it has a mature cross-platform hypervisor core that is optimized for desktop guest OSes and supports both Intel and AMD CPUs for harware-assisted virtualization. It also has a very performant AHCI implementation as well as paravirtualized graphics drivers that allow for some level of 3D acceleration in guest OSes. Heck, even the Qt-based GUI is generally better than the graphical frontends for KVM/QEMU that I've tried so far.

But unfortunately its innovation is being slowed by the fact that it is in the clutches of Oracle.

So come on, open source community, please just cannibalize VirtualBox OSE, cherry-pick the parts of it that are better than (or missing in) QEMU and port those things over already! Make QEMU the ideal cross-platform virtualization solution. Both projects are licensed under GPL 2.0, so there's nothing legally stopping anybody from doing this. I don't have a lot of experience with low-level software development. That's a shame, because I'd really like to do my part in such an effort.

Reply 323 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I do agree with your arguments for the business world, and that's the sole reason why Apple is so successful as a business from their paying customers. Even the retarded finds no difficulty using Apple products so long as one is rich enough to pay for it. The Microsoft camp used to claim more freedom in the PC than the Mac, but freedom becomes meaningless when one does not possess the knowledge to take advantage of it. The GNU/FSF philosophy demands even more freedom out of what Microsoft is touting.

Well, i dont want some flamewar etc, but really i dont like to called arrogant or stupid - do you say that directly, but felt just implications. Im more designer not coder and this old problem i spend quite lots of time to solving it. I would say that get product is simply that - which is easy to use, but hard to master. So basic usage is simple, intuitive, but not for price of removing advanced features. Even lots of good games was killed just by bad controls and interface. I for example love games which have ingame console for commands, its great for development and testing, but i would never force user to it for normal gameplay.

I would that present state of Qemu 3Dfx user friedliness is something like as send some recipe how make medicine full of some chemical formulas instead of medicine itself. Maybe you living in that developer world too long, so all of that stuff seems to be elementary for you, as for talented artist just paint great picture.

DOSBox has sprouted a number of community builds. You could hope that QEMU will get one in the future, and one that has a focus on playing games.

Is as already wrote elsewhere you should really upstream your code into Qemu, there are already lots even more strange stuff, for example GUS emulation is hardly business stuff and user benefits from it and nobody is harmed.

Dlls:
I checked source code if some *.dll files through Total Commander file search, because there are all other asset files as help files and roms etc, so its complete package for building and distribution that is why it has 500 MBs, but they arent. When i look into my building directory, where i have my build exe files, there is lots of dlls.. but what is strange they are 2 days older that exe files.. i though that they are from same time as build, because when i creating whole Qemu package with assets why cp command, new files have create time from time of build.
So something strange is happenning here.. Maybe dlls are just package is some files or renamed during building.. it when i build multiple times with same directory msys, doesnt replace file creation dates.. or maybe there are not overwrited when already exist or when msys cp, also during cp doesnt care about original copied creating date and replace it by present one.

Other dll related dll problem, which i had.. was that i original copied dlls from vanilla Qemu to 4.2.0 to my new build, but i got errors during Qemu execution from 2 of them, libcurl-4.dll and libssh2-1.dll - some entry points werent found (i attached pictures with exact errror messages).. i dunno by curl and ssh should be needed, but ok.. when i checked dlls in my build directory and used them Qemu was working fine and these 2 and 2 others dlls werent there at all - maybe because of configure parameters, maybe not..

Anyway i managed to build Qemu 4.2 + sound fixes, with HAX and Whpx support (wardasils configure parameters) - no warranty, i could quite easily made error during manual diff edits, but at least 3dfx tests are running fine.
Here is full package Qemu executable -- 32 bit and 64 bit, i keep 64 bit, because of other more modern Qemu machines and what to have one instance of it + dgVoodoo files, roms, dlls, help and any other Qemu assets, so only thing which you have to supply is change your hdd images in *.bat file.. by your own, or robertmos previously posted hdd image.
Download:
https://www.dropbox.com/s/p4cliwsdik61ktc/Dos … oundFix.7z?dl=0

I also find out where to check used sdl - when you configure command complete fine in long output message is also mentioned used sdl version..

Attachments

Last edited by ruthan on 2020-03-28, 15:37. Edited 1 time in total.

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 325 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I would like to do it.. I probably overlooked it, it thought that your .vdi image was only 6.22 or so.. and some Dos stub only.. im not sure 3Dfx is will work with FreeDos.

Anyway if you can upload disk image and *.bat file do it i will add it to into whole package.. or you can reupload whole updated package yourself. If can make SB driver working with FAT32, make some bigger growable image 5G or 10GB or so (to have enough place for games) - best is vhd, vhdx or vmdk, where you can directly add data.. i dont know vdi tool for that. If is not possible make sound driver working, make 2GB FAT16 disk. Other way would be make 2 disk images - C for system and big one 20GB+ for games.

Some dos start menu with HimeX, JEMM and JEMMEX options which are free to make it more universal would be nice too.. This could be added later of course. Same as GUS.. i tried make GUS working with several drivers, because kjliew wrote that is working, but i failed at least with older builds.

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 326 of 619, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

I want to help reinforce kjliew's arguments to just use dosbox for playing games that wont work on modern windows, unless you have a weird obsession with qemu and troubleshooting Pc issues and not playing games. I feel like some of my comments have derailed the purpose of this thread. I do have a brain problem and obsession with qemu and computers in general. I have spent countless hours reading documentation on qemu and windows 98/dos troubleshooting because I find that fun as a hobby. I have spent way too much time messing with OS installs and messing with drivers because I do that to enforce patience and troubleshooting exercises. Its far easier to use dosox and beat some games relax and avoid headaches.. Dosbox is available on everything and has several builds with the same core compatibility for almost any game you could want to play that doesn't actually work on modern windows.

You can install win98 and play games using multiple cd's and hdd images up like planescape torment with dosbox, I also use dosbox-x and duam a bit ago and both these work fine for windows 9x. I have win98 installs on both and they work fine. I just like messing with qemu as a hobby overall but I also use other emulators like PCEM and SPCAT as well as qemu and dosbox. But that's because I have hobbies that benefit from being able to test stuff in multiple emulators to verify compatibility.

You can use the universal VBE/VBEMP driver with most cards that qemu emulates, the new ati-vga seems to be for hardware other than widows(PPC console) and the recommended AMD/ATI device drivers don't seem to work for me in win9x and XP. The VBE driver works for this but had less color options and resolutions available with the ati-vga devices than other devices models. You can use the extra device properties to increase memory for cirrus max is 16 and for VGA Vmware 128 and 256 seem to be recognized by the VBE driver. I have found drivers for the qemu vmware card that work in windows 98 and XP these work well but have mouse has input issues unless you emulate or pass through a usb mouse or use the usb-tablet device. However the vmware drivers are locked to 32 bit color and will not seem to work with dx apps as that try to use 256 color mode and the 640x480 resolution is not available ( if you are not playing games the VMware drivers are probably the best option . Its possible these might load some dx apps but I have not had success with apps I have tried. However the VBE drivers work with vga vmware and qxl(linux) device model in win9x. I typically use the default cirrus drivers and install apps with this and launch games using vga or vmware device that is using VBE to avoid the issue with VBE driver not using vesa modes for dosbox's in windows.

Please follow kjliew's advice and instructions, this is the forum for his patch and he has the most information and documentation for utilizing this.

Reply 327 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I thing that we can argue whole day, if Qemu with 3dfx or Dosbox adjusted for Win98 usage are more Frankeinstein usage of original product idea, but universality and possibility of even unintended usage are great things. Look at Linux kernel, its supporting lot of weird stuff, weeks ago someone added support for SGI 1998 machines. its used for router,s fridges etc..

Dosbox seems to reach most of its goal long time ago and from that time evolution seems to be slow and im not even sure if there is will to add proper Windows 9x support or 3dfx to main build.

When i looked on some Qemu bug reports, it seems that even strange legacy request arent ignored / dismissed, so if you aware some bugs, Qemu is your hobby, you can try report them.

You can use the extra device properties to increase memory for cirrus max is 16 a

I saw this as libvirt parameters and already tried it (-device cirrus-vga,vgamem_mb=16 ^ ), Qemu parse it , but Windows 98 still reported only 4MB.. So if you have working solution pleas post it.

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 328 of 619, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

Projects support what they support because that's what they want to support. The more you add to the project the more you have to troubleshoot and support which could interfere with the projects main goals. If you can figure out a way to add a bunch of crap to a project without hindering the main goal of a project then I'm sure everyone would like to hear it. Linux (which is only the kernel) has tons of people behind it both paid and unpaid and it has a specific purpose much like DOSBox or QEMU.

It's never been a goal of DOSBox to support 9x as a guest (it's in the name). Now if 9x support can be added without affecting DOS compatibility, troubleshooting of DOS games, bloating the code, taking manpower away from DOS compatibility, etc then there would be no issue adding it.

The amount of DOS games that require voodoo or utilized it is very small compared to the total number of DOS games. Internal voodoo emulation is slow and passthrough to a wrapper requires ones for each OS. All this for a few games compared to the thousands of DOS games that no one cares about. The people wanting it sure do like to complain though.

As with anything if you want something done then put up or shut up.

DOSBox Compilation Guides
DosBox Feature Request Thread
PC Game Compatibility List
How To Ask Questions The Smart Way
Running DRM games offline

Reply 329 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

That Dosbox is supporting mainly Dos make sense, nothing against it. BTW in never cared about how decisions within Dosbox project are made, is there some group of rulers and some voting, or how is working, is somewhere some roadmap?

Its not Dosbox problem that there is not / wasnt ( depends on what you thing about PCem) good Windows 9x emulator with 3D support or Microsoft not have some good in build compatibility fallback - because they dont see any business behind it as lots of big companies, but at least for consoles backward compatibility seems to be big thing. If i could pay more for some Windows legacy package extension i would. Even Dosbox was created, because they just cut Dos off. We also need to add to be honest that Linux backwards compatibility is much worse for native Linux ports than Windows compatibility.

Ideal tool, would be some virtualization tool, which wouldnt simply care about which OS is emulated at all and you would be able through some combo boxes select which HW you want to emulate and all would be run as on real machine, without endless list of workarounds.
We dont need some super big group of emulated HW options, if there would be at least one good combination for all legacy OSes and some possibility to add more later by community. In addition some pass though Hw support wouldnt hurt anyone.
I would say that Qemu is nearest thing to that and that is best is not limited only to x86 pc - from point of both - guest and host - and that why make big sense to mess with it, when we now make enough raw HW horsepower.

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 330 of 619, by RayeR

User metadata
Rank Member
Rank
Member

Just note setting VRAM size also don't work for me for cirrus but for std vga it works
-device VGA,vgamem_mb=32
(but it has 16MB as default so not much reason to increase it)

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

Reply 331 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I finally had change to test my build with Win98.. and its AC98 emulation is not working, in console i can see these errors:
audio: Failed to create voice `ac97.pi'
audio: Failed to create voice `ac97.mc'
audio: Failed to create voice `ac97.pi'
audio: Failed to create voice `ac97.mc'


So, i build it wrong, or for Qemu 4.2 is needed some AC97 related code change.. or maybe is something wrong with my starting parameters:

Spoiler

D:\Games\!Emulators\DosQemu4.2-3DfxAndSoundFix\qemu-system-i386.exe ^
-m 512 ^
-vga std ^
-soundhw ac97,pcspk ^
-display sdl ^
-rtc clock=host,base=localtime ^
-boot c ^
-hda .\!HDDs\Win98System2-8GB-440-AC97.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

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 332 of 619, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

That is normal when the audio backend failed to get an audio input source. "mc" is mic, and "pi" is pcm-in. SDL audio backend does not support any audio input sources regardless if one is actually available. If you get this with dsound audio backend, then it really means there is no audio input source on the host. This is possible if you do not enable "stereo mix" as an input source on Windows 10, the host has no line-in and the driver jack detection finds no mic, hence shut off all the audio input sources.

Playback should work, and this is what matters for games, unless you intended to do chatter during games.

Reply 333 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

Ok, thanks for info, never saw this error before with any Qemu... i dont need input of course, so we can look at it as some warning, unless it will break compatibility with Win98.. I will test it later, i just got scared.

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 334 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I tried My build with my vanilla 4.2 Qemu Win98 image with is booting fine, but not with this build, im not able to boot into Windows 98 - im getting Windows system protection error, even when im trying to boot in safe mode, i tried to remove ac97 but it is still the same.
This error means usually some HW related change and fail to load some device driver, its strange..

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 335 of 619, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

I think compiling in jemalloc support may have caused the windows protection error you are seeing @ruthan. My apologies for suggesting it without fully testing it. You can remove the -enable-jemalloc and it will default to the original memory handler.

Reply 336 of 619, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

Also those error messages occur if not adding in OSS audio support. I have not been able to do this so far on my end in windows. However I think they can be ignored as AC97 sound works without it despite these warnings.

audio: Failed to create voice `ac97.pi'
audio: Failed to create voice `ac97.mc'
audio: Failed to create voice `ac97.pi'
audio: Failed to create voice `ac97.mc'

Side question if I wanted to upload the drivers I found for VMware device for win98 and XP to vogons, how would I go about that.

Reply 337 of 619, by ruthan

User metadata
Rank Oldbie
Rank
Oldbie

I think compiling in jemalloc support may have caused the windows protection error you are seeing @ruthan. My apologies for suggesting it without fully testing it. You can remove the -enable-jemalloc and it will default to the original memory handler.

Its ok, without your info, i would be able to compile it at all.. problem is you whole distribution way and its not your fault.

wadrasil wrote on 2020-04-09, 01:34:

Side question if I wanted to upload the drivers I found for VMware device for win98 and XP to vogons, how would I go about that.

Look here VOGONS Driver Library

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 338 of 619, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Add new configuration option, LfbLockDirty, to enable more accurate LFB shared memory semantics that fix Pyl and BioFreak. The default LFB shared memory semantics have optimization to minimize shared memory fills by not refilling shared memory region when the same buffer (FRONT, BACK, AUX) was locked repeatedly within a frame. The new option removes that optimization and makes every lock triggers shared memory fill. It fixes minor rendering error in Pyl where fire/flare can be seen through closed doors when AUX/DEPTH locking was supported by underlying Glide wrappers. It also fixes BioFreak black screen during fight actions, otherwise the game only renders correctly with LfbHandler,1 that does not work with VM acceleration. So the new option enables BioFreak to work under VM acceleration, though it may not be any faster than without it.

Reply 339 of 619, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

Thank you again for all that you provide. I just saw that you got 3dfx working on arm via GitHub. Looks like you are unstoppable now. Now I have no excuse not to get my Nvidia jetson out of the box and give it a shot on an arm system with a decent gpu.