Brutal Doom 64 in Proton

Remember Nintendo Doom 64?
A whole new chapter of Doom not a re-make of the original! Wielding the classic arsenal including the double-shotgun, but immerses you in new levels, creatures and new special effects! Brutal Doom 64 is a remake of this Nintendo classic!


I really really tried to get the native Linux version running! First played with GZDoom and the pk3 files... but it was a no go!
Then found the developer supplied a native version and it complained about missing libraries. So of course I found them in my Steam directory and did some copy/paste into the Doom 64 directory, but multiple errors and not worth the trouble. Finally I attempted the tried-n-true Proton with the Windows executable and it worked! Beautifully!

Mint 21.3 64-bit
GeForce GTX 1650
Nvidia 580
Heroic Launcher
Proton Experimental

doom64-0.jpg
doom64-1.jpg
doom64-2.jpg
doom64-3.jpg
doom64-4.jpg
doom64-5.jpg
doom64-6.jpg
doom64-7.jpg
 
I was interested when you stated there was a native linux version, so did some playing:

First off, I downloaded the package "Brutal Doom 64 2.0 on Linux" which already had the necessary skins and whatnot extracted. Running ldd on the zandronum binary showed that it pulled in a load of old and not very nice libraries, so I downloaded the latest zandronum3.2.1 and simply copied it over the top of the version provided by Brutal Doom, since the bundled version is about 4 years old.

That done, I needed to emerge a compatibility version of libjpeg to provide libjpeg.so.8, and move the version of libfmodex64 provided by zandronum to /usr/local/lib64. After a quick refresh of the library cache, the game worked just fine. I'm rubbish at it, though, so here's a screenshot of me being dead:


View attachment Screenshot_20260327_110240.png



Anyway - works in native linux, with only minor plumbing.
 
Hey Kaitain!
Nice you got it working!

So even though you had a version of libjpeg that isn't the same version Zandronum is looking for it will still work?
You didn't get errors for libssl or libcrypt?

It's crazy how libraries can cause issues but running the windows version in Proton is fairly easy... hard to pick one over the other.
 
For jpeg, it just needed to be libjpeg.so.8 - in Gentoo, there's a libjpeg-compat in the Steam overlay which provides this. For binary distros I have no idea.

libssl and libcrypt were the crufty, nasty libraries I alluded to - the later version of zandronum doesn't require them and uses libcrypto.so.3 instead, which is why I replaced it. Compare and contrast the supplied version of zandronum:
Code:
kaitain@kaesium ~/Downloads/Brutal Doom 64 $ ldd zandronum
        linux-vdso.so.1 (0x00007effb6bc4000)
        libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00007effb4200000)
        libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00007effb6aca000)
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007effb6ab8000)
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007effb6a91000)
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007effb46bc000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007effb468e000)
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007effb4010000)
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007effb6a72000)
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007effb3fa2000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007effb3f41000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007effb3deb000)
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007effb3c7f000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007effb3c30000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007effb3b60000)
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007effb4681000)
        libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007effb3b27000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007effb3ab4000)
        libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00007effb3a3d000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x00007effb4666000)
        libjpeg.so.8 => /usr/lib64/libjpeg.so.8 (0x00007effb39a9000)
        libbz2.so.1.0 => /lib64/libbz2.so.1.0 (0x00007effb3995000)
        libfmodex64-4.44.64.so => /usr/local/lib64/libfmodex64-4.44.64.so (0x00007effb3400000)
        libssl.so.1.1 => not found
        libcrypto.so.1.1 => not found
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/15/libstdc++.so.6 (0x00007effb3000000)
        libm.so.6 => /usr/lib64/libm.so.6 (0x00007effb38a4000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/15/libgcc_s.so.1 (0x00007effb3876000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007effb2e0d000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007effb386f000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007effb32b8000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007effb3867000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007effb385a000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007effb3846000)
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007effb3839000)
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007effb3834000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007effb382f000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007effb381a000)
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007effb37dd000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007effb37b1000)
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007effb32a8000)
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007effb32a3000)
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007effb2d64000)
        libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007effb2ca4000)
        libmount.so.1 => /usr/lib64/libmount.so.1 (0x00007effb2c29000)
        libfribidi.so.0 => /usr/lib64/libfribidi.so.0 (0x00007effb2c09000)
        libffi.so.8 => /usr/lib64/libffi.so.8 (0x00007effb3293000)
        libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x00007effb2b58000)
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007effb2b33000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007effb2b07000)
        libGLdispatch.so.0 => /usr/lib64/libGLdispatch.so.0 (0x00007effb2a8d000)
        libGLX.so.0 => /usr/lib64/libGLX.so.0 (0x00007effb2a5a000)
        libOpenGL.so.0 => /usr/lib64/libOpenGL.so.0 (0x00007effb2a36000)
        libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007effb328c000)
        libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007effb2a31000)
        /lib64/ld-linux-x86-64.so.2 (0x00007effb6bc6000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007effb2a2b000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007effb2a23000)
        libblkid.so.1 => /usr/lib64/libblkid.so.1 (0x00007effb29c2000)

