Orrery

2026-

Windows向けビジュアルノベルとMacの距離を縮める、互換・管理基盤の開発プロジェクト。

背景

多くのビジュアルノベルはWindows向けで、Macではそのまま扱えない。描画、動画、音声、起動手順はタイトルごとに異なり、同じengine名でも必要な互換経路を決められない。Orreryは実行ファイルと実行時の挙動から、どの層を扱うべきかを切り分ける。

全体像

役割分担

Melammuはインストール、起動、prefix管理、ライブラリUIなどのmacOS側を担う。swingby-wineはWindows API、描画、動画、音声などの互換層を、swingby-dxvkはDXVK経由の描画(MoltenVK/Apple Silicon向け)を担う。共有runtimeには汎用修正を優先し、避けられないタイトル差分はprofile、prefix、DLL override、runtime overlayへ隔離する。

公開ソースの範囲

GitHubのmelammu-vnで公開しているのは、folder index UIと汎用的なengine-signature inspectionを切り出したsource-only mirrorです。Orrery本体の互換runtime、installer・account連携、個別タイトル向けprofile・patch、配布binaryは含まず、特定タイトルの動作を保証しません。

検証の方針

互換性の判断は、記憶やengine名ではなく、実バイナリのfingerprint、実行時にロードされたDLL、prefixのoverride、artifact gateで確認する。sourceを変更しビルドが通っただけでは反映済みとせず、実際にロードされるruntimeを照合する。解決済みだけでなく未解決の条件もevidenceとCase Notesへ残し、次の検証で再利用する。

特徴

  1. 01

    Melammuswingby-wineを同じ作業基盤で扱い、ランチャー開発と低レイヤー互換検証を分断しない

  2. 02

    タイトル固有の差分をprofile、prefix、DLL override、runtime overlayへ隔離し、共有runtimeの回帰面を狭める

  3. 03

    engine名だけで決めず、実バイナリ・実ロードDLL・実行時の経路から互換条件を切り分ける

  4. 04

    実ロードDLL、prefix override、title-local patch、md5 gateで、リビルドによる互換修正の巻き戻りを防ぐ

  5. 05

    解決済みの現象だけでなく、未解決の回帰もCase Notes と次の測定条件に落として保留する

用語

Wine
WindowsをインストールせずにmacOS・Linux上でWindowsアプリを動かすオープンソースの互換レイヤー。Windows APIの呼び出しをPOSIX / macOS APIに変換する。
POSIX
UnixベースのOS(macOS・Linuxなど)が共通して持つAPIの仕様。WineはWindowsのAPI呼び出しをこの仕様に変換することでWindowsアプリをmacOS上で動かす。
Orrery
Melammuとswingby-wineをまとめる互換レイヤー開発基盤。ランチャー、Wine fork、検証、再現性ゲートを同じ現在地で扱う。
Melammu
ユーザーが触るmacOSランチャー。ゲームの登録、インストール、起動、prefix管理、タイトル別互換設定を担当する。
swingby-wine
VN向けに調整しているWine fork。Windows APIや描画・動画・音声まわりの互換修正を含む。
Boot Camp
AppleがIntel Mac向けに提供していた、MacにWindowsを直接インストールして切り替える機能。Apple Silicon(M1以降)では廃止された。
Apple Silicon
AppleがMac向けに設計したARMベースのチップ(M1/M2/M3/M4系)。従来のIntelチップとはCPU命令セットが異なり、Windowsアプリをそのまま実行できない。
Rosetta 2
Apple SiliconのMacでIntel向けアプリを変換して動かすApple純正の技術。Windowsアプリには対応しない。
DirectX
MicrosoftのWindows向けグラフィックスAPI。多くのゲームがDirectXで描画処理を行うため、Mac上で動かすには変換が必要になる。
DirectDraw
Windowsの古い2D描画API。2000年代前後のゲームやVNで使われることがあり、Wine上ではDirect3DやGDIとは別の描画経路として問題を切り分ける必要がある。
wined3d
Wineに含まれるDirect3D実装。Direct3DやDirectDrawの描画をOpenGLなどのホスト側描画へ変換する経路で、DXVKとは別の層。
DXVK
DirectXのAPI呼び出しをVulkanに変換するオープンソースのライブラリ。Wine上でDirectXゲームを動かす際に使われる。
Vulkan
クロスプラットフォームのグラフィックスAPI。DXVK経由で受け取ったDirectX命令を、MoltenVKを介してMetalへ渡す中継役。
MoltenVK
VulkanのAPI呼び出しをAppleのMetalに変換するライブラリ。macOSでVulkanを動かすために使われる。
Metal
AppleのGPU向けAPI。macOSでは最終的にMetalを通じて描画処理が実行される。
DirectShow
Windowsの古い動画再生フレームワーク。VNのOPやロゴ動画で使われることがあり、Wine上ではquartzやwinegstreamerを経由する。
GStreamer
動画・音声のデコードや変換を担うマルチメディア基盤。Wineではwinegstreamerを通じてDirectShowやMedia Foundationの処理に関わる。
md5 gate
ビルド済みバイナリのmd5を期待値と照合し、修正済みDLLやランタイムがリビルドで巻き戻っていないか確認する仕組み。
runtime overlay
共有Wine全体を差し替えず、特定タイトルだけに必要なDLLセットを別runtimeとして重ねる運用。title-local patchの一種。
GDI
Windowsが古くから持つ標準の描画API。DirectXより古い仕組みで、2000〜2010年代のゲームエンジンに多く使われていた。Wine上ではDirectXとは別の経路で処理される。

Case Notes