VOGONS


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

Topic actions

Reply 380 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-06-06, 01:44:
As far as I know you would need to compile qemu for OSX on the hosts itself or another Mac. However qemu is supported on that pl […]
Show full quote

As far as I know you would need to compile qemu for OSX on the hosts itself or another Mac. However qemu is supported on that platform. I asked the author earlier about what is needed for this patch on other platforms and opengl was the main requirement.

I would try building from source with 3dfx patch and see if it works.

wiki.qemu.org/Host/Mac
Has more details.

Oh, many thanks - that's a project for another weekend then. This weekend I have other ideas 😉

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 381 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

It did not work because it complains about a pkg-config link, even though I added pkg-config through homebrew ?

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 382 of 398, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

This link discusses that error, not sure if it will help but does have some instructions for resolving that issue:

https://stackoverflow.com/questions/46812712/ … ready-installed

export PKG_CONFIG=/path/to/pkg-config

Good luck, I hope that helps.

Reply 383 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-06-08, 12:15:
This link discusses that error, not sure if it will help but does have some instructions for resolving that issue: […]
Show full quote

This link discusses that error, not sure if it will help but does have some instructions for resolving that issue:

https://stackoverflow.com/questions/46812712/ … ready-installed

export PKG_CONFIG=/path/to/pkg-config

Good luck, I hope that helps.

Actually it didn't. But thanks anyway. Here's the error:

ERROR: sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T.
You probably need to set PKG_CONFIG_LIBDIR
to point to the right pkg-config files for your
build target

when I do a 'which pkg-config', mac terminal returns /usr/local/bin/pkg-config. However what it wants is apparently the libraries. (Sorry, I don't know much about compiling stuff).

also, "echo $PKG_CONFIG_LIBDIR" returns empty.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 385 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-06-13, 07:02:

Looks like you need to set $PKG_CONFIG_LIBDIR as well.

Also could be gcc version. Or qemu version. Try compiling an older version 4.x and see if that gives the same error.

I was using 4.1.1 and 4.2.0 when I had this error. To set $PKG_CONFIG_LIBDIR, I need to know where they are (the libraries) and I don’t know.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 387 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Any ideas? I am still not finding these libraries to compile on my mac. I wanted to try it out with qemu 4.2.0 so I could show to the UTM developer that it could be possible.

EDIT: I give up - I stop at a point where it complains about requiring glib 2.48 and gthread 2.0 even though I have glib 2.64 installed from homebrew.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 389 of 398, by mtcftp

User metadata
Rank Newbie
Rank
Newbie
alberthamik wrote on 2019-09-10, 07:19:

I'm rather curious, realizing the potential of this project, if it would be possible to add this pass-through feature to QEMU's PowerPC platform, specifically it's Mac99 emulation for Mac OS 9.X, which the voodoo cards technically worked on, but usually had to be run with a specific Macintosh release of voodoo card, or you could flash the GPU firmware. However, I'm unaware if Macintosh actually supported glide per se, or if it's support was mostly with just the GPU accelerating OpenGL or something. I've been glancing into other things if it falls into the latter, such as PCem's voodoo emulation.

No firmware flash was required to use a Voodoo2 (and maybe Voodoo1) card in a mac. You could install most reference design PC voodoo2 cards in a PCI based Mac using 3dfx's reference drivers for mac. 3dfx did release a mac firmware you can flash onto their voodoo3-2000 and voodoo3-3000 PCI/AGP cards which was necessary to use them as a full 2D/3D graphics card. I used a 3dfxVoodoo3-2000 for years. I have never seen the original Unreal game look as good as it did using the glide driver. There were some mac specific Voodoo1 cards such as the VillageTronic Voodoo1. The only mac-specific difference in those was that it had a built in mac to vga adapter for the video passthough. I also had one of those.

So with 3dfx's Mac/PPC reference drives installed in the MacOS9 PPC VM we should be able to do PCI passthough to a standard PCI Voodoo2 card just like if the same card was installed in a mac. (or a QEMU side voodooHardware Emulator. ) Is that possible? I'd like to understand more about achieving this goal.

The alternative would be to write macOS9 Glide shim drivers that pass on the glide commands to the natively running QEMU glide translater. There are a couple other projects that may have helpful information to do this. One was a shim that translated glide to opengl on the mac so that you could run glide games without a 3dfx card . The other did the opposite and used MESA to provide an implementation to run openGL games on my Voodoo card.

Reply 391 of 398, by robertmo

User metadata
Rank l33t++
Rank
l33t++
Bruninho wrote on 2020-07-11, 20:36:

EDIT: I give up - I stop at a point where it complains about requiring glib 2.48 and gthread 2.0 even though I have glib 2.64 installed from homebrew.

what version of gthread have you got?

Reply 392 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
robertmo wrote on 2020-08-15, 17:42:
Bruninho wrote on 2020-07-11, 20:36:

EDIT: I give up - I stop at a point where it complains about requiring glib 2.48 and gthread 2.0 even though I have glib 2.64 installed from homebrew.

what version of gthread have you got?

Hi, I'm sorry, I don't remember. I've removed it all when I gave up on it. I'm currently using the latest qemu (5.1.0) from the homebrew.

Anyway, macOS qemu hvf acceleration doesn't work that well out of the box even with original qemu, at least for Windows 7 guests it doesn't work well. I always get a BSOD if I try to use it.

Does this 3dfx glide passthrough require anything specific from the host architecture? If no, it would be a great idea to contact the UTM developer and try to convince him to implement it (UTM is a wrapper for qemu), so 3dfx games on Windows 9x guests and on iPad Pro hosts could benefit from it. Although UTM does not have hvf acceleration too, like the macs have.

I already have a Win 9x guest being able to play Grand Prix 3, FIFA 98 and Flight Simulator 98 there, albeit with a small performance/graphics penalty. I can see potential for much more performance.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.

Reply 393 of 398, by OSH

User metadata
Rank Member
Rank
Member

Hey, very interesting topic. Since I moved to Ubuntu 20.04 I'm still looking for a way to play old Windows games (especially these, for Glide or OpenGl). I read this guide, but I'm not familiar with applying this patch and compile programs under Linux. I've installed QEMU, but from a repository, so I don't know, how I can apply this patch now…

Reply 394 of 398, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

The authors GitHub has instruction for compiling this and applying the patch, there's a link on the first page. For ubuntu you need to install build essential and build-dep. Then you can try apt-get install build-dep qemu-system-i386 or x86_64. Then follow build instructions.

If you are familiar with docker you can follow the setup instructions from qemu's build page and use docker for the build. (You need to setup your own container unless you are building from the current qemu source tree and that won't work for the 3dfx patch as far as I can tell due to login access permissions for qemus repo)

There is no need to install dependencies other than gcc and make to your system when using docker. This also works for compiling from Linux for windows using qemus documentation for w32 builds.

It's a weekend project, but it's worth it. If you have a lot of free ram use mod RD and build to a ram drive. 3-4 gb should be enough.

Also you can't easily uninstall packages built from source, so it's good enough to run it from the build folder after the make completes and alias qemu to the location the executable.

If you can make a package that's better as it can be uninstalled. I'm not in a position to provide completed qemu builds but can help with compilation questions.

If there's any interest in how to use docker for cross builds I can post my notes. I did use an alpine Linux VM and ran docker from within that and everything compiled and exported without issues. My work VPN blocks docker but not kvm....

Reply 395 of 398, by digger

User metadata
Rank Member
Rank
Member
wadrasil wrote on 2020-08-21, 04:36:

My work VPN blocks docker but not kvm....

Might this workaround work for you? https://github.com/boot2docker/boot2docker/is … mment-247804033

Reply 398 of 398, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Any chance of an update for QEMU 5.1.0 ?

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.