Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Glide wrapper patch #1428

Open
arromdee opened this issue Mar 3, 2020 · 28 comments
Open

Glide wrapper patch #1428

arromdee opened this issue Mar 3, 2020 · 28 comments

Comments

@arromdee
Copy link

arromdee commented Mar 3, 2020

gulikoza's Glide patch (https://www.vogons.org/viewtopic.php?t=16462 ) that works with a Glide wrapper.

A number of years ago I used this patch and it had a much better framerate in Tomb Raider than the Dosbox-x glide support, and worked fullscreen. My computer has newer parts now, but I still need some FPS.

My current system is Mageia Linux 7.1, 64 bit.

@rderooy
Copy link
Contributor

rderooy commented Jun 16, 2020

I had a look at this. It seems the latest glide code can be found as part of DOSBox ECE.
https://dosboxece.yesterplay.net/

Most of the code is pretty straight forward to merge it seems, you just need to take these files verbatim:
src/hardware/glide.cpp
include/glidedef.h
include/glide.h

Add a few config options to dosbox.cpp, add a little code to sdlmain.cpp and update Makefile.am

Where I got stuck, was the last file. The original code adds itself to the Mem_GetPageHandler() in src/hardware/memory.cpp. And that function has changed quite a bit. Looking through the change history, I found that @joncampbell123 had done this to speed up the code, such that not every page request was going through a bunch of range checks. So adding range checks back in seems the wrong thing to do.
61f9907#diff-3fea2cfaa80945f1c5e6e1e45d0ff33d

@Wengier
Copy link
Collaborator

Wengier commented Aug 5, 2020

I have already added support for the Glide wrapper in the latest code. The original code from DOSBox ECE only supports SDL1, thus I modified it somewhat so that it will also work with SDL2. Also, the file GLIDE2X.OVL file is built into DOSBox-X, but the DLL file glide2x.dll/libglide2x.so/libglide2x.dylib will be required for Glide to work. Tested with 3dfx version of Tomb Raider and confirmed to work.

@arromdee
Copy link
Author

Unfortunately, using the glide wrapper and openglide crashes in openglide. I mentioned this in #1788 and also reported this to voyageur's openglide, but don't have high hopes of anyone ever being able to look at it.

It also turned out that my initial problem of low level emulation not being fast enough was not a problem because I didn't have cycles=auto, but it's still awkward to use it because it can't be used fullscreen or in a large window as per #1215. Pure software Voodoo emulation on Tomb Raider is unusable, because any text in the emulated glide window (such as "Lara's Home" on the start screen) is replaced by colored blocks. I also get sound stuttering which is not helped by setting a high blocksize and happens even though my CPU usage is nowhere near 100%.

@Wengier
Copy link
Collaborator

Wengier commented Aug 29, 2020

There are quite a few different implementations of the Glide wrapper, at least on Windows (which I primarily use), such as nGlide, dgVoodoo, Glidos, and OpenGlide. If voyageur's OpenGlide has problems and is no longer actively maintained, perhaps you can try a different implementation, if that exists for your platform.

@rderooy
Copy link
Contributor

rderooy commented Aug 29, 2020

@arromdee I already replied to these issues in #1788. The issue seems to be with OpenGlide on your system, as I can run it just fine on Linux with Intel Graphics. It could be an issue with your graphics card (what graphics card do you have?), or the version of some library like Mesa on your system.

As to Tomb Raider, there are different "versions". The version I have (a late budget re-release), does not have the font rendering problem. Not a real solution obviously, but at least there are versions that do work.

@arromdee
Copy link
Author

My graphics card is a Radeon R7 260X.

Is the font in Tomb Raider (and sound stuttering) a known problem that happens on other systems?

@Wengier
Copy link
Collaborator

Wengier commented Aug 30, 2020

There are several versions of Tomb Raider (DOS), and according to Issue #1713 there seems to exist at least one version that have the font issue with the Voodoo hardware emulation (not the wrapper) when Mipmapping is selected, and the user is using Windows 10. However, in the version I tested I never seen the problem myself, and in fact I could not find the Mipmapping option in the game I tried. That is why I was never able to confirm it myself, but it was indeed reported by at least one user.

@arromdee
Copy link
Author

I confirmed that my version does have the Mipmapping option, and turning it off fixes the problem. The option is located on the title screen, using the sunglasses icon to go from Mipmapping to normal. I believe the option was added for the 3dfx version.

Now that I can see the text I can see that it's below 30 fps. It may just be too slow to run full speed and that's why my sound problems.

@Wengier
Copy link
Collaborator

Wengier commented Aug 30, 2020

