OpenBGI

An open-source, cross-platform reimplementation of the Ethornell Buriko General Interpreter
Established 2020

Project

What OpenBGI is

OpenBGI is a clean-room-leaning, open-source reimplementation of the Ethornell / Buriko General Interpreter (BGI). BGI is a proprietary Windows game engine used for decades by Japanese visual-novel studios. OpenBGI exists so those games can be studied, preserved, translated, and eventually played on platforms the original interpreter never targeted.

The canonical homepage is https://openbgi.net. The canonical source repository is https://github.com/Cytlan/openbgi. License: GNU GPL-2.0.

OpenBGI is a player / compatibility engine for existing Ethornell titles. It is not a visual-novel authoring toolkit. Anyone who wants to develop a new game on Ethornell must contact Buriko Co., Ltd.

Immediate goals include:

Background

BGI / Ethornell in general

Ethornell (エトーネル) is the marketing name of a general-purpose game engine whose formal name is Buriko General Interpreter, almost always shortened to BGI. It runs on Windows. It was first developed privately by Darios Sawm and is now a product of Buriko Co., Ltd. (株式会社ブリコ).

Although Buriko describes it as a general engine (adventure, RPG, simulation), in practice BGI is the workhorse behind a large slice of the Japanese visual-novel industry. Studios that have shipped BGI titles include August, Sprite, Makura (枕), Lump of Sugar, OVERDRIVE, KeroQ and affiliates, Navel, SMEE, Hooksoft, Cabbage Soft, P-Factory, Studio Jaren / Charen, and others.

How the engine is put together

Stack virtual machine
The interpreter is a stack-based VM implemented in the engine executable. It runs compiled Buriko Programs with the ._bp extension. Opcodes split into a small basic set (control flow, arithmetic, stack) and multi-byte extended opcodes that reach into graphics, sound, filesystem, and system calls.
Scenario scripts inside the VM
Story text, choices, and scene flow live in a second compiled script format (usually extensionless files inside .arc archives). Those scenario scripts are themselves interpreted by Buriko Programs. Running the lower-level VM therefore runs the story “for free.”
Archives and loose-file override
Assets are packed into .arc files (data01000.arc, data01500.arc, …). A matching loose file in the game directory overrides the archived copy, which is why translation patches often never need to be repacked.
Graphics
BGI leans on bitmaps, grayscale masks, blit/blend pipelines, and a proprietary image format commonly called CompressedBG. Community tools such as GARbro decode existing images; encoders exist in projects like EthornellTools.
Text
Legacy titles assume Shift_JIS. Half-width Latin glyphs are historically messy unless the engine’s proportional-font flags are patched — a common translation hurdle.

Related community tools (not OpenBGI itself)

Progress

Project status

OpenBGI is early but past the “only a hook DLL” stage. Enough basic opcodes exist that at least one title — Tayutama -Kiss on My Deity- — can reach its main menu and settings screen by executing real Buriko Programs. A standalone engine binary is being built. Graphics routines are the current exploration focus; sound is not the priority yet.

Side-by-side screenshot of OpenBGI and original Ethornell rendering the same visual novel scene

OpenBGI (reimplementation) beside original Ethornell, from the project repository.

Workflow

The team analyses the original engine in Ghidra, injects a DLL for live traces, and reimplements observed behaviour in portable C (SDL2 for presentation). Game resources currently need to be extracted first with the in-tree unarc tool; loading stock archives directly is a later milestone.

Intended platforms

Realistic now: Windows, Linux. Wanted: macOS, Android, WASM (browser), Haiku. Aspirational: Switch, PS Vita, PS4 / PS3 / PS2.

Internals

What the code is doing

The repository is mostly C: a VM core, opcode tables split by family (opcodes, opcodes_ext*, opcodes_grp*, opcodes_snd*, opcodes_sys*), an SDL-backed renderer, Shift_JIS / UTF helpers, and a tiny archive tool. That layout is the map of the original engine: logic VM first, then graphcalls into subsystems.

Because scenario interpreters are themselves ._bp programs, correctness on the low-level opcode surface is the whole game. Get the stack, the extended calls, and the blit pipeline right, and titles that never shipped a public SDK start to boot.

No game assets are shipped in the repository. You must own the games you run. OpenBGI is a preservation and compatibility project, not a redistribution project.

Catalogue

Notable games on BGI / Ethornell

A non-exhaustive list of well-known titles and brands that used the engine. Presence here does not mean OpenBGI already runs the game. Title names link to VNDB.

VNDB lists hundreds of BGI/Ethornell releases under the engine filter BGI/Ethornell (about 421 as of 2026). PCGamingWiki tracks a smaller English-facing subset under “Engine: BGI/Ethornell”. Japanese Wikipedia’s Ethornell page carries a longer studio catalogue.

FAQ

Frequently asked questions

What is OpenBGI?

An open-source reimplementation of the Ethornell Buriko General Interpreter, a visual novel engine.

Is OpenBGI an artificial general intelligence project?

No. BGI = Buriko General Interpreter.

Can I make a new visual novel with OpenBGI?

No. That remains Buriko’s product surface. OpenBGI reimplements playback of existing engine programs.

Does it play every BGI game?

Not yet. Opcode coverage and graphics are incomplete. Tayutama reaching the menu is the public milestone; more titles will follow as the VM and renderer fill in.

Where do people talk?

Discord: https://discord.gg/3zFTJWUNt7