なぜかまた急に無性に Key の「 Air 」を ubuntu で遊びたくなり、やってみた。

方法は2つあって、1つ目は JAGARL さんの xkanon ( xair ) を使う方法で、2つ目は wine を使う方法だ。

xkanon を使った場合、 ubuntu 18.04 LTS では音を鳴らすことができなかった。 xkanon は音を鳴らす方法を OSS, ALSA 等から選択できるように作られているのだが、まず OSS は古いものなので今の ubuntu では使用できないため、 ubuntu の kernel をカスタマイズして OSS を組み込んでみたが、 /dev/dsp がそもそも作られなかった。そこで osspd を使用してみたが、 /dev/dsp は作られたものの、音は一切鳴らなかった。そこで、 ubuntu が現在使用している ALSA を使うようにしてみたが、やはり音は鳴らずエラーが出て異常終了してしまう。 xkanon の場合は、音無しでならプレイできるという結果になった。ちなみに、 xkanon の作者の JAGARL さんは配布サイトを閉鎖したようで、現在は作者の配布サイトからソースをダウンロードしたり質問したりすることは出来ない。

そこで、次に wine を使う方法を試してみた。 BGM は CD-DA ではなく _inmm を使い wav ファイルを鳴らすように変更することにした。こちらも最初は音が一切鳴らなかったが、Install GStreamer on Ubuntu or Debian

を見ながら必要なプラグインパッケージなどを全てインストールしたところ、起動時の波の音(効果音)と本編中のセリフ音声は出るようになった。だが、BGMは鳴らず、下の様なエラーメッセージが出続けた。

0031:fixme:ntdll:EtwEventEnabled (deadbeef, 0x76021b48): stub

0047:fixme:gstreamer:event_src 0x7c104e00 (61441) stub

0047:err:gstreamer:unknown_type Could not find a filter for caps: "audio/x-wav"

0031:err:gstreamer:GST_Connect GStreamer failed to play stream

0048:err:gstreamer:watch_bus decodebin67484: GStreamer はプラグインを見つけることができません

0048:err:gstreamer:watch_bus gstdecodebin2.c(4640): gst_decode_bin_expose (): /GstBin:bin67484/GstDecodeBin:decodebin67484:

no suitable plugins found:

Missing decoder: WAV (audio/x-wav)

どうやら、 'audio/x-wav' というメディアタイプに対応する GStreamer のプラグインが見つからないというのだが、理由が分からない。効果音も wav ファイルなのだ。 _inmm 経由で音が再生されるのは BGM だけなので、 _inmm が再生出来ずにいるということしか分からない。

試行錯誤して、やっと解決した方法は、 _inmm.ini ファイルを標準形式ではなく拡張形式で記述し、 [Players] セクションに wav ファイルのプレイヤーを 'MCI = *.wav' という風に MCI を明示することで音がなるようになった。ちなみに、プレイヤーとしては MCI、DirectShow、Winamp、SCMPX、Lilith、Silent(再生しない)から選択できるそうだが、 DirectShow を選択してみたら鳴らなかった。標準形式では何故音が鳴らないかは分からない。


なぜか急に無性に Key の「 Air 」で遊びたくなり、PC版の初回限定版を取り寄せた。

PC版の「 Air 」は、音声無しなのだが、音声を鳴らしたかったので、音声化してくれるパッチを使った。いくつかのパッチが存在したが、DC(ドリームキャスト)版の音声データを用いるものは、DCのメディアがPCでは読み取れないため、DC版の「 Air 」に加え、DC本体とBBA(ブロードバンドアダプタ)が必要になってくるので断念し、PS2版の「 Air 」の音声データを用いるパッチを使った。

また、PC版の「 Air 」は、BGM再生が「月姫」同様に CD-DA なので、Windows10 ではループ再生出来ず止まってしまうので、 wave ファイルを再生するようにした。

古いゲームの話なので今頃遊ぶ人もあまりいないと思うが一応やり方を書いておく。

以下がその手順。

・PC版「 Air 」をインストールする。

・Key のサイトから、初回限定版に対するアップデータ airup_20010719.lzh をダウンロードし、アップデートする。