@arromdee I see. I re-tried 3dfx version of the game (downloaded online) and found that if I force Voodoo hardware emulation by replacing the GLIDE2X.OVL file from the new Glide feature with the original one provided by 3dfx, then I can indeed see the font problem. And in this mode the game is running in a terribly slow speed (causing sound issues). But both problems are immediately solved if I use the Glide wrapper emulation with the GLIDE2X.OVL file provided by DOSBox-X instead.

@arromdee
Copy link
Author

Given that Dosbox-x even tries to get demos to work because demos exercise edge cases that make emulation more accurate, I hope the font problem could be fixed someday, even though it wouldn't really help me right now. Actualy, I'm sort of stuck--software mode is too slow, high level crashes, and low level works but the limitations on fullscreen and window size make it awkward

@Wengier
Copy link
Collaborator

Wengier commented Aug 31, 2020

@arromdee Yes, I do have plan to fix Voodoo hardware emulation by porting new code, but the change will not be small and a new DOSBox-X version is coming very soon, so maybe the next version.

By the way, for high-level emulation, as I mentioned earlier perhaps you can try a different Glide wrapper implementation if voyageur's OpenGlide does not support your system.

@rderooy
Copy link
Contributor

rderooy commented Aug 31, 2020

I was not able to find another glide wrapper implementation for Linux. My son has a PC with an AMD RX590, I will try to see if I can test it on that in the next few days to determine if it is an issue with the AMD OpenGL implementation on Linux.

@Wengier
Copy link
Collaborator

Wengier commented Aug 31, 2020

According to online discussions some Linux users seem to use Windows Glide wrappers with Wine in Linux and it works for them. So this can be a possible option too. Examples:

https://forum.winehq.org/viewtopic.php?t=15142
https://ubuntuforums.org/showthread.php?t=2376350

@rderooy
Copy link
Contributor

rderooy commented Aug 31, 2020

Yes, but then you also need to run the Windows build of DOSBox-X through wine, which seems like an additional layer of redirection.

@rderooy
Copy link
Contributor

rderooy commented Sep 1, 2020

Not sure what is going on, but Glide pass-through no longer works for me on either my Intel graphics PC or the AMD graphics PC. It seems that DOSBox-X no longer recognises that I have libglide2x.so and does not provide the glide2x.ovl on the Z: drive.

Meanwhile the glide libraries are still found.

$ ldconfig -p|grep glide
	libglide2x.so.0 (libc6,x86-64) => /usr/local/lib/libglide2x.so.0
	libglide2x.so (libc6,x86-64) => /usr/local/lib/libglide2x.so

Looking through the log, all I find is:

LOG: VOODOO LFB now at d0000000

edit

Never mind, forgot that [pci] is now [voodoo] (and voodoo= is now voodoo_card=)...

Also, I can confirm that it works here on a Fedora 32 x86_64 installation with AMD RX590 graphics.

@Wengier
Copy link
Collaborator

Wengier commented Sep 1, 2020

@rderooy Yes, [pci] section no longer applies, use [voodoo] instead.

@arromdee
Copy link
Author

arromdee commented Sep 2, 2020

Also, I can confirm that it works here on a Fedora 32 x86_64 installation with AMD RX590 graphics.

Do you get the 'warning: "GL_GLEXT_VERSION" redefined when building openglide'?

@rderooy
Copy link
Contributor

rderooy commented Sep 3, 2020

Yes I do.

In file included from Glextensions.h:16,
                 from GLutil.cpp:20:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      |
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from grguTex.cpp:13:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      |

Full log below;

