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, 这里有一个使用指南 可以参考。