VOGONS


Bruninho's Virtual Machines (Windows, Linux, Mac)

Topic actions

Reply 100 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

Right, as it stands, everything looks terrible.

@kjliew: Both Debian and Arch Linux cannot compile QEMU with the 3Dfx/Glide patch.

Debian:

bruninho@macbruno:~/myqemu/qemu-3dfx/build$ make 2>&1 | tee build.log
make[1]: Entering directory '/home/bruninho/myqemu/qemu-3dfx/qemu-4.1.1/slirp'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/home/bruninho/myqemu/qemu-3dfx/qemu-4.1.1/slirp'
LINK i386-softmmu/qemu-system-i386
/usr/bin/ld: hw/mesa/mglcntx_linux.o: undefined reference to symbol 'XFlush'
/usr/bin/ld: //lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:209: qemu-system-i386] Error 1
make: *** [Makefile:472: i386-softmmu/all] Error 2

Arch:

[bruninho@archbookpro build]$ make 2>&1 | tee build.log
LINK i386-softmmu/qemu-system-i386
/usr/bin/ld: hw/mesa/mglcntx_linux.o: undefined reference to symbol 'XOpenDisplay'
/usr/bin/ld: /usr/lib/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:209: qemu-system-i386] Error 1
make: *** [Makefile:472: i386-softmmu/all] Error 2

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

Reply 101 of 110, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Check your config-host.mak in the build folder which was generated by configure script.
I am not sure why your Debian/Arch environment did not include X11 libs. Mine did.
Both XFlush and XOpenDisplay are standard X11 API.

$ grep X11 config-host.mak 
CONFIG_X11=y
X11_CFLAGS=
X11_LIBS=-lX11
SDL_LIBS=-pthread -lSDL2 -lX11

Reply 102 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
kjliew wrote on 2020-09-11, 05:43:
Check your config-host.mak in the build folder which was generated by configure script. I am not sure why your Debian/Arch envir […]
Show full quote

Check your config-host.mak in the build folder which was generated by configure script.
I am not sure why your Debian/Arch environment did not include X11 libs. Mine did.
Both XFlush and XOpenDisplay are standard X11 API.

$ grep X11 config-host.mak 
CONFIG_X11=y
X11_CFLAGS=
X11_LIBS=-lX11
SDL_LIBS=-pthread -lSDL2 -lX11

Both environments returned it okay, so X11 is there. I tried again with a much simpler ./configure with less options - probably the problem was caused by one of them. Now it compiled. I tested them running it with --version to see if it compiled. Returns version v4.1.1, the exact version I compiled for. Yippiee-Kay-Yay, Moth...

I'll probably stick to Debian then, It is easier than Arch to use. Before compiling it I had installed the qemu from apt-get (Debian) and pacman (Arch), but these repositories came with different versions. 3.1.0 for Debian and 5.1.0 for Arch.

Have you updated your files to compile against 5.1.0, by any chance?

EDIT: I compiled the stock QEMU 5.1.0 on Debian and installed it over the 3.1.0, it's working anyway. One problem less, one problem more...

The good thing about VMware VMs is that we always have Snapshots to roll back before any sh*%$*$ happens. Now I'm gonna recompile the i386 version with 3dfx patch. I'll also take notes so I don't forget anything when the day I make it with a Debian ARM64 VM on ARM Mac comes. PCem disappointed with its speed, DOSBox-X still has a few issues to be ironed out but I still think it is the best candidate when its fixed. For now, I'll go with QEMU...

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

Reply 103 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

@kjliew: Right, it's compiled and QEMU is working, Debian Linux AMD64 build, and booted a Win 98SE VM I had on UTM/iPad Pro. Now, how do I benefit from the 3DFx/Glide passthrough on my VM?

I have no idea since I have never done it, and I have already ditched DOSBox and PCem as options. Both are too unstable and slow. Only QEMU works but without 3Dfx and just Software Renderer for FIFA games.

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