$ make
make  all-recursive
make[1]: Entering directory '/home/robert/github/openglide'
Making all in platform
make[2]: Entering directory '/home/robert/github/openglide/platform'
Making all in linux
make[3]: Entering directory '/home/robert/github/openglide/platform/linux'
/bin/sh ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I../../platform/linux  -MT library.lo -MD -MP -MF .deps/library.Tpo -c -o library.lo library.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I../../platform/linux -MT library.lo -MD -MP -MF .deps/library.Tpo -c library.cpp  -fPIC -DPIC -o .libs/library.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I../../platform/linux -MT library.lo -MD -MP -MF .deps/library.Tpo -c library.cpp -o library.o >/dev/null 2>&1
mv -f .deps/library.Tpo .deps/library.Plo
/bin/sh ../../libtool  --tag=CXX   --mode=link g++  -g -O2 -D__unix__ -D__linux__ -I../../platform/linux    -o libplatform.la  clock.lo error.lo openglext.lo library.lo window.lo  -lSDL -lpthread -lGL -lGLU
libtool: link: rm -fr  .libs/libplatform.a .libs/libplatform.la
libtool: link: ar cru .libs/libplatform.a .libs/clock.o .libs/error.o .libs/openglext.o .libs/library.o .libs/window.o 
libtool: link: ranlib .libs/libplatform.a
libtool: link: ( cd ".libs" && rm -f "libplatform.la" && ln -s "../libplatform.la" "libplatform.la" )
make[3]: Leaving directory '/home/robert/github/openglide/platform/linux'
Making all in sdl
make[3]: Entering directory '/home/robert/github/openglide/platform/sdl'
/bin/sh ../../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I../..  -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I../../platform/linux  -MT window.lo -MD -MP -MF .deps/window.Tpo -c -o window.lo window.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I../../platform/linux -MT window.lo -MD -MP -MF .deps/window.Tpo -c window.cpp  -fPIC -DPIC -o .libs/window.o
window.cpp: In function ‘bool InitialiseOpenGLWindow(FxU, int, int, int, int)’:
window.cpp:66:24: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
   66 |                 putenv("SDL_WINDOWID");
      |                        ^~~~~~~~~~~~~~
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I../../platform/linux -MT window.lo -MD -MP -MF .deps/window.Tpo -c window.cpp -o window.o >/dev/null 2>&1
mv -f .deps/window.Tpo .deps/window.Plo
/bin/sh ../../libtool  --tag=CXX   --mode=link g++  -g -O2 -D__unix__ -D__linux__ -I../../platform/linux    -o libsdl.la  openglext.lo window.lo  -lSDL -lpthread -lGL -lGLU
libtool: link: rm -fr  .libs/libsdl.a .libs/libsdl.la
libtool: link: ar cru .libs/libsdl.a .libs/openglext.o .libs/window.o 
libtool: link: ranlib .libs/libsdl.a
libtool: link: ( cd ".libs" && rm -f "libsdl.la" && ln -s "../libsdl.la" "libsdl.la" )
make[3]: Leaving directory '/home/robert/github/openglide/platform/sdl'
Making all in windows
make[3]: Entering directory '/home/robert/github/openglide/platform/windows'
make[3]: Nothing to be done for 'all'.
make[3]: Leaving directory '/home/robert/github/openglide/platform/windows'
make[3]: Entering directory '/home/robert/github/openglide/platform'
make[3]: Nothing to be done for 'all-am'.
make[3]: Leaving directory '/home/robert/github/openglide/platform'
make[2]: Leaving directory '/home/robert/github/openglide/platform'
make[2]: Entering directory '/home/robert/github/openglide'
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguDepth.lo -MD -MP -MF .deps/grguDepth.Tpo -c -o grguDepth.lo grguDepth.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguDepth.lo -MD -MP -MF .deps/grguDepth.Tpo -c grguDepth.cpp  -fPIC -DPIC -o .libs/grguDepth.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguDepth.lo -MD -MP -MF .deps/grguDepth.Tpo -c grguDepth.cpp -o grguDepth.o >/dev/null 2>&1
mv -f .deps/grguDepth.Tpo .deps/grguDepth.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguMisc.lo -MD -MP -MF .deps/grguMisc.Tpo -c -o grguMisc.lo grguMisc.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguMisc.lo -MD -MP -MF .deps/grguMisc.Tpo -c grguMisc.cpp  -fPIC -DPIC -o .libs/grguMisc.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguMisc.lo -MD -MP -MF .deps/grguMisc.Tpo -c grguMisc.cpp -o grguMisc.o >/dev/null 2>&1
mv -f .deps/grguMisc.Tpo .deps/grguMisc.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grgu3df.lo -MD -MP -MF .deps/grgu3df.Tpo -c -o grgu3df.lo grgu3df.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grgu3df.lo -MD -MP -MF .deps/grgu3df.Tpo -c grgu3df.cpp  -fPIC -DPIC -o .libs/grgu3df.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grgu3df.lo -MD -MP -MF .deps/grgu3df.Tpo -c grgu3df.cpp -o grgu3df.o >/dev/null 2>&1
mv -f .deps/grgu3df.Tpo .deps/grgu3df.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguDraw.lo -MD -MP -MF .deps/grguDraw.Tpo -c -o grguDraw.lo grguDraw.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguDraw.lo -MD -MP -MF .deps/grguDraw.Tpo -c grguDraw.cpp  -fPIC -DPIC -o .libs/grguDraw.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguDraw.lo -MD -MP -MF .deps/grguDraw.Tpo -c grguDraw.cpp -o grguDraw.o >/dev/null 2>&1
mv -f .deps/grguDraw.Tpo .deps/grguDraw.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguSstGlide.lo -MD -MP -MF .deps/grguSstGlide.Tpo -c -o grguSstGlide.lo grguSstGlide.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguSstGlide.lo -MD -MP -MF .deps/grguSstGlide.Tpo -c grguSstGlide.cpp  -fPIC -DPIC -o .libs/grguSstGlide.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguSstGlide.lo -MD -MP -MF .deps/grguSstGlide.Tpo -c grguSstGlide.cpp -o grguSstGlide.o >/dev/null 2>&1
mv -f .deps/grguSstGlide.Tpo .deps/grguSstGlide.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguFog.lo -MD -MP -MF .deps/grguFog.Tpo -c -o grguFog.lo grguFog.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguFog.lo -MD -MP -MF .deps/grguFog.Tpo -c grguFog.cpp  -fPIC -DPIC -o .libs/grguFog.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguFog.lo -MD -MP -MF .deps/grguFog.Tpo -c grguFog.cpp -o grguFog.o >/dev/null 2>&1
mv -f .deps/grguFog.Tpo .deps/grguFog.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguTex.lo -MD -MP -MF .deps/grguTex.Tpo -c -o grguTex.lo grguTex.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguTex.lo -MD -MP -MF .deps/grguTex.Tpo -c grguTex.cpp  -fPIC -DPIC -o .libs/grguTex.o
In file included from Glextensions.h:16,
                 from grguTex.cpp:15:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from grguTex.cpp:13:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguTex.lo -MD -MP -MF .deps/grguTex.Tpo -c grguTex.cpp -o grguTex.o >/dev/null 2>&1
