雑記 ビルドバカ

エミュレーター,日常エミュレーター

MSYS2でGeolithをビルド

NEOGEOエミュレーターのGeolithと
JGフロントエンドをmsys2でビルドしてみました。
GeolithはJolly Good Emulationのコアの一つになります
いわゆるlibretroと同じような、コア(DLL等)が作られるシステムです

Geolith

ビルドするにはJG APIの導入が必須です(さらにビルドパスを通す必要あり)



またThe Jolly Good Reference Frontend経由での起動が必要です。


ビルドにはSDL2、pkgconf/pkg-config(パスを通すのに必要)
さらにSpeexDSPとlibepoxyの導入が必要です。

エラー対策

Package jg was not found in the pkg-config search path.
Perhaps you should add the directory containing `jg.pc'
to the PKG_CONFIG_PATH environment variable

ビルド時にさんざん見たエラーです。パス通せ!って怒られてます。

$ export PKG_CONFIG_PATH=/usr/local/include/jg/:/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig:/usr/local/share/pkgconfig/:/usr/local/share/pkgconfig/jg.pc

JG APIをMake installしたパスをPKG_CONFIG_PATHに書き足しました。
jg.pgの記載はやけくそなので、不要かもしれません。
これでエラーが消えるので正常にビルドできます。

結論

実際に起動できたのですが



・EXEが生成されるが、MSYS2でのみ起動する
・コマンドラインの引数で起動するので外部ランチャー等が必須
・iniファイルが自動生成されず、書式もよく分からず反映されない
・動作はかなり軽快で音声などの再現は良かった

動くけど使い物としては微妙という感じ
exeファイルなのに通常のプロンプトから起動できないのは、かなりのマイナス
ランチャーでなら使いやすいので、やはりLinux機用ですね。

Windowsで使うなら素直にlibretro版とランチャー使うのが楽です。
Ludoでも問題なくプレイできました。

目下の強敵

Kronos(サターンエミュレーター)です。

CmakeでWindowsもビルドできると記載がありますが
実際はエラー吹きまくって、まともにビルドできません



非公式Windowsビルド
(と言いながらじつは関係者によるもの?)も
古いWindowsビルドから更新できていないので
おそらく問題が修正できないのかな?と

ビルド方法についても、あっという間にクローズされてます。
もともとLinux用に作られていたこともありますし
どうもlibretroを別に分けようとしてるようで、まあグダグダしてる感じ?

互換性レイヤー界隈がざわざわ

XBOXoneでの互換性レイヤーが騒がしいようです。

XboxOneの方はベースがWindowsだけあって
真っ暗になったりしてますが、そこそこ軽快にうごくようです
一般には公開されてないので、これからって印象ですかね。

しめ



最近はlibretroで動けばWindows版のスタンドアロンは不要みたいな風潮?

プレイステーションやセガサターン以降の機種は
個人的にはスタンドアロン版の方が好ましいなぁと。

いろんなものをビルドするのは経験値稼ぎと思ってやってますが
昔に比べたらずいぶん楽になりましたねえ。