Reply 104 of 110, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

You're probably the first person to get QEMU compiled but didn't know where to proceed. I would have thought compiling QEMU from source would be the most difficult hurdle to get through. Once it was done, everything should be simple.

Anyway, you will need Glide Wrappers for 3Dfx/Glide. It is obvious, isn' it?

It could be simpler if you are on Windows, just get dgVoodoo2, it is so far the best Glide wrapper. On Linux, well, things aren't always as straight forward, sigh.... It depends if your Glide games will work with OpenGlide. If they do, then you can compile OpenGlide for Linux as *Host* Glide wrapper. Call this Glide as 1st-party API. You place Glide *Guest* stub wrappers in VM and make sure QEMU know where to look for OpenGlide or use LD_LIBRARY_PATH to help QEMU find it.

There are quite a number of quirks when compiling OpenGlide Linux. So if that is turning one away, then you may consider Glide as 3rd-party API, ie. using Glide wrappers in VM that wrap into OpenGL. Unfortunately, there aren't many options. You could easily find OpenGlide Windows binaries, but Zeckensack's GlideWrapper is a more universal one but it does have its share of problems. If you just want to play Diablo II, then Sven's Glide wrapper would be the perfect candidate.

These are simple usage guidelines for running QEMU native. If you are doing this with nested VMs, then I really do not know the end results. It could be a complete disaster. Well, if all these sound unachievable, then good for VMware/Parallels, they just got a loyal paying customer locked down.

Reply 106 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

While I dont work more on that idea, I am moving my attention to the new recent UTM release on my iPad Pro. After discarding PCem, the last two weeks I was trying to run a couple of games with DOSBox-X, because that build has Voodoo 1 low level emulation. After a lot of struggles to get DOSBox-X latest releases working, I was able to install Windows 98 SE on it. FIFA 98 does run, albeit very slow and with artifacts on screen and some occasional crashes here and there. Apparently DOSBox-X on my current 2013 rMBP can only emulate a pentium 66MHz smoothly, anything beyond that just lags like hell and stutters the sound. Understandable, because Windows 9x on DOSBox-X only works with normal core instead of the faster dynamic core. This needs more work and some calculations on right amount of cycles for most games so I had to leave it aside for a while too. Now, speaking about UTM/QEMU vanilla...

UTM now runs QEMU 5.1.0, has a few good improvements under the hood, and my Windows 98 SE has a quite good speed, but does not have any sort of 3D acceleration. No big deal for a 2nd gen iPad Pro. Runs quite good and almost ALL my games are not in dire need for 3d acceleration. Only FIFA 98/99, yikes. And I want to try out Tennis Elbow and CS 1.6 later.What helps me is that I was born in the 80’s and played a lot of old games that did not need 3Dfx. Could be worse, be born in the 90’s and needing 3Dfx to run most games...

QEMU 5.1.0 on my Mac has about the same speeds. For some reason, Windows 98SE does not like HVF and crashes, so I have to rely on JIT and TCG. No problem. I don’t think ARM Macs will let QEMU run with HVF either unless its a guest ARM OS. I will have to wait and see when the first one comes to the market.

Tonight I fired up UTM and decided to install NBA Live 97. I have only 97 and 2000 editions. That 97 version was available for DOS and Windows 95, and AFAIK runs on DirectDraw. I thought about FIFA 97 for the same reason - but no need when I get FIFA 98/99 running through software renderer on QEMU/UTM. Plus even without 3Dfx, 98 and 99 look a lot better than 97. Could be better, I desperately need 3Dfx for these two, I am not gonna lie. Right, let’s see how NBA Live 97 runs. I’ll get the Live 2000 too, but for VMware only just for comparison and a few giggles.

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

Reply 107 of 110, by digger

User metadata
Rank Member
Rank
Member