mv -f .deps/grguTex.Tpo .deps/grguTex.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguLfb.lo -MD -MP -MF .deps/grguLfb.Tpo -c -o grguLfb.lo grguLfb.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguLfb.lo -MD -MP -MF .deps/grguLfb.Tpo -c grguLfb.cpp  -fPIC -DPIC -o .libs/grguLfb.o
In file included from Glextensions.h:16,
                 from grguLfb.cpp:14:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from grguLfb.cpp:13:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguLfb.lo -MD -MP -MF .deps/grguLfb.Tpo -c grguLfb.cpp -o grguLfb.o >/dev/null 2>&1
mv -f .deps/grguLfb.Tpo .deps/grguLfb.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT GLRender.lo -MD -MP -MF .deps/GLRender.Tpo -c -o GLRender.lo GLRender.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLRender.lo -MD -MP -MF .deps/GLRender.Tpo -c GLRender.cpp  -fPIC -DPIC -o .libs/GLRender.o
In file included from Glextensions.h:16,
                 from GLRender.cpp:15:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from GLRender.cpp:13:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLRender.lo -MD -MP -MF .deps/GLRender.Tpo -c GLRender.cpp -o GLRender.o >/dev/null 2>&1
mv -f .deps/GLRender.Tpo .deps/GLRender.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT OGLFogTables.lo -MD -MP -MF .deps/OGLFogTables.Tpo -c -o OGLFogTables.lo OGLFogTables.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLFogTables.lo -MD -MP -MF .deps/OGLFogTables.Tpo -c OGLFogTables.cpp  -fPIC -DPIC -o .libs/OGLFogTables.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLFogTables.lo -MD -MP -MF .deps/OGLFogTables.Tpo -c OGLFogTables.cpp -o OGLFogTables.o >/dev/null 2>&1
mv -f .deps/OGLFogTables.Tpo .deps/OGLFogTables.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT OGLTextureTables.lo -MD -MP -MF .deps/OGLTextureTables.Tpo -c -o OGLTextureTables.lo OGLTextureTables.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLTextureTables.lo -MD -MP -MF .deps/OGLTextureTables.Tpo -c OGLTextureTables.cpp  -fPIC -DPIC -o .libs/OGLTextureTables.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLTextureTables.lo -MD -MP -MF .deps/OGLTextureTables.Tpo -c OGLTextureTables.cpp -o OGLTextureTables.o >/dev/null 2>&1
mv -f .deps/OGLTextureTables.Tpo .deps/OGLTextureTables.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT OGLColorAlphaTables.lo -MD -MP -MF .deps/OGLColorAlphaTables.Tpo -c -o OGLColorAlphaTables.lo OGLColorAlphaTables.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLColorAlphaTables.lo -MD -MP -MF .deps/OGLColorAlphaTables.Tpo -c OGLColorAlphaTables.cpp  -fPIC -DPIC -o .libs/OGLColorAlphaTables.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT OGLColorAlphaTables.lo -MD -MP -MF .deps/OGLColorAlphaTables.Tpo -c OGLColorAlphaTables.cpp -o OGLColorAlphaTables.o >/dev/null 2>&1
mv -f .deps/OGLColorAlphaTables.Tpo .deps/OGLColorAlphaTables.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT TexDB.lo -MD -MP -MF .deps/TexDB.Tpo -c -o TexDB.lo TexDB.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT TexDB.lo -MD -MP -MF .deps/TexDB.Tpo -c TexDB.cpp  -fPIC -DPIC -o .libs/TexDB.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT TexDB.lo -MD -MP -MF .deps/TexDB.Tpo -c TexDB.cpp -o TexDB.o >/dev/null 2>&1
mv -f .deps/TexDB.Tpo .deps/TexDB.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT PGUTexture.lo -MD -MP -MF .deps/PGUTexture.Tpo -c -o PGUTexture.lo PGUTexture.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT PGUTexture.lo -MD -MP -MF .deps/PGUTexture.Tpo -c PGUTexture.cpp  -fPIC -DPIC -o .libs/PGUTexture.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT PGUTexture.lo -MD -MP -MF .deps/PGUTexture.Tpo -c PGUTexture.cpp -o PGUTexture.o >/dev/null 2>&1
mv -f .deps/PGUTexture.Tpo .deps/PGUTexture.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT Glide.lo -MD -MP -MF .deps/Glide.Tpo -c -o Glide.lo Glide.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT Glide.lo -MD -MP -MF .deps/Glide.Tpo -c Glide.cpp  -fPIC -DPIC -o .libs/Glide.o
In file included from Glextensions.h:16,
                 from Glide.cpp:16:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from Glide.cpp:15:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT Glide.lo -MD -MP -MF .deps/Glide.Tpo -c Glide.cpp -o Glide.o >/dev/null 2>&1