with the ransplanted version of zandronum3.2.1:
Code:
kaitain@kaesium ~/Downloads/Brutal_Doom_64 $ ldd zandronum
        linux-vdso.so.1 (0x00007fa4e6f01000)
        libgtk-x11-2.0.so.0 => /usr/lib64/libgtk-x11-2.0.so.0 (0x00007fa4e4800000)
        libgobject-2.0.so.0 => /usr/lib64/libgobject-2.0.so.0 (0x00007fa4e6e62000)
        libglib-2.0.so.0 => /usr/lib64/libglib-2.0.so.0 (0x00007fa4e4caa000)
        libSDL-1.2.so.0 => /usr/lib64/libSDL-1.2.so.0 (0x00007fa4e6e29000)
        libGL.so.1 => /usr/lib64/libGL.so.1 (0x00007fa4e478d000)
        libGLU.so.1 => /usr/lib64/libGLU.so.1 (0x00007fa4e4716000)
        libz.so.1 => /usr/lib64/libz.so.1 (0x00007fa4e4c8d000)
        libjpeg.so.8 => /usr/lib64/libjpeg.so.8 (0x00007fa4e4682000)
        libbz2.so.1.0 => /lib64/libbz2.so.1.0 (0x00007fa4e4c79000)
        libfmodex64-4.44.64.so => /usr/local/lib64/libfmodex64-4.44.64.so (0x00007fa4e4200000)
        libcrypto.so.3 => /usr/lib64/libcrypto.so.3 (0x00007fa4e3c00000)
        libopus.so.0 => /usr/lib64/libopus.so.0 (0x00007fa4e4620000)
        libstdc++.so.6 => /usr/lib/gcc/x86_64-pc-linux-gnu/15/libstdc++.so.6 (0x00007fa4e3800000)
        libm.so.6 => /usr/lib64/libm.so.6 (0x00007fa4e3b0f000)
        libgcc_s.so.1 => /usr/lib/gcc/x86_64-pc-linux-gnu/15/libgcc_s.so.1 (0x00007fa4e45f2000)
        libc.so.6 => /usr/lib64/libc.so.6 (0x00007fa4e360d000)
        libgdk-x11-2.0.so.0 => /usr/lib64/libgdk-x11-2.0.so.0 (0x00007fa4e3551000)
        libgmodule-2.0.so.0 => /usr/lib64/libgmodule-2.0.so.0 (0x00007fa4e4c6e000)
        libpangocairo-1.0.so.0 => /usr/lib64/libpangocairo-1.0.so.0 (0x00007fa4e45e0000)
        libX11.so.6 => /usr/lib64/libX11.so.6 (0x00007fa4e3409000)
        libXfixes.so.3 => /usr/lib64/libXfixes.so.3 (0x00007fa4e4c66000)
        libatk-1.0.so.0 => /usr/lib64/libatk-1.0.so.0 (0x00007fa4e45b9000)
        libcairo.so.2 => /usr/lib64/libcairo.so.2 (0x00007fa4e32c5000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib64/libgdk_pixbuf-2.0.so.0 (0x00007fa4e41d2000)
        libgio-2.0.so.0 => /usr/lib64/libgio-2.0.so.0 (0x00007fa4e30d5000)
        libpangoft2-1.0.so.0 => /usr/lib64/libpangoft2-1.0.so.0 (0x00007fa4e41b5000)
        libpango-1.0.so.0 => /usr/lib64/libpango-1.0.so.0 (0x00007fa4e3aa1000)
        libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007fa4e4166000)
        libffi.so.8 => /usr/lib64/libffi.so.8 (0x00007fa4e3a91000)
        libpcre2-8.so.0 => /usr/lib64/libpcre2-8.so.0 (0x00007fa4e3024000)
        libGLdispatch.so.0 => /usr/lib64/libGLdispatch.so.0 (0x00007fa4e2faa000)
        libGLX.so.0 => /usr/lib64/libGLX.so.0 (0x00007fa4e2f77000)
        libOpenGL.so.0 => /usr/lib64/libOpenGL.so.0 (0x00007fa4e2f53000)
        libdl.so.2 => /usr/lib64/libdl.so.2 (0x00007fa4e45b2000)
        libpthread.so.0 => /usr/lib64/libpthread.so.0 (0x00007fa4e4161000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fa4e6f03000)
        libXrender.so.1 => /usr/lib64/libXrender.so.1 (0x00007fa4e2f46000)
        libXi.so.6 => /usr/lib64/libXi.so.6 (0x00007fa4e2f32000)
        libXrandr.so.2 => /usr/lib64/libXrandr.so.2 (0x00007fa4e2f25000)
        libXcursor.so.1 => /usr/lib64/libXcursor.so.1 (0x00007fa4e2f18000)
        libXcomposite.so.1 => /usr/lib64/libXcomposite.so.1 (0x00007fa4e415a000)
        libXdamage.so.1 => /usr/lib64/libXdamage.so.1 (0x00007fa4e3a8c000)
        libXext.so.6 => /usr/lib64/libXext.so.6 (0x00007fa4e2f03000)
        libharfbuzz.so.0 => /usr/lib64/libharfbuzz.so.0 (0x00007fa4e2d97000)
        libxcb.so.1 => /usr/lib64/libxcb.so.1 (0x00007fa4e2d6b000)
        libpng16.so.16 => /usr/lib64/libpng16.so.16 (0x00007fa4e2d2e000)
        libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007fa4e2c5e000)
        libxcb-render.so.0 => /usr/lib64/libxcb-render.so.0 (0x00007fa4e2c4e000)
        libxcb-shm.so.0 => /usr/lib64/libxcb-shm.so.0 (0x00007fa4e2c49000)
        libpixman-1.so.0 => /usr/lib64/libpixman-1.so.0 (0x00007fa4e2ba0000)
        libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007fa4e2ae0000)
        libmount.so.1 => /usr/lib64/libmount.so.1 (0x00007fa4e2a65000)
        libfribidi.so.0 => /usr/lib64/libfribidi.so.0 (0x00007fa4e2a45000)
        libexpat.so.1 => /usr/lib64/libexpat.so.1 (0x00007fa4e2a19000)
        libgraphite2.so.3 => /usr/lib64/libgraphite2.so.3 (0x00007fa4e29f4000)
        libXau.so.6 => /usr/lib64/libXau.so.6 (0x00007fa4e29ee000)
        libXdmcp.so.6 => /usr/lib64/libXdmcp.so.6 (0x00007fa4e29e6000)
        libblkid.so.1 => /usr/lib64/libblkid.so.1 (0x00007fa4e2985000)
 
Back
Top