•  


GitHub - Cytlan/openbgi: Ethornell Buriko General Interpreter open source reimplementation
Skip to content

Ethornell Buriko General Interpreter open source reimplementation

License

Notifications You must be signed in to change notification settings

Cytlan/openbgi

Folders and files

Name Name
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenBGI

This project aims to reverse-engineer the Ethornell Buriko General Interpreter (BGI), and create an open source re-implementation of the engine.

We now have a Discord server: https://discord.gg/3zFTJWUNt7

Workflow

Currently, the workflow is to use Ghidra for analysing the engine, then reimplement opcodes and support functions on a per-opcode basis.

The strategy is just to implement an opcode, run the game and see if it crashes. It's a pretty crude technique, but it'll work for now.

Milestones reached:

  • Reimplemented enough basic opcodes for Tayutama to run.

Architecture

While we're still working on reimplementing opcodes, it doesn't make sense to compile a stand-alone program yet. Therefore our strategy is to hook into an existing engine and redirect functions and opcodes to a shared library instead.

How it works is that we inject a DLL into the game that contains our reimplementation and the debugger. The DLL patches the engine and redirects opcodes to our reimplementations.

Eventually this method will be retired once our code is developed to the point where it can boot a game on its own.

Debugger

To help reverse-engineering the game, we have created a debugging tool for the engine. After patching the game, the debugger is loaded and allows us to inspect threads, halt the execution and single-step through the program.

The debugger window will be the very first window that pops up, and the engine will be started in a halted state. Hit the Run button to start the game.

Screenshot of the debugger as of 2020-11-13

Building

Despite building a DLL and hooking into a Windows based game, the toolchain currently only supports Linux.

Before you do anything else, you need to install the various tools and dependencies needed:

apt install build-essential g++-mingw-w64-i686

Building the DLL is as simple as running:

make

Finally, run the game with this helper:

./run.sh

The only supported game right now is Tayutama Trial .

Contact

Feel free to join our Discord server: https://discord.gg/3zFTJWUNt7

Releases

No releases published

Languages

- "漢字路" 한글한자자동변환 서비스는 교육부 고전문헌국역지원사업의 지원으로 구축되었습니다.
- "漢字路" 한글한자자동변환 서비스는 전통문화연구회 "울산대학교한국어처리연구실 옥철영(IT융합전공)교수팀"에서 개발한 한글한자자동변환기를 바탕하여 지속적으로 공동 연구 개발하고 있는 서비스입니다.
- 현재 고유명사(인명, 지명등)을 비롯한 여러 변환오류가 있으며 이를 해결하고자 많은 연구 개발을 진행하고자 하고 있습니다. 이를 인지하시고 다른 곳에서 인용시 한자 변환 결과를 한번 더 검토하시고 사용해 주시기 바랍니다.
- 변환오류 및 건의,문의사항은 juntong@juntong.or.kr로 메일로 보내주시면 감사하겠습니다. .
Copyright ⓒ 2020 By '전통문화연구회(傳統文化硏究會)' All Rights reserved.
 한국   대만   중국   일본