As fun and cool as all these approaches are, particularly kjliew's passthrough solution, it does make me wonder if most of these older games don't already run flawlessly under Wine these days. Even if you're not running Linux as your host system, you could run Wine in a 3D-accelerated Linux guest VM and play most of those games in there, right? Even Glide wappers could work inside such a solution. It would also save you from having to install an older Windows version.

Or am I mistaken in the number of older Windows games that work flawlessly on Wine these days?

Reply 108 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
digger wrote on 2020-09-27, 09:54:

As fun and cool as all these approaches are, particularly kjliew's passthrough solution, it does make me wonder if most of these older games don't already run flawlessly under Wine these days. Even if you're not running Linux as your host system, you could run Wine in a 3D-accelerated Linux guest VM and play most of those games in there, right? Even Glide wappers could work inside such a solution. It would also save you from having to install an older Windows version.

Or am I mistaken in the number of older Windows games that work flawlessly on Wine these days?

I’d rather run older Windows VMs. Just for the nostalgia, and create the same environment I had when I played these games. This is not a problem for me. Wrappers like WINE are.

I don’t really like the WINE solution, plus it needs to be rewritten to run on Apple Silicon Macs and/or ARM64 linux distros. I already discarded that route. The only good performance multi platform route right now is QEMU, but devs need to improve on acceleration and 3D graphics. I don’t get why emulators like PCem and DOSBox can emulate a Voodoo card, but QEMU doesn’t have any.

Sure I could make an ARM64 linux VM as demonstrated in Apples WWDC 2020 keynote, and run QEMU with a glide wrapper as explained above by others, but the overhead would have a performance drop. Unless the Apple Silicon Macs have a monster performance hidden underneath it. The DTK is known to be running an A12Z cpu (same as iPad Pro 2018) with four of the eight cores enabled plus an extra core for the integrated GPU. If the final product (with an A14X) has all cores enabled and unlocked full power, may be possible.

For now, I will be exploring the QEMU route. Unless there is a breakthrough in DOSBox-X, where someone makes possible to run Win 9x with the dynamic core instead of the normal core, then we will see improvements. My gaming era zone covers from late 80s to late 90s. Nothing from 2000s apart of (maybe) GP4 and CS 1.6. For these I will leave a small mini ITX box with garbage from a previous Hackintosh PC to run these two games at home.

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

Reply 109 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

While I am testing the latest UTM 2.0 on my iPad Pro and running Windows 98 SE, I checked NBA Live 97, and the game runs really well. So far so good. NBA Live 97 relies on DirectDraw, so no need for 3d acceleration features. The same runs well on VMware Fusion and QEMU 5.1.0 on my Mac.

The mini computer from this thread: I made a miniature IBM PC

Reminded me of this. Ah, the nostalgia is strong in this one. I was playing Sokoban in this picture. I believe it is 1989.

Attachments

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

Reply 110 of 110, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie

My old simracing computer, the one I was going to repurpose for gaming some early 2000 titles only, like Grand Prix 4, I decided to give to my dad. He’s going to build a NAS and surveillance cameras system on it as well as load up some of his vmware linux machines remotely. It’s a bit more powerful than his current setup and can use more SATA drives. We have suffered a painful day to install and setup Windows 2008 R2 on it, we gave up and eventually managed to instal Windows 2012 R2. All Ok now, he’s going to run a lot of tests later.

Now I have to build a new small ITX system for my racing game, but I won’t spend a lot of money on it. Might get second hand parts somewhere to make a cheap ITX build for GP4. Something to see later. But I won’t buy new hardware... I’m gonna make every cent of my salary worth it and run old Windows XP if possible.

Meanwhile I am trying to sell the 2013 MBP so I can get the 2018 MBP my dad is using. And I can keep the “retro” vmware/qemu machines running for a bit longer.

This way I can wait for ARM Macs until Apple stops supporting Intel Macs. Hopefully this plan will solve the things for now.

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