The officially official Devuan Forum!

You are not logged in.

#1 2026-10-08 10:14:56

askfor
Member
Registered: 2024-12-19
Posts: 17  

32-bit libs

I want to run some 32-bit games in Wine, on Excalibur 64-bit.

Installed Excalibur 64-bit from minimal 1GB media. Added plenty of packages afterwards. At some point figured out that 32-bit libraries are needed. Enable 32 bit architecture, but many packages and libraries are installed 64-bit only. It looked like a major screw-up, but figured out that I'd be in, more or less, same situation if I installed 64-bit from larger media. So, it might not be that bad

Problem is that I don't know what libraries I need. I figured out it might be OpenGL libraries and re-installation of proprietary NVidia driver. Probably much more than that... Wine and dependencies are installed with 32-bit architecture enabled, so it should be good. Can someone give me an idea what else I might need, please ?

Offline

#2 2026-10-08 10:34:45

kapqa
Member
Registered: 2019-01-02
Posts: 799  

Re: 32-bit libs

if you need games , you could test-install the steam.deb that could solve additional dependencies for you=?
afterwards you could just remove the steam, and the driver might remain for you.

wine usually install from wine hq, but there is also program "crossover" if you need specific support (never brought myself to buy a license for it, yet)

Offline

#3 2026-10-08 13:19:03

Calamity
Member
Registered: 2021-10-23
Posts: 111  
Website

Re: 32-bit libs

Well, if you have Wine installed, have you actually tried running any Win32 application? Here is a simple game I used to test that everything works correctly:
https://archive.org/details/disasteroids3d_exe

Run it in terminal (don't use double-click or Enter in GUI file managers):

wine disasteroids3d.exe

See how it goes for you. If it launches and you can see the asteroids flying around (rendered correctly), and you can play the game, you're probably good to go. If it hangs, just press Ctrl+C in terminal window and look for any errors it prints out. They may give you a clue as to what is missing.


Re-examine all that you have been told. Dismiss that which insults your soul.  - Walt Whitman
Dump shampoo and hair dye
Global Skywatch・Subliminal Manipulation

Online

#4 Today 12:54:19

askfor
Member
Registered: 2024-12-19
Posts: 17  

Re: 32-bit libs

Thanks. It turned out I just needed to update the proprietary video driver. However, I run into other issues. The game I installed on WINE seems to be leaking memory. Or, at least allocating more than it frees. The memory footprint is increasing slowly until crash. ChatGPT pointed me where to find memory info, /proc/$PID/status

I suspect that the same happens under windows, but it does not crash. Is there some mechanism in Windows which reclaims memory somehow ?

The game is Boiling Pint: Road to Hell from 2005. Original game is horribly buggy and crashes every 15-20 minutes. The Atari made patch fixes many things and keeps it from crashing on Windows. Not on WINE, unfortunately. Does anyone have any idea why it happens. It is a 32-bit game with hard 4Gb limit, due to address space limitations. When it reaches critical state, it can create corrupted save on WINE.

Otherwise game runs remarkably well and looks visually nicer on Linux. For now I am starting a script in parallel, which is monitoring memory usage. When certain limit is reached, the script plays warning sound, meaning save and exit ASAP. It proved to be a safe way to play. I am adding a script here, because it might be useful for other misbehaving games.

local PROCSTR="pgrep Xenus.exe"
local SOUND="play -q -v 4 /home/anyone/logout.wav"
local SLEEP="sleep 5"
local MTOP=4000000
local mSize=0
local isRunning=false
local ln, status, mPeak, mHWM, mRSS, memStr, fd, pid
local mnTab = { "VmPeak", "VmSize", "VmHWM", "VmRSS" }
while mSize < MTOP do
   -- get PID
   fd=io.popen(PROCSTR,"r")
   pid=fd:read("n")
   fd:close()
   if pid == nil then
      if isRunning then
         isRunning=false
         break
      else
         goto ENDLOOP
      end
   else
      isRunning=true
   end
   -- get memory state
   status="/proc/" .. tostring(pid) .. "/status"
   mPeak=0
   mSize=0
   mHWM=0
   mRSS=0
   for ln in io.lines(status) do
      for i,mType in ipairs(mnTab) do
         memStr=string.match(ln,mType..":%s+(%d+)")
         if memStr ~= nil then
            if mType == "VmPeak" then
               mPeak=tonumber(memStr)
            elseif mType == "VmSize" then
               mSize=tonumber(memStr)
            elseif mType == "VmHWM" then
               mHWM=tonumber(memStr)
            elseif mType == "VmRSS" then
               mRSS=tonumber(memStr)
            end
         end
      end
   end
   print(mPeak,mSize,mHWM,mRSS)
   ::ENDLOOP::
   os.execute(SLEEP)
end
-- alert if critical
if isRunning then
   os.execute(SOUND)
end

Offline

#5 Today 14:27:57

Calamity
Member
Registered: 2021-10-23
Posts: 111  
Website

Re: 32-bit libs

This seems like a game-specific bug, if so there may be entries or discussions for that game on WineHQ. Off the top of my head, I had problems with intermittent crashes in some games, usually those that are not too stable to begin with. But for one game (Blur, 2010) I fixed a memory-related crash by limiting the running process affinity to a single CPU core:

taskset -c 0 wine game.exe

Lutris also has a GUI switch for this workaround.

You can give some demanding 32-bit games more memory by using the 4GB patch by ntcore which works under Wine, but it doesn't look like you can get beyond that, yes.


Re-examine all that you have been told. Dismiss that which insults your soul.  - Walt Whitman
Dump shampoo and hair dye
Global Skywatch・Subliminal Manipulation

Online

Board footer