よく見たらldで失敗してた。
g++ -o xclannad xlovesys.o system/libsystem.a scn2k/libscn2k.a window/libwindow.a font/libfont.a music2/libmusic.a -lfreetype -lz -lSDL -lpthread -lSDL_mixer -lsmpeg -lSDL -lpthread -lvorbisfile -lvorbis -logg -ljpeg -lpng -lz -pthread
font/libfont.a(font_peer_x11.o): In function `XKFont::PeerX11::GlyphCreate(unsigned int, XKFont::Glyph*)’:
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:389: undefined reference to `XShmGetImage’
font/libfont.a(font_peer_x11.o): In function `~PeerX11′:
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:365: undefined reference to `XShmDetach’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:365: undefined reference to `XShmDetach’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:365: undefined reference to `XShmDetach’
font/libfont.a(font_peer_x11.o): In function `PeerX11′:
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:317: undefined reference to `XShmQueryExtension’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:320: undefined reference to `XShmCreateImage’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:337: undefined reference to `XShmAttach’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:317: undefined reference to `XShmQueryExtension’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:320: undefined reference to `XShmCreateImage’
/home/takky/xclannad-0.07g/font/font_peer_x11.cc:337: undefined reference to `XShmAttach’
collect2: ld はステータス 1 で終了しました
make: *** [xclannad] エラー 1
どうやらライブラリが足りないっぽい。Xshm系ルーチンがよく解らなかったので調べてみると、X11の拡張ルーチンだった。よくコマンド行を見てみると、X11関係のライブラリが指定されてないし。configure時に何か指定しないと駄目なのか謎です。中身を見てみるとX11関係も入ってるので、それで追加されるであろうライブラリをMakefileのLDFLAGSに加えてみたら問題なくリンクできました。
インストールし、ゲームCDを挿入し、CDをマウントし、xclannadを実行してみると…即死でした。表示されるルートパスがデフォルト値となっており、うちがいじったソースのパスは反映されてないみたいです。仕方ないので起動引数にルートパスを設定したら無事動作しました。フルスクリーンも-fオプションで問題なく起動を確認。ゲーム中に切り替えられるみたいですけど、READMEにはやばそうな記述もあるので無茶しないほうがいいみたい。
ウインドモードで起動すると、タイトル行の表示がヤバいっぽい。うちはUTF-8環境なのでEUCで漢字を出そうとしてるのかもね。まあ、ゲームに支障なさそうですのでこのままでいいです。
一度クリアしたゲームですけど、久々にプレイしてみるのもいいかも。