First post, by kjliew
First of all, thanks for making psVoodoo an open sourced glide wrapper.
I started working on Glide pass-through for QEMU, mainly to be able to play ancient 3Dfx Win9x games, which most of them are having hard time working on Windows 10. I have been able to target OpenGlide and psVoodoo. QEMU TCG on x86_64 build is 10~15% faster then i686 build, hence to get the best performance I also need to make x86_64 build of glide wrappers. OpenGlide works right out-of-the-box, thanks to its cross platform OpenGL backend and the only glide wrapper for Linux today.
PsVoodoo had a few issues with x86_64 build to begin with. I fixed all of them and it is now working as x86_64 build. My toolchain is MSYS2/mingw-w64. I would like to submit my improvements to PsVoodoo for x86_64 build and other lingering issues that I came across.
As a summry to existing improvements so far:
- Implement _guTexGetMipMapInfo. This is used by Glide pass-through (both DOSBox & my implementation on QEMU) to be able to calculate the size of data to move between guest and host. This is the reason that psVoodoo cannot be used with DOSBox alone for Tomb Raider 1.
- Implement _guFogGenerateExp, _guFogGenerateExp2 and _guFogGenerateLinear.
- _grSstControl should return FXTRUE.
- _grSstStatus should return idling condition, which is 0x0FFFF07F.
- Fixed 64-bit build errors/warnings due to pointers conversion and Makefile.in for building with GCC.
I am sorry that I don't want to deal with Github and/or Sourceforge.net. So I will be posting patch using this thread. Please let me know if the author is interested in taking these changes.
- New patch supports grGlideGetState/grGlideSetState and other minor fixes.
- QEMU plumbing
- Simple configure/Makefile.in for MSYS2/mingw64 GCC build
- It can run all 3Dfx Glide2x SDK TESTS for tests that don't require 3DF APIs.