Skip to main content
  1. Posts/

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

·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

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

BattleBlock Theater · Hex Patch(根据正文上下文重绘的示例图,并非遗失原图)

Related

我在公司的服务器上执行了sudo rm -rf /*

·2 mins
TL;DR * 依靠人的小心谨慎是不靠谱的,人总有失误的时候 * 看了下docker volume的权限机制,貌似是从docker image中继承。 * 写了两个脚本,用来把rm alias到mv,避免手滑 又是一个可以摸鱼的周五晚上,sensespider系统测试了一天,fix了几个Bug,似乎可以发布了。系统一直是部署在了docker中..这几天测试产生了不少结果文件在host的volume中… 看着不舒服,干脆删一下好了