mv -f .deps/Glide.Tpo .deps/Glide.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT GLExtensions.lo -MD -MP -MF .deps/GLExtensions.Tpo -c -o GLExtensions.lo GLExtensions.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLExtensions.lo -MD -MP -MF .deps/GLExtensions.Tpo -c GLExtensions.cpp  -fPIC -DPIC -o .libs/GLExtensions.o
In file included from Glextensions.h:16,
                 from GLExtensions.cpp:19:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from GLExtensions.cpp:17:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLExtensions.lo -MD -MP -MF .deps/GLExtensions.Tpo -c GLExtensions.cpp -o GLExtensions.o >/dev/null 2>&1
mv -f .deps/GLExtensions.Tpo .deps/GLExtensions.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT PGTexture.lo -MD -MP -MF .deps/PGTexture.Tpo -c -o PGTexture.lo PGTexture.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT PGTexture.lo -MD -MP -MF .deps/PGTexture.Tpo -c PGTexture.cpp  -fPIC -DPIC -o .libs/PGTexture.o
In file included from Glextensions.h:16,
                 from PGTexture.cpp:15:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from PGTexture.cpp:13:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT PGTexture.lo -MD -MP -MF .deps/PGTexture.Tpo -c PGTexture.cpp -o PGTexture.o >/dev/null 2>&1
mv -f .deps/PGTexture.Tpo .deps/PGTexture.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT FormatConversion.lo -MD -MP -MF .deps/FormatConversion.Tpo -c -o FormatConversion.lo FormatConversion.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT FormatConversion.lo -MD -MP -MF .deps/FormatConversion.Tpo -c FormatConversion.cpp  -fPIC -DPIC -o .libs/FormatConversion.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT FormatConversion.lo -MD -MP -MF .deps/FormatConversion.Tpo -c FormatConversion.cpp -o FormatConversion.o >/dev/null 2>&1
mv -f .deps/FormatConversion.Tpo .deps/FormatConversion.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguBuffer.lo -MD -MP -MF .deps/grguBuffer.Tpo -c -o grguBuffer.lo grguBuffer.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguBuffer.lo -MD -MP -MF .deps/grguBuffer.Tpo -c grguBuffer.cpp  -fPIC -DPIC -o .libs/grguBuffer.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguBuffer.lo -MD -MP -MF .deps/grguBuffer.Tpo -c grguBuffer.cpp -o grguBuffer.o >/dev/null 2>&1
mv -f .deps/grguBuffer.Tpo .deps/grguBuffer.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT grguColorAlpha.lo -MD -MP -MF .deps/grguColorAlpha.Tpo -c -o grguColorAlpha.lo grguColorAlpha.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguColorAlpha.lo -MD -MP -MF .deps/grguColorAlpha.Tpo -c grguColorAlpha.cpp  -fPIC -DPIC -o .libs/grguColorAlpha.o
In file included from Glextensions.h:16,
                 from grguColorAlpha.cpp:17:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from grguColorAlpha.cpp:15:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT grguColorAlpha.lo -MD -MP -MF .deps/grguColorAlpha.Tpo -c grguColorAlpha.cpp -o grguColorAlpha.o >/dev/null 2>&1
mv -f .deps/grguColorAlpha.Tpo .deps/grguColorAlpha.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT GLutil.lo -MD -MP -MF .deps/GLutil.Tpo -c -o GLutil.lo GLutil.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLutil.lo -MD -MP -MF .deps/GLutil.Tpo -c GLutil.cpp  -fPIC -DPIC -o .libs/GLutil.o
In file included from Glextensions.h:16,
                 from GLutil.cpp:20:
