Cytlan/openbgi
GitHub: Cytlan/openbgi
该项目旨在逆向工程并开源重新实现 Ethornell Buriko General Interpreter(BGI)视觉小说游戏引擎,使其可在 Linux 等平台上独立运行。
Stars: 63 | Forks: 4
# OpenBGI
本项目旨在对 Ethornell Buriko General Interpreter (BGI) 进行逆向工程,并创建该引擎的开源重新实现。
## 工作流程
目前的工作流程是使用 `Ghidra` 分析引擎,然后逐个 opcode 重新实现 opcode 和支持函数。
我们的策略只是实现一个 opcode,然后运行游戏看看它是否会崩溃。这是一种相当粗略的技术,但目前来说还算管用。
已达成的里程碑:
* 重新实现了足够的基础 opcode,使得 Tayutama 能够运行。
* 独立引擎正在开发中。
## 架构
虽然我们仍在努力重新实现 opcode,但现在看来编译一个独立程序是合理的。我们的策略仍然是 hook 到现有的引擎中,将函数和 opcode 重定向到共享库,然后再将其重新实现到独立版本中。
## 构建
尽管跨平台兼容性是我们的目标,但目前构建链仅为 Linux 进行了配置。
在开始之前,你需要安装所需的各种工具和依赖项:
```
apt install build-essential gcc-mingw-w64-i686
```
构建引擎非常简单,只需运行:
```
make
```
最后,在游戏文件目录中运行引擎:
```
cd /path/to/the/game
/path/to/openbgi
```
该引擎要求*所有*游戏资源都已通过 `tools` 目录中的 `unarc` 工具从游戏中提取出来。在适当的时候,我们将支持直接从未经修改的游戏资源中加载,但目前提取资源有助于开发。
## 联系方式
欢迎加入我们的 Discord 服务器:https://discord.gg/3zFTJWUNt7
标签:Aarch64, BGI, Ghidra, Gophish, 云资产清单, 客户端加密, 开源重制, 游戏引擎, 视觉小说, 逆向工程