・ avg3217d.exe をどこかから見つけてきて、PC版「 Air 」のインストールフォルダにコピーする。

・artext_10.zip をダウンロードして中身の artext.exe を実行し、PCのドライブにPS2版「 Air 」のディスクを入れ、PS2版「 Air 」の音声データをPC版「 Air 」のインストールフォルダの下の DAT フォルダに wav ファイルに変換して保存させる。

・vpatchPS2_010b.zip をダウンロードして中身の voicepat_18.txt を voicepat.txt にリネームして、PC版「 Air 」のインストールフォルダの下の DAT フォルダにコピーする。

・vpatchPS2_010b.zip の中身の vairPS2_renamer.exe を実行し、「ミキサー無し版⇒ミキサー版」を選んで「AIRインストール先」を指定してリネームを実行する。

・vpatchPS2_010b.zip の中身の vpatchPS2.exe を実行し、「ミキサー版」を選んで「AIRインストール先」を指定してパッチを実行する。

・ _inmm238-installer.zip をダウンロードし、 _inmm238.exe を実行して inmm をインストールする。

・ _inmmcnf.exe を実行し、「パッチ」タブを選択すると、 inmm にプリインストールされているゲームの一覧から Key の Air を選んでBGMをwavから鳴らすためのパッチを当てることができるが、これでパッチを当てられるのはPC版「 Air 」インストール時に初めからインストールされる avg3217m.exe なので、音声を鳴らすために用意した avg3217d.exe にはパッチが当たらないためこの方法ではだめ。

・代わりに、 _inmmcnf.ini をテキストエディタで開き、’[AIR]’のブロックを検索し、そこの ‘File=AVG3217M.EXE’ を ‘ImportTablePatch=AVG3217D.EXE’ に変更して保存する。( ‘FIle=’だと AVG3217D.EXE の場合パッチ当てに失敗するため。)

・_inmmcnf.ini を編集したら、 _inmmcnf.exe を実行し、「パッチ」タブを選択し、 inmm にプリインストールされているゲームの一覧から Key の Air を選んでBGMをwavから鳴らすためのパッチを当てる。

以上の手順で、PC版の初回限定版「 Air 」を音声化しつつ、BGMもCD-DAからwav再生に変更できる。

ちなみに、 Windows10 64bit 版で「 Air 」で遊ぶ場合、 avg3217d.exe のプロパティの「互換性」タブを選び、「互換モードでこのプログラムを実行する」のチェックを入れ ‘Windows XP(Service Pack 2)’ を選択し、同時に、「管理者としてこのプログラムを実行する」にもチェックを入れておくと吉だと思われる。

あと素朴な疑問だが、PC版の「メモリアルエディション全年齢対象版」は Windows7 にも対応しているようだが、これもBGM再生は CD-DA なのだろうか?対応OSや発売が2010年であることを考えると、さすがにwav再生になっていないとまずい気がするのだが・・・。

[コメントの受付は終了しています ]
この記事のリンク元 | 1 |

キーワード: ゲーム Key Air CD-DA 音声化


月箱 2019-02-24 (日) 15:49:47+09:00

ソフトウェア

ゲットしてみた。

「月姫」と「歌月十夜」「幻視同盟」が遊べて、絵師の皆さんの壁紙もついてくる。

とりあえず起動してみたが、BGMの再生が太古の CD-DAだった(BGMを鳴らすためにCDに書き込まれている音楽トラックを直接再生する方式)。これだと Windows10 はおろか、もっと前のOSでもループ再生できず止まってしまう。OS側の仕様変更が原因と思うが、これをなおす方法はないので、ちょっと禁断の方法を使ってみた。

(1) nExtracterGUI を使い、「月姫」のアーカイブ arc.sar, nscript.dat の中身を展開する。

(2)展開した中身を例えば tukihime_ フォルダをつくり、そこに全部移動する。

(3) DecodeScenario_nscript.txt というテキストファイルがあるので、 00.txt にリネームする。

(4) cd2wav32 を使い、「月姫」のCDの音楽トラックに入っている曲から .wav ファイルを作る。