glext.h:54: warning: "GL_GLEXT_VERSION" redefined
   54 | #define GL_GLEXT_VERSION 16
      | 
In file included from /usr/include/GL/gl.h:2050,
                 from /usr/include/SDL/SDL_opengl.h:48,
                 from platform/window.h:23,
                 from GlOgl.h:39,
                 from GLutil.cpp:19:
/usr/include/GL/glext.h:54: note: this is the location of the previous definition
   54 | #define GL_GLEXT_VERSION 20190805
      | 
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT GLutil.lo -MD -MP -MF .deps/GLutil.Tpo -c GLutil.cpp -o GLutil.o >/dev/null 2>&1
mv -f .deps/GLutil.Tpo .deps/GLutil.Plo
/bin/sh ./libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I.   -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -MT gsplash.lo -MD -MP -MF .deps/gsplash.Tpo -c -o gsplash.lo gsplash.cpp
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT gsplash.lo -MD -MP -MF .deps/gsplash.Tpo -c gsplash.cpp  -fPIC -DPIC -o .libs/gsplash.o
libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include -g -O2 -D__unix__ -D__linux__ -I./platform/linux -MT gsplash.lo -MD -MP -MF .deps/gsplash.Tpo -c gsplash.cpp -o gsplash.o >/dev/null 2>&1
mv -f .deps/gsplash.Tpo .deps/gsplash.Plo
/bin/sh ./libtool  --tag=CXX   --mode=link g++  -g -O2 -D__unix__ -D__linux__ -I./platform/linux  -no-undefined -version-info 0:0:0   -o libglide2x.la -rpath /usr/local/lib grguDepth.lo grguMisc.lo grgu3df.lo grguDraw.lo grguSstGlide.lo grguFog.lo grguTex.lo grguLfb.lo GLRender.lo OGLFogTables.lo OGLTextureTables.lo OGLColorAlphaTables.lo TexDB.lo PGUTexture.lo Glide.lo GLExtensions.lo PGTexture.lo FormatConversion.lo grguBuffer.lo grguColorAlpha.lo GLutil.lo gsplash.lo ./platform/linux/libplatform.la ./platform/sdl/libsdl.la ./platform/windows/libwindows.la -lSDL -lpthread -lGL -lGLU
libtool: link: rm -fr  .libs/libglide2x.a .libs/libglide2x.la .libs/libglide2x.lai .libs/libglide2x.so .libs/libglide2x.so.0 .libs/libglide2x.so.0.0.0
libtool: link: g++  -fPIC -DPIC -shared -nostdlib /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/crti.o /usr/lib/gcc/x86_64-redhat-linux/10/crtbeginS.o  .libs/grguDepth.o .libs/grguMisc.o .libs/grgu3df.o .libs/grguDraw.o .libs/grguSstGlide.o .libs/grguFog.o .libs/grguTex.o .libs/grguLfb.o .libs/GLRender.o .libs/OGLFogTables.o .libs/OGLTextureTables.o .libs/OGLColorAlphaTables.o .libs/TexDB.o .libs/PGUTexture.o .libs/Glide.o .libs/GLExtensions.o .libs/PGTexture.o .libs/FormatConversion.o .libs/grguBuffer.o .libs/grguColorAlpha.o .libs/GLutil.o .libs/gsplash.o  -Wl,--whole-archive ./platform/linux/.libs/libplatform.a ./platform/sdl/.libs/libsdl.a ./platform/windows/.libs/libwindows.a -Wl,--no-whole-archive  -lSDL -lpthread -lGL -lGLU -L/usr/lib/gcc/x86_64-redhat-linux/10 -L/usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/lib/gcc/x86_64-redhat-linux/10/../../.. -lstdc++ -lm -lc -lgcc_s /usr/lib/gcc/x86_64-redhat-linux/10/crtendS.o /usr/lib/gcc/x86_64-redhat-linux/10/../../../../lib64/crtn.o  -g -O2   -Wl,-soname -Wl,libglide2x.so.0 -o .libs/libglide2x.so.0.0.0
libtool: link: (cd ".libs" && rm -f "libglide2x.so.0" && ln -s "libglide2x.so.0.0.0" "libglide2x.so.0")
libtool: link: (cd ".libs" && rm -f "libglide2x.so" && ln -s "libglide2x.so.0.0.0" "libglide2x.so")
libtool: link: (cd .libs/libglide2x.lax/libplatform.a && ar x "/home/robert/github/openglide/./platform/linux/.libs/libplatform.a")
libtool: link: (cd .libs/libglide2x.lax/libsdl.a && ar x "/home/robert/github/openglide/./platform/sdl/.libs/libsdl.a")
libtool: link: (cd .libs/libglide2x.lax/libwindows.a && ar x "/home/robert/github/openglide/./platform/windows/.libs/libwindows.a")
copying selected object files to avoid basename conflicts...
libtool: link: ln .libs/libglide2x.lax/libsdl.a/openglext.o .libs/libglide2x.lax/lt1-openglext.o || cp .libs/libglide2x.lax/libsdl.a/openglext.o .libs/libglide2x.lax/lt1-openglext.o
libtool: link: ln .libs/libglide2x.lax/libsdl.a/window.o .libs/libglide2x.lax/lt2-window.o || cp .libs/libglide2x.lax/libsdl.a/window.o .libs/libglide2x.lax/lt2-window.o
libtool: link: ln .libs/libglide2x.lax/libwindows.a/clock.o .libs/libglide2x.lax/lt3-clock.o || cp .libs/libglide2x.lax/libwindows.a/clock.o .libs/libglide2x.lax/lt3-clock.o
libtool: link: ln .libs/libglide2x.lax/libwindows.a/error.o .libs/libglide2x.lax/lt4-error.o || cp .libs/libglide2x.lax/libwindows.a/error.o .libs/libglide2x.lax/lt4-error.o
libtool: link: ln .libs/libglide2x.lax/libwindows.a/library.o .libs/libglide2x.lax/lt5-library.o || cp .libs/libglide2x.lax/libwindows.a/library.o .libs/libglide2x.lax/lt5-library.o
libtool: link: ln .libs/libglide2x.lax/libwindows.a/openglext.o .libs/libglide2x.lax/lt6-openglext.o || cp .libs/libglide2x.lax/libwindows.a/openglext.o .libs/libglide2x.lax/lt6-openglext.o
libtool: link: ln .libs/libglide2x.lax/libwindows.a/window.o .libs/libglide2x.lax/lt7-window.o || cp .libs/libglide2x.lax/libwindows.a/window.o .libs/libglide2x.lax/lt7-window.o
libtool: link: ar cru .libs/libglide2x.a grguDepth.o grguMisc.o grgu3df.o grguDraw.o grguSstGlide.o grguFog.o grguTex.o grguLfb.o GLRender.o OGLFogTables.o OGLTextureTables.o OGLColorAlphaTables.o TexDB.o PGUTexture.o Glide.o GLExtensions.o PGTexture.o FormatConversion.o grguBuffer.o grguColorAlpha.o GLutil.o gsplash.o .libs/libglide2x.lax/libplatform.a/clock.o .libs/libglide2x.lax/libplatform.a/error.o .libs/libglide2x.lax/libplatform.a/library.o .libs/libglide2x.lax/libplatform.a/openglext.o .libs/libglide2x.lax/libplatform.a/window.o .libs/libglide2x.lax/lt1-openglext.o .libs/libglide2x.lax/lt2-window.o .libs/libglide2x.lax/lt3-clock.o .libs/libglide2x.lax/lt4-error.o .libs/libglide2x.lax/lt5-library.o .libs/libglide2x.lax/lt6-openglext.o .libs/libglide2x.lax/lt7-window.o
libtool: link: ranlib .libs/libglide2x.a
libtool: link: rm -fr .libs/libglide2x.lax .libs/libglide2x.lax
libtool: link: ( cd ".libs" && rm -f "libglide2x.la" && ln -s "../libglide2x.la" "libglide2x.la" )
make[2]: Leaving directory '/home/robert/github/openglide'
make[1]: Leaving directory '/home/robert/github/openglide'

