QEMU MESA GL/3Dfx Glide Pass-through Copyright (c) 2018-2020 by KJ Liew <liewkj@yahoo.com> Content ------- qemu-0/hw/3dfx - Overlay for QEMU source tree to add 3Dfx Glide pass-through device model qemu-1/hw/mesa - Overlay for QEMU source tree to add MESA GL pass-through device model scripts/sign_commit - Script for stamping commit id wrapper - Glide wrappers for supported guest OS/environment. (DOS/Windows/DJGPP/Linux) wrapqgl - MESA GL wrapper for supported guest OS/environment. (Windows) 00-qemu520-mesa-glide.patch - Patch for QEMU version 5.2x (MESA & Glide) 01-qemu411-mesa-glide.patch - Patch for QEMU version 4.xx (MESA & Glide) 02-qemu311-mesa-glide.patch - Patch for QEMU version 3.xx (MESA & Glide) 99-3dfx.patch - Patch for QEMU version 1.6.x to 2.12.1 (deprecated) 99-oldqemu.patch - Addition patch for QEMU version < 2.10 (deprecated) Following instructions are based on MSYS2/mingw-w64 BASH shell environment on Windows 10. It is meant to be simple and minor variations are inevitable due to different flavors of Linux distributions. Building QEMU ------------- Simple guide to apply the patch: (using 00-qemu520-mesa-glide.patch) $ mkdir ~/myqemu && cd ~/myqemu $ git clone https://github.com/kjliew/qemu-3dfx.git $ cd qemu-3dfx $ wget https://download.qemu.org/qemu-5.2.0.tar.xz $ tar xf qemu-5.2.0.tar.xz $ cd qemu-5.2.0 $ rsync -r ../qemu-0/hw/3dfx ./hw/ $ rsync -r ../qemu-1/hw/mesa ./hw/ $ patch -p0 -i ../00-qemu520-mesa-glide.patch $ chmod +x ../scripts/sign_commit $ ../scripts/sign_commit $ mkdir ../build && cd ../build $ ../qemu-5.2.0/configure && make Building Guest Wrappers ----------------------- Requirements: * base-devel (make, sed, xxd) * pexports * mingw32 cross-tools (binutils, gcc) for WIN32 DLL wrappers * Watcom 11.0 for DOS OVL wrapper * i686-pc-msdosdjgpp cross-tools (binutils, gcc, dxe3gen) for DJGPP DXE wrappers $ cd ~/myqemu/qemu-3dfx/wrapper $ mkdir build && cd build $ cp ../src/Makefile.in ./Makefile $ make && make clean $ cd ~/myqemu/qemu-3dfx/wrapqgl $ mkdir build && cd build $ cp ../src/Makefile.in ./Makefile $ make && make clean