(5) .wav –> .ogg 変換ソフトウェアを使い (例えば freac-1.0.32-bin )、 .wav ファイルを .ogg ファイルに変換する。

(6) .ogg ファイルはトラックの順に 1.ogg ~ 10.ogg という名前にしておく。

(7) tukihime_/bgm というフォルダを作り、 .ogg ファイルを中に入れておく。

(8) 「月姫」のフォルダの中にある icon フォルダに入っている hollow.bmp を、 tukihime_/icon/ フォルダにコピーする。

(9) 「月姫」のフォルダの中にある jpgplgin.dll を、 tukihime_ フォルダにコピーする。

(10) NScripter最終版 をダウンロードして中身を展開し、「実行ファイル/DLL」フォルダに入っている nscr.exe, nsogg2.dll, nspng.dll を tukihime_ の中にコピーする。

(11)テキストエディタで 00.txt を開き、 play "*?" ( ? は 1 ~ 10 の数字 ) を全て、 bgm “bgm\?.ogg” に置換する。(例えば、 play “*1” と書かれているところは、 bgm “bgm\1.ogg” に変換する。)

(12)同様に playstop と書かれているところを全て、 stop に置換する。

これで、 nscr.exe を実行すると CD-DA ではなく .ogg ファイルの再生でBGMが鳴るので、ループ再生も問題なく出来るようになる。ただし、アーカイブの中身をごにょごにょする方法なので、展開した中身を絶対に他人に配ったり教えたりしてはいけない。あくまでも個人で楽しむにとどめて欲しい。良い子のみんなへの約束だぞ。

キーワード: ゲーム TYPE-MOON 月姫 CD-DA


公式サイトが閉鎖したため現在はダウンロード出来ない KAGEX3 だが、吉里吉里Zで使用できるようにする修正は思ったより簡単だった。

(1) kagex3/plugin/ に、吉里吉里Zソースからビルドした menu.dll, KAGParser.dll, win32dialog.dll をコピーする。

(2) kagex3/data/ に、吉里吉里Zから k2compat フォルダを中身ごとコピーする。

(3) kagex3/data/ , kagex3/template/ 以下にある全ての .tjs, .ks ファイルの文字コードを SHIFT-JIS から utf-8 に変更する。

(4) kagex3/data/startup.tjs を開き、先頭行に以下を挿入する。


@if (kirikiriz)
property _dummyProp { getter {} setter (v) {} }
with(Window) {
    &.innerSunken    = &_dummyProp;
    &.showScrollBars = &_dummyProp;
}
Plugins.link("plugin/menu.dll");
Plugins.link("plugin/KAGParser.dll");
Plugins.link("plugin/win32dialog.dll");

var base = "k2compat/"; Scripts.execStorage(base+"k2compat.tjs"); Krkr2CompatUtils.scriptBase = base; @endif

これだけだ。


Oracle JDK が 2018年 リリースされた Java11 から有償サポート化し、 Java8 のサポート期限が2019年1月で終了した。また、エンドユーザーが .jar を実行するなどするためのエンドユーザー向けに配布されていたJRE も配布されなくなった

有償サポートは Oracle Java SE Desktop Subscription の場合、1年間1ライセンスで US$30.00 。これを支払い続けるのであれば引き続き Oracle Java (Java SE 11.0.2(LTS))を使用できる。

ただし、この費用を支払い続けるのでなければ他の無償版 JDK に移行することが必要になったということだ。そこで調べてみたのだが、いろいろ不明な点があり正直エンドユーザにとってはどうすればいいか分からないのが現状だと思う。

不明点1:無償版 JDK はどれを使ったらいいの?

OpenJDK, AdoptOpenJDK があるが、どちらがいいのか分からない。参考記事によると、 AdoptOpenJDK は「 OpenJDK のビルドを提供するプロジェクト」とされているが、別に AdoptOpenJDK からダウンロードしなくても、 OpenJDK のサイト自体で JDK をダウンロード出来るので、敢えて AdoptOpenJDK を選ぶ理由が分からない。