@arromdee
Copy link
Author

arromdee commented Sep 3, 2020

After I rebuild both openglide and dosbox-x without optimization, I still get the crash. Debugging it gives me this.

Core was generated by `dosbox-x'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f2776336d00 in __memcpy_ssse3 () from /lib64/libc.so.6
[Current thread is 1 (Thread 0x7f2777fff1c0 (LWP 13086))]
Missing separate debuginfos, use: ...
(gdb) where
#0  0x00007f2776336d00 in __memcpy_ssse3 () from /lib64/libc.so.6
#1  0x00007f276d1eadb4 in u_upload_data () from /usr/lib64/dri/radeonsi_dri.so
#2  0x00007f276d21b044 in u_vbuf_draw_vbo ()
   from /usr/lib64/dri/radeonsi_dri.so
#3  0x00007f276d6fb1bf in st_draw_vbo () from /usr/lib64/dri/radeonsi_dri.so
#4  0x00007f276d79710d in _mesa_draw_arrays ()
   from /usr/lib64/dri/radeonsi_dri.so
#5  0x00007f276d7971b0 in _mesa_DrawArrays ()
   from /usr/lib64/dri/radeonsi_dri.so
#6  0x00007f277147bb15 in RenderDrawTriangles () at GLRender.cpp:219
#7  0x00007f2771487d52 in grAlphaBlendFunction (rgb_sf=1, rgb_df=5, 
    alpha_sf=4, alpha_df=0) at grguColorAlpha.cpp:336
#8  0x00007f277148ad12 in drawFaces (frame=1, objnum=1) at gsplash.cpp:494
#9  0x00007f277148c1ac in grSplash (x=0, y=0, w=640, h=480, _frame=0)
    at gsplash.cpp:879
#10 0x00007f2771478da9 in grSstWinOpen (hwnd=48234515, res=7, ref=0, 
    cformat=0, org_loc=0, num_buffers=2, num_aux_buffers=1)
    at grguSstGlide.cpp:413
#11 0x00000000008605f9 in process_msg (value=75) at glide.cpp:1314
#12 0x000000000085e0ec in write_gl (port=1536, val=75, iolen=1)
    at glide.cpp:159
#13 0x00000000007bc60b in IO_WriteB (port=1536, val=75 'K')
    at iohandler.cpp:499
#14 0x00007f2744321d94 in ?? ()
#15 0x00007f2744972690 in ?? ()
#16 0x00000000043e0f38 in cache ()
#17 0x000000000000089d in ?? ()
#18 0x0000000000000075 in ?? ()
#19 0x0000000000000670 in ?? ()
#20 0x00007ffcb1612640 in ?? ()
#21 0x00007ffcb16123a0 in ?? ()
#22 0x00000000009ea9e8 in CPU_Core_Dynrec_Run () at core_dynrec.cpp:309
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) up 6
#6  0x00007f277147bb15 in RenderDrawTriangles () at GLRender.cpp:219
219	            glDrawArrays( GL_TRIANGLES, 0, OGLRender.NumberOfTriangles * 3 );
(gdb) print OGLRender.NumberOfTriangles
$1 = 1
(gdb) quit

@Wengier
Copy link
Collaborator

Wengier commented Sep 26, 2020

@arromdee I believe I have already fixed the font issue in the Voodoo hardware emulation in the latest code. As mentioned earlier portions of the code were ported from DOSBox ECE, but it is not a complete port of code from it.

@usergithub64
Copy link

I am using DOSBox-X build 0.83.7 MinGW x64 SDL1. I was unable to start Carmageddon with 3Dfx. I copied all the necessary files to the DOSBox-X folder for x64: Glide.dll, Glide2x.dll, Glide3x.dll (taken from DGVoodoo). Here is the configuration:
[voodoo]
voodoo_card = auto
voodoo_maxmem = true
glide = true
lfb = full_noaux
splash = true
Carmageddon with 3Dfx starts up, there is sound, but a black screen. While the same Carmageddon with 3Dfx runs normally under DOSBox-ECE. Maybe something else is missing, or is it just that DOSBox-X does not fully emulate 3Dfx yet? In DOSBox-X 0.83.7 MinGW x64 SDL1 I was able to run only BLOOD with 3Dfx patch under 3Dfx.

@Wengier
Copy link
Collaborator

Wengier commented Nov 21, 2020

@maximus105 Where did you download the game from?

@usergithub64
Copy link

usergithub64 commented Nov 21, 2020

@Wengier
Copy link
Collaborator

Wengier commented Nov 26, 2020

@maximus105 Thanks for uploading it. DOSBox-X does fully emulate 3Dfx, but maybe there is some oversight somewhere for this case. I will look at it further.

@Wengier
Copy link
Collaborator

Wengier commented Dec 28, 2020

@maximus105 This is likely caused by the 2D texture bug. It is hopefully fixed in #2129. Tested with Windows 32-bit SDL1 and SDL2 builds with nGlide.

@usergithub64
Copy link

usergithub64 commented Jan 3, 2021

@Wengier Carmageddon is already startup and running with 3Dfx in build MinGW x64 SDL1 v0.83.9. Thanks!

@xlla
Copy link

xlla commented Jan 16, 2021

openglide seems only support SDL 1.x, for SDL 2 build environment, it will fall back to X implement.

so combine SDL 2 version dosbox-x together with X version openglide will result in stuck mode, no keyboard input event can be send to game window.

SDL 1.x version dosbox-x + SDL1.x version openglide works, for 3dfx tomb raider 1 will got 30fps on menu screen, 17+fps in game, but the loading video was very choppy.

@rderooy
Copy link
Contributor

rderooy commented Jan 16, 2021

@xlla Correct, openglide is only SDL1 for now. I have opened an issue upstream for it here: voyageur/openglide#20

@aybe aybe removed the Patch label Nov 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants