111qqz的小窝

老年咸鱼冲锋!

BattleBlock Theater linux下无法启动的解决办法 ( void* MemoryBlock::Alloc(unsigned int): Assertion failed )

在steam上买了 BattleBlock Theater, 官方说支持linux,但是却无法启动。

在steam里启动看不到log,于是找到游戏的安装目录。

/home/coder/.steam/steam/steamapps/common/BattleBlock Theater

在终端下启动,报错:

BattleBlockTheater: /media/BGBS/BBT_Linux/Core/MemorySystem.cpp:161: void* MemoryBlock::Alloc(unsigned int): Assertion `(!”Got request for zero bytes!”)’ failed.
^C[1]    22303 abort (core dumped)  ./BattleBlockTheater

google了一下发现这似乎是游戏本身的bug,这里有一个workaround

办法是使用hex editor将游戏的可执行文件中, 从offset 0x24F2BE 开始的6个字节替换成0x90

我使用的hex editor 是hexcurse, 这里有一个使用指南 可以参考。

 

 

 

 

manjaro /archlinux 下 steam 文明5/6(civilization V/VI)的运行方法

系统版本为Manjaro 18.0.3 Illyria

运行文明5比较容易,只需要设置启动选项为:

LD_PRELOAD=/usr/lib32/libopenal.so.1 %command%

 

文明6运行会报错 undefined symbol: FT_Done_MM_Var

解决办法是 在终端中用如下办法运行steam:

LD_PRELOAD=/usr/lib/libfreetype.so steam

参考链接