2018年5月21日月曜日

DOSBox-X BETA (2018-5-18, 0.82.7) 版 は OS X 上で SDL2 に対してもビルドできた話

リリースはこちら。バージョンの命名規則がよくわからんのですが、内部的には v0.82.7 と表示されるもののリリースにはただの BETA 版としか書いてない。そして最新版は依然として v0.82.6 (2018-05-03) のままなので、この次の正式版はまだ出てなくて今回ビルドするのはあくまでプレリリースという位置付けらしい。

OS X Mountain Lion までの Xcode そなえつけの gcc すなわち clang (./configureCCCXX の指定なし) では libc++ を明示的に選択してもだめでした (もしかしたらできるのかもしれんが)。すくなくとも clang-mp-3.7clang++-mp-3.7 より新しいものを MacPorts 等で整備する必要があるのは前回までと同様で、SDL1 版のビルドについても当てるパッチや ./configureこれまでと同様

このベータ版から SDL2 でメニューが整備されたので SDL2 でのビルドがだいぶ意味あるようになったのが特筆すべき点、俺も SDL2 でビルドするのはこれが初回でした。当てるパッチは SDL1 の時と同じだけども、 SDL2 を用いてのビルドに限り、本体側で deprecated な関数を使用しているためか CoreServices と CoreFoundation の framework が指定されないために、リンク時に参照先のシンボルがないとして止まるのでこれを手動で指定してやる必要がある。これは SDL2 でビルドするときだけの話。

SDL 1.x:
$ CC=clang-mp-3.7 CXX=clang++-mp-3.7 CPPFLAGS='-I/opt/local/include -stdlib=libc++' LIBS='-stdlib=libc++' ./configure --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --prefix=$HOME --with-sdl-prefix=/usr/local/src/dosbox-x-dosbox-x-beta-201805181700/vs2015/sdl/linux-host/lib
SDL 2.x:
$ CC=clang-mp-5.0 CXX=clang++-mp-5.0 CPPFLAGS='-I/opt/local/include -stdlib=libc++' LIBS='-stdlib=libc++ -framework CoreFoundation -framework CoreServices' ./configure --x-includes=/opt/X11/include --x-libraries=/opt/X11/lib --prefix=$HOME --enable-sdl2
ただし SDL2 で利用できるメニューは Mountain Lion 上では挙動が不安定なので今後充実されるだろうと期待する。また、SDL2のメニューはOpenGLでは利用できず OS X では 'output=surface' の一択になる。CHANGELOG にある、 SDL2 のメニューが 'output=opengl' でも Linux 上で利用できるようになったというのはこれはほんとにLinux だけの話らしい。なのでドットのギザギザが見えるフルスクリーンを愛する俺としては SDL2 版は現状選択肢たりえない。



Fig. 1 - SDL2 版のメニュー (v0.82.7 BETA)


あと、 Eve Burst Error 等のシーズウェア作品(筆者が確認したのはほかに, 悦楽の学園, エイミーと呼ばないでっ, 禁断の血族, XENON, DESIRE)でゲームが始まってもファンクションキーの列が画面下に表示されたままになってるところが、ファンクションキー列の表示OFFコールについてのエミュレーションが整備されたようだ。したがって Compatibility の表を整備しなければならなくなった。ただし依然としてどれも全角文字だけがまったく表示されない様子なので playable には至らないだろう。




Fig. 2a - 画面下に現れるファンクションキー列 (v0.82.6)
Fig. 2b - v0.82.7 BETA版では解消された
ちなみに、xnp2, np2sdl2の最新版がこの画面 (Fig. 2b) に至ることはない。なんとかうまくいってほしいのですが。

0 件のコメント:

コメントを投稿