VOGONS


QEMU 3Dfx Glide Pass-Through

Topic actions

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

Reply 240 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
kjliew wrote on 2021-11-02, 12:39:
Bruninho wrote on 2021-11-02, 05:33:

Counter-strike 1.6 loads and has a MESA passthrough going, but the mouse pointer in main menu disappears so I can't advance in the game to test.

You can still use the keyboard on the main menu as well as navigate all the options.

Or as shown in this video, use the Force, feel it and let the Force move the mouse for you, young Padawan... 🤣

Fine, I can try that. Maybe some command line arguments for CS1.6 can fix it. I need to investigate it further.

I still need to make GP3 run with the passthrough, though. Motor Racer 1 is not getting it (but I presume you tested with MR2?). And neither GP4 is getting it too. I only managed to get NFS2SE, FIFA 98, FIFA 99 to work. I am yet to try out Flight Simulator 98 and NBA Live 98 (But I think NBA Live 98 will work fine, since FIFA 9x is nearly similar to that game).

I noticed a problem with my XP VM, GP3 does not have video output with any VBEMP driver version I use, I can only get video output when I use 'cirrus-vga' and its driver provided by XP. However, it creates another problem for me: QEMU crashes when I try to move a window in XP desktop, for example. It is fixed when I disable hardware acceleration in XP settings, but then GP3 does not get any video output at all again. It's funny. Could you share your working XP QEMU command line and the video driver you are using for it?

So far, I can see it killing dosbox and pcem for me, so I will stick to UTM (for other operating systems) and qemu-3dfx for these games in particular.

EDIT: BTW, I am using the previous qemu-3dfx code I had to compile, before you updated it three weeks ago.

It didn't load Windows when SDL2 was 2.0.16, but it did when I used 2.0.14.

Anyway, the newest code does not work for me. I get this error with your updated code:

X Error of failed request: BadDrawable (invalid Pixmap or Window parameter)

and QEMU crashes.

So I reverted to the same code I was using on my previous Intel Mac and recompiled it on my M1, using SDL 2.0.14. Now it works.

Hope this helps.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 241 of 258, by robertmo

User metadata
Rank l33t++
Rank
l33t++
Bruninho wrote on 2021-11-02, 22:35:

I noticed a problem with my XP VM, GP3 does not have video output with any VBEMP driver version I use, I can only get video output when I use 'cirrus-vga' and its driver provided by XP. However, it creates another problem for me: QEMU crashes when I try to move a window in XP desktop, for example. It is fixed when I disable hardware acceleration in XP settings, but then GP3 does not get any video output at all again. It's funny. Could you share your working XP QEMU command line and the video driver you are using for it?

-device virtio-vga
i think it is the best qemu gfx having best of all cards.

Reply 242 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

@kjliew where can I find the WineD3D for both 9x and XP for use with MESA passthrough? I see that GP3 can do it but I need the right DLLs...

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 243 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Anyone know why with NBA Live 98 when I try to run glide it starts in small screen (like 800x600 windowed) but the whole image is bigger than the qemu window? like, qemu window is tiny, but game resolution is bigger? I can only see a small part of the images... I had to turn off glide and run software mode to play

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 249 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Anyone know what does this means when I try to play a D3D game using WineD3D on XP VM?

Attachments

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 250 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Now I get this when I try to play a Grand Prix 3 game with WineD3D 1.8.6

The above output was without "export SDL_VIDEODRIVER=x11", this one was with it.

I really really would like to know wtf is wrong, since the dev is capable of playing it on his M1, but I'm not.

Attachments

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 251 of 258, by digger

User metadata
Rank Oldbie
Rank
Oldbie

