Closed github-userx closed 2 years ago
So I tried building manually and still got error at 50% of the building process. Problem seems to be connected to Pomme building process…
pi@raspberrypi:~/Desktop/GAMES/Bugdom $ cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SDL2: /usr/include/SDL2
-- Found OpenGL: /usr/lib/arm-linux-gnueabihf/libGL.so
-- Found SDL2: /usr/include/SDL2
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/Desktop/GAMES/Bugdom/build
pi@raspberrypi:~/Desktop/GAMES/Bugdom $ cmake --build build
Scanning dependencies of target Quesa_SDL
[ 1%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3Geometry.cpp.o
[ 1%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryBox.cpp.o
[ 1%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryCone.cpp.o
[ 2%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryCylinder.cpp.o
[ 2%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryDisk.cpp.o
[ 3%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryEllipse.cpp.o
[ 3%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryEllipsoid.cpp.o
[ 4%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryGeneralPolygon.cpp.o
[ 4%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryLine.cpp.o
[ 4%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryMarker.cpp.o
[ 5%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryMesh.cpp.o
[ 5%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryNURBCurve.cpp.o
[ 6%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryNURBPatch.cpp.o
[ 6%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryPixmapMarker.cpp.o
[ 6%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryPoint.cpp.o
[ 7%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryPolygon.cpp.o
[ 7%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryPolyhedron.cpp.o
[ 8%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryPolyLine.cpp.o
[ 8%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryTorus.cpp.o
[ 9%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryTriangle.cpp.o
[ 9%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryTriGrid.cpp.o
[ 9%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryTriMesh.cpp.o
[ 10%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Geometry/E3GeometryTriMeshOptimize.cpp.o
[ 10%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DCamera.cpp.o
[ 11%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DCustomElements.cpp.o
[ 11%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DDrawContext.cpp.o
[ 11%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DErrors.cpp.o
[ 12%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DExtension.cpp.o
[ 12%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DGeometry.cpp.o
[ 13%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DGroup.cpp.o
[ 13%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DIO.cpp.o
[ 13%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DLight.cpp.o
[ 14%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DMain.cpp.o
[ 14%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DMath.cpp.o
[ 15%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DMemory.cpp.o
[ 15%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DPick.cpp.o
[ 16%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DRenderer.cpp.o
[ 16%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DSet.cpp.o
[ 16%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DShader.cpp.o
[ 17%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DStorage.cpp.o
[ 17%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DString.cpp.o
[ 18%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DStyle.cpp.o
[ 18%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DTransform.cpp.o
[ 18%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Glue/QD3DView.cpp.o
[ 19%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3ArrayOrList.cpp.o
[ 19%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3ClassTree.cpp.o
[ 20%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3Compatibility.cpp.o
[ 20%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3ErrorManager.cpp.o
[ 21%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3Globals.cpp.o
[ 21%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3HashTable.cpp.o
[ 21%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3Pool.cpp.o
[ 22%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3System.cpp.o
[ 22%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3Tessellate.cpp.o
[ 23%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/Support/E3Utils.cpp.o
[ 23%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Camera.cpp.o
[ 23%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3CustomElements.cpp.o
[ 24%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3DrawContext.cpp.o
[ 24%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Errors.cpp.o
[ 25%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Extension.cpp.o
[ 25%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Group.cpp.o
[ 26%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3IO.cpp.o
[ 26%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3IOData.cpp.o
[ 26%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Light.cpp.o
[ 27%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Main.cpp.o
[ 27%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Math.cpp.o
[ 28%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Math_Intersect.cpp.o
[ 28%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Memory.cpp.o
[ 28%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Pick.cpp.o
[ 29%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Renderer.cpp.o
[ 29%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Set.cpp.o
[ 30%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Shader.cpp.o
[ 30%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Storage.cpp.o
[ 31%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3String.cpp.o
[ 31%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Style.cpp.o
[ 31%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Texture.cpp.o
[ 32%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3Transform.cpp.o
[ 32%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Core/System/E3View.cpp.o
[ 33%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Readers/3DMF/E3FFR_3DMF.cpp.o
[ 33%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Readers/3DMF/E3FFR_3DMF_Bin.cpp.o
[ 33%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Readers/3DMF/E3FFR_3DMF_Geometry.cpp.o
[ 34%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Readers/3DMF/E3FFR_3DMF_Text.cpp.o
[ 34%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Writers/3DMF/E3FFW_3DMFBin_Geometry.cpp.o
[ 35%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Writers/3DMF/E3FFW_3DMFBin_Register.cpp.o
[ 35%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/Writers/3DMF/E3FFW_3DMFBin_Writer.cpp.o
[ 35%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/FileFormats/E3IOFileFormat.cpp.o
[ 36%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLCamera.cpp.o
[ 36%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLDrawContext.cpp.o
[ 37%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLGPUSharing.cpp.o
[ 37%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLImmediateVBO.cpp.o
[ 38%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLShadowVolumeManager.cpp.o
[ 38%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLTextureLoader.cpp.o
[ 38%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLTextureManager.cpp.o
[ 39%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLUtils.cpp.o
[ 39%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/GLVBOManager.cpp.o
[ 40%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Common/OptimizedTriMeshElement.cpp.o
[ 40%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Generic/GNGeometry.cpp.o
[ 40%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Generic/GNRegister.cpp.o
[ 41%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/Generic/GNRenderer.cpp.o
[ 41%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/MakeStrip.cpp.o
[ 42%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/StripMaker_FindAdjacencies.cpp.o
[ 42%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/StripMaker_FreeFaceSet.cpp.o
[ 43%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/StripMaker_InitFaces.cpp.o
[ 43%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/StripMaker_JoinStrips.cpp.o
[ 43%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/MakeStrip/StripMaker_MakeSimpleStrip.cpp.o
[ 44%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOCalcTriMeshEdges.cpp.o
[ 44%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOClientStates.cpp.o
[ 45%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOGeometry.cpp.o
[ 45%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOGLShadingLanguage.cpp.o
[ 45%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOGLSLShaders.cpp.o
[ 46%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOLights.cpp.o
[ 46%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOMatrix.cpp.o
[ 47%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOOpaqueTriBuffer.cpp.o
[ 47%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QORegister.cpp.o
[ 48%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QORenderer.cpp.o
[ 48%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOShaderProgramCache.cpp.o
[ 48%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOShadowMarker.cpp.o
[ 49%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOStartAndEnd.cpp.o
[ 49%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOStatics.cpp.o
[ 50%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOTexture.cpp.o
[ 50%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOTransBuffer.cpp.o
[ 50%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Renderers/OpenGL/QOUpdate.cpp.o
[ 51%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Platform/SDL/E3SDLDebug.cpp.o
[ 51%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Platform/SDL/E3SDLDrawContext.cpp.o
[ 52%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Platform/SDL/E3SDLStackCrawl.cpp.o
[ 52%] Building CXX object extern/Quesa/CMakeFiles/Quesa_SDL.dir/Development/Source/Platform/SDL/E3SDLSystem.cpp.o
[ 53%] Linking CXX static library ../../../extern/Quesa/SDK/Libraries/Linux/armv7l/Release/libQuesa_SDL.a
[ 53%] Built target Quesa_SDL
Scanning dependencies of target Pomme
[ 53%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Pomme.cpp.o
[ 54%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/PommeDebug.cpp.o
/home/pi/Desktop/GAMES/Bugdom/extern/Pomme/src/PommeDebug.cpp: In function ‘std::__cxx11::string Pomme::FourCCString(uint32_t, char)’:
/home/pi/Desktop/GAMES/Bugdom/extern/Pomme/src/PommeDebug.cpp:47:7: error: ‘reverse’ is not a member of ‘std’
std::reverse(b, b + 4);
^~~~~~~
make[2]: *** [extern/Pomme/CMakeFiles/Pomme.dir/build.make:76: extern/Pomme/CMakeFiles/Pomme.dir/src/PommeDebug.cpp.o] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:172: extern/Pomme/CMakeFiles/Pomme.dir/all] Fehler 2
make: *** [Makefile:84: all] Fehler 2
pi@raspberrypi:~/Desktop/GAMES/Bugdom $
I just pushed a fix for older compilers. Can you clone again and retry?
Thanks, that was quick! Compiled successfully.
Unfortunately, the game only starts with the legacy graphics driver and not the RaspberryPi2‘s OpenGL driver. With the legacy driver it obviously isn’t playable and freezes almost instantly.
The error I get when trying to start Bugdom with the OpenGL/FullKMS driver enabled on the RaspberryPi2 is just one line in the terminal:
Uncaught exception: not in exclusive GL mode
Nanosaur on the other hand will still start and ran perfectly fine & smooth with the same driver/settings. I also tried the „Fake KMS OpenGL driver“ and updated my system since I saw they recently pushed an update for Mesa/OpenGL stuff on „Rapberrs Pi OS“.
Uses Bugdom any different OpenGL stuff that Nanosaur doesn’t use?
In case this could be useful for finding out what the issue is (I hope it’s fixable and not something that’s driver/device specific and out of our hands):
https://www.raspberrypi.org/forums/viewtopic.php?t=255478
LEGACY - ARM side is a shim that passes commands to the firmware, which has a proprietary gles implementation. Requires some extra calls in the source code to work properly and is missing a lot of extensions.
KMS (currently doesn't work) - Everything happens ARM-side through the a Mesa driver and the kernel. Everything is standard and open.Software built against Mesa should 'just work'.
FKMS (Fake/Firmware KMS) - as above, but instead of relying on KMS support, it's using DispmanX.
What KMS is is a bit complicated to explain and not necessary for the user to understand. I certainly don't.
Right now, the pi 3 and earlier models use the legacy driver. In Raspbian, config.txt turns on FKMS for pi 4.
Pi 4 does not support the legacy driver, so FKMS is the only option right now if you want HW accelerated 3D support.
The long term plan is to move to KMS, but that will take a lot of work.
xxx
Legacy stuff is linked against brcm*.so files, uses headers from /opt/vc, typically uses dispmanx to create a surface, must call bcm_host_init and probably do other stuff that I'm not aware of. FKMS will work if you build against Mesa libraries, you can use SDL, GLUT or a whatever else you want to create the surface, you must not use the headers in /opt/vc/. This is how 99% of software that uses GL on Linux is built. There's no shortage of example code and tutorials on this.
It looks like your Pi model doesn't support OpenGL 3.
The current version of Bugdom uses Quesa for rendering, which requires OpenGL 3.
In the latest version of Nanosaur, I have rewritten the rendering code so it doesn't depend on Quesa anymore. As a result I could lower the OpenGL requirement for Nanosaur to OpenGL 2.
I have been rewriting Bugdom's renderer to get better performance and drop the Quesa requirement. I haven't published that rewrite yet because it's still work in progress. One of these days I'll push it on a separate branch; when I do, please let me know if it works better for you.
Oh that makes sense. Very much looking forward to the rewrite.
You could rely on the Nanosaur code for the Bugdom non-Quesa rewrite, right?
Yes, I started the rewrite from the Nanosaur renderer.
Bugdom does have a few graphics features that weren't in Nanosaur so I still have some work to do for everything to look good.
Awesome. If it works on Pi2, there’s a good chance it could also work on Pi1 (not sure about the Pi Zero)
Do you have an estimated time(frame) on when it will be finished?
I'm not able to give an ETA right now, but you can have a sneak peek if you build the game from branch "noquesa".
Parts of the game are broken in that branch because it's still work in progress. Hopefully though, you'll have better luck running this on your system than the Quesa version.
Note that the menus currently don't work, so you should press the '1' key during the Pangea logo to jump straight into the game.
Thanks!!
@jorio Building with the noquesa branch gives us these errors:
pi@raspberrypi:~/Desktop/neubugdom $ git clone --recurse-submodules -b noquesa https://github.com/jorio/Bugdom
Klone nach 'Bugdom' ...
remote: Enumerating objects: 3769, done.
remote: Counting objects: 100% (3769/3769), done.
remote: Compressing objects: 100% (1071/1071), done.
remote: Total 3769 (delta 2766), reused 3692 (delta 2689), pack-reused 0
Empfange Objekte: 100% (3769/3769), 50.55 MiB | 3.83 MiB/s, Fertig.
Löse Unterschiede auf: 100% (2766/2766), Fertig.
Checke Dateien aus: 100% (330/330), Fertig.
Submodul 'extern/Pomme' (https://github.com/jorio/Pomme) für Pfad 'extern/Pomme' in die Konfiguration eingetragen.
Klone nach '/home/pi/Desktop/neubugdom/Bugdom/extern/Pomme' ...
remote: Enumerating objects: 552, done.
remote: Counting objects: 100% (552/552), done.
remote: Compressing objects: 100% (259/259), done.
remote: Total 552 (delta 349), reused 475 (delta 274), pack-reused 0
Empfange Objekte: 100% (552/552), 189.00 KiB | 1.51 MiB/s, Fertig.
Löse Unterschiede auf: 100% (349/349), Fertig.
Submodul-Pfad: 'extern/Pomme': '1495c647fd604084b3dd493544d7af4fda90457a' ausgecheckt
pi@raspberrypi:~/Desktop/neubugdom $ ls
Bugdom
pi@raspberrypi:~/Desktop/neubugdom $ cd Bugdom/
pi@raspberrypi:~/Desktop/neubugdom/Bugdom $ cmake -S . -B build-release -DCMAKE_BUILD_TYPE=Release
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found SDL2: /usr/include/SDL2
-- Found SDL2: /usr/include/SDL2
-- Found OpenGL: /usr/lib/arm-linux-gnueabihf/libGL.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/Desktop/neubugdom/Bugdom/build-release
pi@raspberrypi:~/Desktop/neubugdom/Bugdom $ cmake --build build-release
Scanning dependencies of target Pomme
[ 1%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Pomme.cpp.o
[ 2%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/PommeDebug.cpp.o
[ 3%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Files/Files.cpp.o
[ 4%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Files/HostVolume.cpp.o
[ 5%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Files/Resources.cpp.o
[ 6%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/ARGBPixmap.cpp.o
[ 7%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/Color.cpp.o
[ 8%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/ColorManager.cpp.o
[ 8%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/Graphics.cpp.o
[ 9%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/PICT.cpp.o
[ 10%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Graphics/SystemPalettes.cpp.o
[ 11%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Input/SDLInput.cpp.o
[ 12%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Memory/Memory.cpp.o
[ 13%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/AIFF.cpp.o
[ 14%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/cmixer.cpp.o
[ 15%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/IMA4.cpp.o
[ 16%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/MACE.cpp.o
[ 17%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/SoundManager.cpp.o
[ 18%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Sound/xlaw.cpp.o
[ 18%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Text/TextUtilities.cpp.o
[ 19%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Time/TimeManager.cpp.o
[ 20%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Utilities/bigendianstreams.cpp.o
[ 21%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Utilities/IEEEExtended.cpp.o
[ 22%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Utilities/memstream.cpp.o
[ 23%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Utilities/StringUtils.cpp.o
[ 24%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/Utilities/structpack.cpp.o
[ 25%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/QD3D/3DMFParser.cpp.o
[ 26%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/QD3D/QD3D.cpp.o
[ 27%] Building CXX object extern/Pomme/CMakeFiles/Pomme.dir/src/QD3D/QD3DMath.cpp.o
[ 28%] Linking CXX static library libPomme.a
[ 28%] Built target Pomme
Scanning dependencies of target Bugdom
[ 28%] Building CXX object CMakeFiles/Bugdom.dir/src/Main.cpp.o
[ 29%] Building C object CMakeFiles/Bugdom.dir/src/Glue/FrustumCulling.c.o
[ 30%] Building C object CMakeFiles/Bugdom.dir/src/Glue/KillMacMouseAcceleration.c.o
[ 31%] Building C object CMakeFiles/Bugdom.dir/src/Glue/MouseSmoothing.c.o
[ 32%] Building C object CMakeFiles/Bugdom.dir/src/Glue/Patch3DMFModels.c.o
[ 33%] Building CXX object CMakeFiles/Bugdom.dir/src/Glue/PickableQuads.cpp.o
[ 34%] Building C object CMakeFiles/Bugdom.dir/src/Glue/SDLMaintenance.c.o
[ 35%] Building C object CMakeFiles/Bugdom.dir/src/Glue/TextMesh.c.o
[ 36%] Building C object CMakeFiles/Bugdom.dir/src/Glue/TGA.c.o
[ 37%] Building C object CMakeFiles/Bugdom.dir/src/Glue/Tween.c.o
[ 38%] Building C object CMakeFiles/Bugdom.dir/src/Glue/UIRoutines.c.o
[ 38%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy.c.o
[ 39%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Ant.c.o
[ 40%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Bee_Flying.c.o
[ 41%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_BoxerFly.c.o
[ 42%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Caterpiller.c.o
[ 43%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_FireAnt.c.o
[ 44%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_FireFly.c.o
[ 45%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_KingAnt.c.o
[ 46%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Larva.c.o
[ 47%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Mosquito.c.o
[ 48%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_PondFish.c.o
[ 48%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_QueenBee.c.o
[ 49%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Roach.c.o
[ 50%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Skippy.c.o
[ 51%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Slug.c.o
[ 52%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Spider.c.o
[ 53%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_Tick.c.o
[ 54%] Building C object CMakeFiles/Bugdom.dir/src/Enemies/Enemy_WorkerBee.c.o
[ 55%] Building C object CMakeFiles/Bugdom.dir/src/Items/Effects.c.o
[ 56%] Building C object CMakeFiles/Bugdom.dir/src/Items/Items.c.o
[ 57%] Building C object CMakeFiles/Bugdom.dir/src/Items/Items2.c.o
[ 58%] Building C object CMakeFiles/Bugdom.dir/src/Items/Liquids.c.o
[ 58%] Building C object CMakeFiles/Bugdom.dir/src/Items/Traps.c.o
[ 59%] Building C object CMakeFiles/Bugdom.dir/src/Items/Triggers.c.o
[ 60%] Building C object CMakeFiles/Bugdom.dir/src/Items/Triggers2.c.o
[ 61%] Building C object CMakeFiles/Bugdom.dir/src/Player/MyGuy.c.o
[ 62%] Building C object CMakeFiles/Bugdom.dir/src/Player/Player_Ball.c.o
[ 63%] Building C object CMakeFiles/Bugdom.dir/src/Player/Player_Bug.c.o
[ 64%] Building C object CMakeFiles/Bugdom.dir/src/Player/Player_Control.c.o
[ 65%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/3DMF.c.o
/home/pi/Desktop/neubugdom/Bugdom/src/QD3D/3DMF.c: In function ‘LoadGrouped3DMF’:
/home/pi/Desktop/neubugdom/Bugdom/src/QD3D/3DMF.c:287:48: warning: passing argument 2 of ‘PatchGrouped3DMF’ from incompatible pointer type [-Wincompatible-pointer-types]
PatchGrouped3DMF(spec->cName, gObjectGroupList[groupNum], nObjects);
~~~~~~~~~~~~~~~~^~~~~~~~~~
In file included from /home/pi/Desktop/neubugdom/Bugdom/src/Headers/game.h:232,
from /home/pi/Desktop/neubugdom/Bugdom/src/QD3D/3DMF.c:12:
/home/pi/Desktop/neubugdom/Bugdom/src/Headers/gamepatches.h:22:53: note: expected ‘void **’ but argument is of type ‘TQ3TriMeshFlatGroup *’ {aka ‘struct TQ3TriMeshFlatGroup *’}
void PatchGrouped3DMF(const char* cName, TQ3Object* objects, int nObjects);
~~~~~~~~~~~^~~~~~~
[ 66%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/3DMath.c.o
[ 67%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/Camera.c.o
[ 68%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/EnvironmentMap.c.o
[ 68%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/Pick.c.o
[ 69%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/QD3D_Geometry.c.o
[ 70%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/QD3D_Support.c.o
[ 71%] Building C object CMakeFiles/Bugdom.dir/src/QD3D/Renderer.c.o
[ 72%] Building C object CMakeFiles/Bugdom.dir/src/Ride/DragonFly.c.o
[ 73%] Building C object CMakeFiles/Bugdom.dir/src/Ride/WaterBug.c.o
[ 74%] Building C object CMakeFiles/Bugdom.dir/src/Screens/AboutScreen.c.o
[ 75%] Building C object CMakeFiles/Bugdom.dir/src/Screens/BonusScreen.c.o
[ 76%] Building C object CMakeFiles/Bugdom.dir/src/Screens/FileSelect.c.o
[ 77%] Building C object CMakeFiles/Bugdom.dir/src/Screens/HighScores.c.o
[ 78%] Building C object CMakeFiles/Bugdom.dir/src/Screens/Infobar.c.o
[ 78%] Building C object CMakeFiles/Bugdom.dir/src/Screens/LevelIntro.c.o
[ 79%] Building C object CMakeFiles/Bugdom.dir/src/Screens/MainMenu.c.o
[ 80%] Building C object CMakeFiles/Bugdom.dir/src/Screens/MiscScreens.c.o
[ 81%] Building C object CMakeFiles/Bugdom.dir/src/Screens/ModelDebug.c.o
[ 82%] Building C object CMakeFiles/Bugdom.dir/src/Screens/SettingsScreen.c.o
[ 83%] Building C object CMakeFiles/Bugdom.dir/src/Screens/Title.c.o
[ 84%] Building C object CMakeFiles/Bugdom.dir/src/Screens/WinLose.c.o
[ 85%] Building C object CMakeFiles/Bugdom.dir/src/Skeleton/Bones.c.o
[ 86%] Building C object CMakeFiles/Bugdom.dir/src/Skeleton/SkeletonAnim.c.o
[ 87%] Building C object CMakeFiles/Bugdom.dir/src/Skeleton/SkeletonJoints.c.o
[ 88%] Building C object CMakeFiles/Bugdom.dir/src/Skeleton/SkeletonObj.c.o
[ 88%] Building C object CMakeFiles/Bugdom.dir/src/System/Collision.c.o
[ 89%] Building C object CMakeFiles/Bugdom.dir/src/System/File.c.o
[ 90%] Building C object CMakeFiles/Bugdom.dir/src/System/Main.c.o
[ 91%] Building C object CMakeFiles/Bugdom.dir/src/System/Misc.c.o
[ 92%] Building C object CMakeFiles/Bugdom.dir/src/System/Objects.c.o
[ 93%] Building C object CMakeFiles/Bugdom.dir/src/System/Objects2.c.o
[ 94%] Building C object CMakeFiles/Bugdom.dir/src/System/Sound.c.o
[ 95%] Building C object CMakeFiles/Bugdom.dir/src/System/Windows.c.o
[ 96%] Building C object CMakeFiles/Bugdom.dir/src/System/input.c.o
[ 97%] Building C object CMakeFiles/Bugdom.dir/src/Terrain/Fences.c.o
[ 98%] Building C object CMakeFiles/Bugdom.dir/src/Terrain/SplineItems.c.o
[ 98%] Building C object CMakeFiles/Bugdom.dir/src/Terrain/Terrain.c.o
/home/pi/Desktop/neubugdom/Bugdom/src/Terrain/Terrain.c: In function ‘CreateSuperTileMemoryList’:
/home/pi/Desktop/neubugdom/Bugdom/src/Terrain/Terrain.c:442:87: error: expected ‘,’ before ‘)’ token
_Static_assert(sizeof(uvs) == sizeof(tmd->vertexUVs[0]) * NUM_VERTICES_IN_SUPERTILE);
^
make[2]: *** [CMakeFiles/Bugdom.dir/build.make:1064: CMakeFiles/Bugdom.dir/src/Terrain/Terrain.c.o] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:96: CMakeFiles/Bugdom.dir/all] Fehler 2
make: *** [Makefile:84: all] Fehler 2
pi@raspberrypi:~/Desktop/neubugdom/Bugdom $
Oops! I just pushed a fix. Can you try again? Let me know if it works for you.
The fix worked! Game built and started, played successfully! Runs smoothly. Only has one time lagging a bit when letting Rolly McFly roll very fast in his shell.
Here a preview of the game running on RaspberryPi-2 (Sound put off by me)
And the graphics at the top where we der health/stealth/points etc. switched between being clear and colorful and being this shadowy/shallow (see the video I posted)
It seems to be running fine so far!
It looks like running at the screen's full resolution is a bit too much for the Pi 2's GPU though. I suppose you could get better framerates out of the game by lowering your display resolution or switching the game to windowed mode (press F11 in game).
Yes, I'm aware of the weirdness with the HUD. The rewrite isn't done yet and some graphical glitches remain :)
Keep an eye out for changes on the noquesa branch if you're interested in following along.
Awesome! Many thanks. Yeah the glitch with the interface at the top always switched. For a few seconds it looked normal but then the colors were shallow/shadowy again.
I will try 720p since my Operating System Settings & Monitor were at 1080p indeed! But hey..who can say that their 3D game runs almost smoothly on a Pi2 in freaking Full-HD! Hehe
Keep up the great work!
Awesome! Many thanks. Yeah the glitch with the interface at the top always switched. For a few seconds it looked normal but then the colors were shallow/shadowy again. I will try 720p since my Operating System Settings & Monitor were at 1080p indeed! But hey..who can say that their 3D game runs almost smoothly on a Pi2 in freaking Full-HD! Hehe Keep up the great work!
What did you do once you compiled the game? Been trying to figure out what to do once I compiled it because it only gives me a binary file and its Data folder, and I need to make the .sh file so that it would load in emulationstation.
@Smashman4 The game expects to find its Data folder in the current working directory. If it doesn't find it, you'll get an error message saying "illegal refNum". So if you're writing a launcher script, you need to 'cd' into the directory that contains Data.
@Smashman4 The game expects to find its Data folder in the current working directory. If it doesn't find it, you'll get an error message saying "illegal refNum". So if you're writing a launcher script, you need to 'cd' into the directory that contains Data.
gotcha. Also, could you update Mighty Mike so that it can run on an older compiler?
@Smashman4 Try to build Mike from branch "devel", I think I fixed it for GCC 7 a while back. I just need to find the time to merge that into the master branch.
Running aarch64 Ubuntu on a pi4, appimages for nanosaur for mightymike (dev branch) work great https://download.opensuse.org/repositories/home:/jpenguin:/Games/AppImage/ You can view my launch script here and I've given up up on learning debian packaging, but if anyone wants to contribute a debian rules file... https://build.opensuse.org/project/show/home:jpenguin:Games
EDIT-- Just compiled buggdom-noquesa on the rpi4, runs great, menu and all https://imgbox.com/LY9Rc9OL
Closing this issue because I'm about to release Bugdom 1.3.1 which includes the new renderer. It should work without modifications on an RPi.
Bless you!