I tried to build devolutionx following the instructions for "Building for the native platform".
Cloned the repository
Installed the list of dependencies (cmake g++ libsdl2-mixer-dev libsdl2-ttf-dev libsodium-dev)
mkdir build
cd build
cmake ..
make -j$(nproc)
But when running I encountered this:
pi@raspberrypi:~/devilutionX/build $ ./devilutionx
==10366==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD.
Not sure what I did wrong, I have tried your rpi binary and it launches fine.
Not sure why this happens but it appears to be something to do with Raspbian as it doesn't happen on other Linux systems. To get it running simply run this command before launching the game:
export LD_PRELOAD=/usr/lib/arm-linux-gnueabihf/libasan.so.5
Had the same, newest raspbian on RasPi 4.
The Trick from AJenbo works, but at the moment the Pi4 is not really fast enough for diablo - it works, but too slow. Maybe that will get better when Raspbian is more optimized for the Pi4 and his GPU.
pi4 not fast enough for diablo? o.O
Works fine on raspberry pi 3, if you either disable upscaling in diablo (see Readme.txt) or enable the experimental GPU driver (use the official raspberry pi config tool from the terminal)
Wonder what's different with raspbian. Are the official builds are cross compiled?
@ThomasChr I noticed that running it from the console (not the desktop environment) launches it at normal speed as well. Perhaps this is due to console resolution?
The official builds are release builds so they do not have debug features like ASAN enabled.
Instead of just using _make -j$(nproc)_ in the build folder, do this:
cmake --build . --config Release -- -j $(nproc)"
Closing this as it is platform and debug specific + theirs a well documented workaround
Most helpful comment
Works fine on raspberry pi 3, if you either disable upscaling in diablo (see Readme.txt) or enable the experimental GPU driver (use the official raspberry pi config tool from the terminal)