So there's a new Glide implementation in town (at least on Linux), called Grover. It's built on Gallium3D, effectively enabling it at the driver level, at least for GPUs that have Gallium3D-based drivers. (That means basically everything modern, except the proprietary NVIDIA drivers and Intel's older pre-Iris drivers.)

@kjliew How feasible would it be to use Grover as a backend for Glide pass-through from a Windows guest VM?

Reply 252 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote on 2022-02-04, 15:22:

So there's a new Glide implementation in town (at least on Linux), called Grover. It's built on Gallium3D, effectively enabling it at the driver level, at least for GPUs that have Gallium3D-based drivers. (That means basically everything modern, except the proprietary NVIDIA drivers and Intel's older pre-Iris drivers.)

No mention of M1 Macs support? Not so good then... I'll wait until it gets there.

I would be more impressed if it didn't needed any discrete GPU to begin with.

Meanwhile, I can't seem to get Grand Prix 3 to run with WineD3D like he did on his youtube video.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 253 of 258, by digger

User metadata
Rank Oldbie
Rank
Oldbie
Bruninho wrote on 2022-02-05, 00:53:

No mention of M1 Macs support? Not so good then... I'll wait until it gets there.

Grover is built on top of Gallium3D, which ties it to operating systems that use Mesa/Gallium3D-based graphics drivers, most notably Linux.

The only way I could see this working on macOS, would be by stacking Grover on top of Zink, Zink on top of MoltenVK, and then MoltenVK on top of Apple Metal. That would be quite a complex multi-layered setup.

What might work better on macOS is something similar to Grover, but built either directly on top of either Apple's native Metal API, or on top of Vulkan, via MoltenVK.

My guess is that Link Mauve picked Gallium3D as the basis for Grover, because the Glide API already shares some similarities with OpenGL.

But technically, I think there is no reason why something like this couldn't be built directly on top of Vulkan or Metal as well. It just requires someone with the knowledge and dedication to do it. 🙂

Reply 254 of 258, by OSH

User metadata
Rank Member
Rank
Member

So. I read all post in this topic and I saw this discussion about good documentation. And yes, I agree. This project is made for all and not all (including myself) have so complex skills to make all self. But I see, this documentation is now almost complete. Almost, because I don't see one important thing: How install OpenGlide on Linux? I have 2 libraries: libglide2x.la and libglide3x.la. Where should they go? And how?

Reply 255 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

And actually, on macOS, only the glide functions are working, I can play the glide games with my Windows 98 and Windows XP virtual machines on QEMU. But I cannot play any D3D game using the WineD3D libraries and Mesa passthrough. When I run it without X11 I can play the glide games normally, but not OpenGL and D3D games; they call X11 and because the QEMU VM is already up, the machine crashes.

But when I run the VM with X11 (SDL_VIDEODRIVER=x11) one OpenGL game runs; Counter-Strike 1.5 runs if I load the 3Dfx minidriver. Not perfect, has a minor graphics glitch but works. To run D3D games I need to use WineD3D libraries. Turns out, when I try that scenario to play games like Counter-Strike 1.6, NBA Live 98 or Grand Prix 3 with D3D support and WineD3D libraries, the QEMU machine crashes and the error log says something about not having GL context. I have tried several different WineD3D library versions until now, for weeks. I can only play these games if I run them with CrossOver directly.

ofc this project works best on linux, the dev works with linux mostly, although he has a M1 MacBook Air and can work around, but I do not have a linux machine and I'm not gonna buy a PC to run a linux machine; the goal of the project is to run the games without having to buy a machine, other than what you have, to play them. The project has potential to beat other emulations across different platforms, thus benefiting the whole community, but its being underdeveloped right now.

As for documentation, there is nearly no documentation at all. I don't know where you're seeing it as "almost complete".

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 256 of 258, by OSH

User metadata
Rank Member
Rank
Member

@Bruninho, for short: I said, the documentation is almost complete, because I hadn't any problems with compiling QEMU and guest wrappers under Ubuntu and earlier was it very problematic due lack of good documentation. I can understand you frustration about lack of MacOS version, but it's developer decision, how he develops his work. And any moaning and demanding won't force him to change his decision. You can only ASK. Or write it self. I was quite disappointed, when I saw, 86Box hasn't Linux version, and ask developers about it, but they said, the won't make any Linux version. So ok, I understand this. Now Linux version exists, so maybe in the future kjliew will develop fully functional MacOS version. But I repeat: it's only his choice. So please stop this.

Reply 257 of 258, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

I’m not demanding anything. You’re not getting my point here. I don’t give a damn to what platform this works or not. I am not asking him for a windows, macos, reactos, android or whatever version. Not my point here when I complained about lack of documentation.

I am criticizing him for not being a good developer in not maintaining a proper documentation and for demanding a donation to provide Wined3D libraries that are under a GNU GPL2 license, its a clear violation of the license, he has to provide them for free and also the sources of that modified software. The “patched” WineD3D libraries must be made available since they’re modified GPL software, and the license clearly states this requirement. He does that for QEMU, which clearly gives a lot more of work to modify than the Wined3d libraries, but not for these libraries. Why a such difference?

He has to respect the license of the software he is modifying. And as a programmer, has to write GOOD documentation if he wants to have success as a professional programmer in his career. In my 20+ years of career, I have worked with a few programmers that never wrote a single documentation, they were fired with less than three months of work. I always wrote the documentation for everything I did. This landed me the dream job as an UI/UX designer, being finally able to never write a single line of code again and also as an adviser to the front/back end programmers that work with me to create great products. Documentation is important and also gives people information and direction on how to build/use/develop the things without pestering the developer himself. This is what he doesn’t understand yet.

Doesn’t matter which platform he is working on, he is violating the license of these libraries when he demands a hefty $50 paywall for just three games. This doesn’t help the emulation scene/community when he does this. He prefers to brag about how good his solution is, and to insult the work of PCem or other emulators when he shows his work. Why not work together? Why not help them and get help from them too? Everyone wins. That’s how a community works. Instead he keeps the work for himself and asks for a donation to provide modified GPL software, violating the license and getting money from it. We should condone that behavior, not support it.

Also, the people who already paid him for these wined3d libraries, should request him the sources of these modified libraries as clearly stated by the license, meaning that he is obliged to provide them, and it’s their right to ask for them, and these people are also free to make them publicly available to everyone, another thing that the license also clearly states.

"Design isn't just what it looks like and feels like. Design is how it works."
JOBS, Steve.
READ: Right to Repair sucks and is illegal!

Reply 258 of 258, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

AFAIK kjliew is still banned here and cannot defend himself and since this is his project then it doesn't make sense for this thread to stay open so thread closed.
The project exists on github so either post there or fork it.
CLOSED

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