不明点2:AdoptOpenJDK は JVM に HotSpot と OpenJ9 を選択することになる。どっちがいいの?

先に説明だが、 JVM とは Java Virtual Machine の略と思われる。要は java のコードを実行する仮想マシンエンジンのことだろう。複数のエンジンから一つを選ばせる形になっているわけだ。

ダウンロードページのヘルプを見ると、

HotSpot is the VM from the OpenJDK community. It is the most widely used VM today and is used in Oracle’s JDK. It is suitable for all workloads.

For more details see OpenJDK HotSpot.

OpenJ9 is the VM from the Eclipse community. It is an enterprise-grade VM designed for low memory usage and fast start-up and is used in IBM’s JDK. It is also suitable for running all workloads.

For more details see Eclipse OpenJ9.

と書かれている。 HotSpot は OpenJDK で開発されていて Oracle JDK でも使われており、 OpenJ9 は Eclipse で開発されていて IBM JDK で使われている、という違いがあるようだ。

・・・だから何?

それを聞いて、どっちを使ったらいいか即決できる人なんて、エンドユーザの中のごくごくわずかじゃないの? Oracle JRE がなくなったからやむを得ず移行しようとする一般ユーザにとって、普通はそんなこと聞かされてもさっぱり違いが分からないし、どっちを選んだらいいか判断なんてできないと思う。 Oracle JRE にあった機能のうち、どんな機能が削除されているので、こちらは使わない方がいい、とか、もっと判断材料になることを書いてもらわないと、何の助けにもならない。

不明点3:ダウンロードしても .jar ファイルを起動できるようにならない

これはまったく致命的だ。上記の JDK にはインストーラが付属していない。ダウンロードしたら、自分で .jar との関連付けを行う必要があるのだ。だが今回の件で無償版 JDK への移行方法を紹介しているサイトで、ダウンロード方法に併せて .jar の関連付けによりダブルクリック起動できるようにする方法が紹介されているサイトは実は皆無だった。エンドユーザにとって、この部分が一番出来なくて困る点なので紹介しておく。

.jar ファイルをダブルクリックしたときに、特定の java 環境で起動させるための関連付けは、以下の様な形で実装されている。

(A) assoc コマンドによる .jar ファイルに対するファイルタイプの定義

Oracle JRE の場合、

.jar=jarfile

と定義されている。( assoc (改行)で確認できる。)

(B) ftype コマンドによるファイルタイプに対するアプリケーション起動コマンドの定義

Oracle JRE の場合、

jarfile="C:\Program Files\Java\jre1.8.0_201\bin\javaw.exe" -jar "%1" %*

と定義されている。( ftype (改行)で確認できる。 )

このように2段階に定義づけされており、これを修正して、新しくダウンロードしてきた JDK の中にあるアプリケーションを起動するように変更する必要があるのだ。

具体的な手順の例としては、例えば、

(1)コントロールパネルのプログラムと機能から、 Oracle Java 関連をアンインストールする。

(2) AdoptOpenJDK から x64 の HotSpot JVM 版の JDK をダウンロードする。

(3) C:\Program Files\ にファイルを展開する。C:\Program Files\ の直下に jdk-11.0.2+9 というフォルダが作成される。

(4)コマンドプロンプトを管理者として実行する。

(5)以下のコマンドを実行する( AdoptOpenJarfile という名前は他のものに変えても良い)。

assoc .jar=AdoptOpenJarfile
ftype AdoptOpenJarfile="C:\Program Files\jdk-11.0.2+9\bin\javaw.exe" -jar "%1" %*

正しく実行できていれば、この時点で .far ファイルのアイコンが Oracle JRE の javaw.exe のものから、 AdoptOpenJDK の javaw.exe のものに変わる。後は、起動したい .jar ファイルをダブルクリックすれば起動できるはずだ。今後は、 JDK の新しいバージョンをダウンロードするたびに、フォルダ名(上の例で jdk-11.0.2+9 の部分)を変更しない場合を除いて、この関連付け作業が必要になる。

[コメントの受付は終了しています ]
この記事のリンク元 | 4 | 4 | 1 |