VOGONS


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

Topic actions

Reply 400 of 418, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

The second linux example builds to /dev this is designated tempfs space and data will be lost on reboot. I commonly put images there and use ddrescue to transfer from ram to hdd and back. /dev/ram0

For using Ram as hdd for windows on linux:
sudo modprobe brd rd_nr=1 rd_size=2457600 ; 2.5GB image
sudo rmmod brd ; to remove

use -hda /dev,ram0 for pc hda or
-drive file=/dev/ram0,if=none,id=disk for other devices.

ddrescue -dvf /dev/ram0 /home/ram2.img (backup)
ddrescue -vf /dev/ram.img /home/ram.img (restore)

format with dos/windows in qemu with fdisk and format

For using q35 and windows 98se:
Use setup /p i after adding drivers from Intel INF Driver V8.3.0.1013 and all main board device drivers will be installed during setup. Make sure to select win98gold folder from Ac97 drivers or it wont work. (scsi driver needs to installed after install)

vhost-user-gpu -s /run/user/1000/vg.sock & qemu-system-x86_64 -M q35 -L . -m 512 -display sdl -net none -cpu host -smp 1,sockets=1,cores=1,threads=1 --accel kvm -chardev socket,id=vgpu,path=/run/user/1000/vg.sock -device vhost-user-gpu-pci,max_outputs=0,chardev=vgpu -boot menu=on -serial none -parallel none -audiodev pa,id=ad0 -device AC97,addr=05,audiodev=ad0 -device lsi,multifunction=on,id=scsi0 -device scsi-hd,bus=scsi0.0,drive=disk0 -drive if=none,id=disk0,media=disk,file=/dev/ram0,format=raw,cache=none -device scsi-cd,bus=scsi0.0,drive=disk2 -drive if=none,id=disk2,media=cdrom,file='cd.iso' -device scsi-cd,bus=scsi0.0,drive=disk3 -drive if=none,id=disk3,media=cdrom,file='cd.iso'

I have been able to install on q35 with kvm on during install, after initial boot, disable virtual memory before installing lsi drivers "dc-390". Or setup RAM drive for virtual memory if needed.

Reply 401 of 418, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

Here are the custom reboot shortcuts, if any one is interested

Attachments

  • Filename
    SHUTDOWN (Hard).pif
    File size
    967 Bytes
    Downloads
    8 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    Confirm SHUTDOWN.pif
    File size
    967 Bytes
    Downloads
    8 downloads
    File license
    Fair use/fair dealing exception
  • Filename
    Quick Reboot.pif
    File size
    967 Bytes
    Downloads
    9 downloads
    File license
    Fair use/fair dealing exception

Reply 402 of 418, by OSH

User metadata
Rank Member
Rank
Member

I'm trying to compile QEMU for Ubuntu. And I got this:

/usr/bin/ld: hw/3dfx/glidewnd.o: in function `stat_window':
/home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:158: undefined reference to `glide_gui_fullscreen'
/usr/bin/ld: /home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:172: undefined reference to `glide_gui_fullscreen'
/usr/bin/ld: /home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:159: undefined reference to `glide_window_stat'
/usr/bin/ld: /home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:170: undefined reference to `glide_release_window'
/usr/bin/ld: hw/3dfx/glidewnd.o: in function `fini_window':
/home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:189: undefined reference to `glide_release_window'
/usr/bin/ld: hw/3dfx/glidewnd.o: in function `init_window':
/home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:247: undefined reference to `glide_gui_getheight'
/usr/bin/ld: /home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:255: undefined reference to `glide_gui_fullscreen'
/usr/bin/ld: /home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/3dfx/glidewnd.c:275: undefined reference to `glide_prepare_window'
/usr/bin/ld: hw/mesa/mglcntx_linux.o: in function `MGLPresetPixelFormat':
/home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:386: undefined reference to `mesa_prepare_window'
/usr/bin/ld: hw/mesa/mglcntx_linux.o: in function `MGLWndRelease':
/home/nemezis/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:326: undefined reference to `mesa_release_window'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:209: qemu-system-aarch64] Fehler 1
make: *** [Makefile:472: aarch64-softmmu/all] Fehler 2

Has anyone any suggestions how to fix it?

Attachments

  • Filename
    config.log
    File size
    97.97 KiB
    Downloads
    3 downloads
    File license
    Fair use/fair dealing exception

Reply 404 of 418, by OSH

User metadata
Rank Member
Rank
Member

Ok, installed SDL 2, now compilation without errors, but in config.log still „compilation terminated”.
Ok, I understand Virtual Manager isn't prepared for extra features, accessible in this compilation. My questions: How can I apply this .diff patch form 1st post? Second: How can I enable these exgtra features (Voodoo emulation and so on) from command line? I want to make a system for games.

Attachments

  • Filename
    config.log
    File size
    101.72 KiB
    Downloads
    6 downloads
    File license
    Fair use/fair dealing exception

Reply 405 of 418, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
OSH wrote on 2020-11-01, 18:07:

How can I apply this .diff patch form 1st post?

The .diff is for OpenGlide.

OSH wrote on 2020-11-01, 18:07:

How can I enable these exgtra features (Voodoo emulation and so on) from command line? I want to make a system for games.

Read this post

Reply 407 of 418, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie

Only if you need OpenGlide as the host Glide wrapper for games that work with OpenGlide, especially DOS Glide games that leave you with no choice other than OpenGlide. For Linux and running Windows Glide games in QEMU, it is better to use guest Glide wrappers that support OpenGL, such as Zeckensack's GlideWrapper, and pass through to host OpenGL.

Reply 408 of 418, by OSH

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

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.

Yes, I did so. But in this instruction I see:
../qemu-4.1.1/configure && make - without any parameters. And in your post:

wadrasil wrote on 2020-10-03, 18:08:

../qemu-4.2.1/configure --cross-prefix=x86_64-w64-mingw32- --enable-guest-agent-msi --target-list="x86_64-softmmu,i386-softmmu" --enable-guest-agent --with-win-sdk=/usr/local/src/windows-kits/10 --mandir=/usr/local/src/install --datadir=/usr/local/src/install --docdir=/usr/local/src/install --firmwarepath=/usr/local/src/install --bindir=/usr/local/src/install --libdir=/usr/local/src/install --libexecdir=/usr/local/src/install --sysconfdir=/usr/local/src/install --localstatedir=/usr/local/src/install --prefix=/usr/local/src/install --enable-sdl-image --enable-iconv --disable-gtk --audio-drv-list=dsound,sdl --enable-docs --disable-membarrier --disable-pie --disable-capstone --with-coroutine=windows --disable-kvm --enable-whpx --disable-fdt

Where I can find an explanation for these parameters?

wadrasil wrote on 2020-08-21, 04:36:

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....

I'm not familiar with docker, I'm really unexperienced Ubuntu user. I was able to compile from sources, but it was qemu 4.1.1, and here I see 4.2. And robertmo compiled it even for QEMU 5! And I want to use Virtual Manager for such compiled QEMU or other GUI front-end.
Generally speaking, I think, we need a comprehensive guide "for Dummies" for compiling and for using such patched QEMU.

Reply 409 of 418, by wadrasil

User metadata
Rank Newbie
Rank
Newbie

In linux Qemu's configure has a help option that has all the details.

By default ./configure && make && install will work fine and builds all targets and options it detects that are available.

However you can define the configure more specifically if needed or of the initial configure includes features that are not desired or need to be specifically disabled.

Reply 410 of 418, by wadrasil

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

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.

IS there a python-pkg-config available? That is separate from pkg-config?

Reply 411 of 418, by OSH

User metadata
Rank Member
Rank
Member
robertmo wrote on 2020-05-19, 17:04:
these dgvoodoo2 files: DDraw.dll D3DImm.dll D3D8.dll D3D9.dll are for emulating old dx1-9c parts for very old (win9x/xp) games t […]
Show full quote

these dgvoodoo2 files:
DDraw.dll
D3DImm.dll
D3D8.dll
D3D9.dll
are for emulating old dx1-9c parts for very old (win9x/xp) games that us dx1-9c
Don't use them with qemu from year 2020.

Do I understand right? If I want to play old games from Windows XP/9x, I can't use the newest QEMU? If so, what version you recommend? And where I should put files? And one more question: could you send me a source code for QEMU 5.0.0 with patched files? I can't find whole source code for QEMU 5.0.0 (only for 5.0.1 is available).

Reply 412 of 418, by Bruninho

User metadata
Rank Oldbie
Rank
Oldbie
wadrasil wrote on 2020-11-05, 07:02:
Bruninho wrote on 2020-07-11, 20:36:

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.

IS there a python-pkg-config available? That is separate from pkg-config?

In homebrew for mac? Nope. python3 package has python-pkg, possibly.

Anyway, the developer has already removed from lastest QEMU 3Dfx Glide patch the possibility to compile for macOS.

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

Reply 413 of 418, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
Bruninho wrote on 2020-11-05, 17:07:

Anyway, the developer has already removed from lastest QEMU 3Dfx Glide patch the possibility to compile for macOS.

Well, it was not that it had worked earlier, so nothing changed as per se.
Anyway, anyone who is keen on getting it on MacOS can always try and experiment. I am more than happy to accept a pull request for XQuartz/NSOpenGL/CocoaGL implementation for MacOS native support. It was what the homebrew was meant to be.

My development focus has always been on Windows 10 and Linux, unfortunately.

Reply 414 of 418, by OSH

User metadata
Rank Member
Rank
Member

I need a clear information: how can I set up QEMU with Glide wrappers under Ubuntu. Where I should copy Glide wrapper files, and what should I install under guest system. Maybe for many users here is a piece of cake, but not all are so advanced.

Reply 415 of 418, by digger

User metadata
Rank Member
Rank
Member

Maybe it would be a good idea to set up Ubuntu PPA and Fedora COPR repositories so people can automatically and conveniently install this gaming-optimized QEMU build? Or alternatively try rolling it in a Flatpak, Snap or AppImage, so it could be installed with just a few clicks? I'd be willing to help set this up.

Reply 418 of 418, by OSH

User metadata
Rank Member
Rank
Member

Ok. I compiled OpenGlide with patch. I installed libglide2x.so in my usr/local/lib. I copied glide2x.dll into a Windows/System, tried to run test04.exe and still I can't run Glide. I get a message „Assertion failed. GRsstWinopen and so on” Is anybody here who can told me, what's now?!
And wglgears works but in window! I haven't any idea… Windows 98 SE