【マルチエミュ】BizHawkでLibretroコアを使用する方法
去年からヒマを見ては試していたタイトルの件ですが、試行錯誤の末に何とかBizHawkでLibretroのコアを起動する事が出来ました。とは言っても動作は非常に不安定ですし、環境によってはこのエントリーで紹介する手順では起動出来ない場合があるかもしれません。
当方のPC環境はWin7 SP1 x64なのでそれ以外の環境では未確認ですし、同じWin7でも動作を保証する事は出来ないので何卒その点はご了承下さい。
当エントリーは過去記事をそのまま移行したのでかなーり古い内容となっています。現在の状況と照らし合わせて再検証した後、加筆・修正など行う予定ですのでしばらくお待ちいただきたい。
と言うかぶっちゃけ今そこまでしてBizHawkでLibretroコアを動かそうとする必要が無いような…ちなみにちょっと試してみたところネオポケやmednafenコアなどは特に何もしなくても使える場合がありますが、Opera(4DO)や新しめのコアなどはほぼ全滅でしたので参考までに。
BizHawkでLibretroコアを動かしてみよう
ウチの貧弱なPCのせいかもしれませんが、このBizHawkはちょっと変わった事をしようとするとやたら不安定極まりない動作をするので、現在BizHawkを使っている方も新しいフォルダを作ってから試してみる事をオススメします。
必要なファイルのダウンロード
まずBizHawkとLibretroの公式サイトから必要なファイルをダウンロードします。
BizHawkの最新版(1.11.9.1)をダウンロード
LibretroのNightly版 x86をダウンロード
Libretroの方は最低限必要なファイルとx86のコア、今回はテスト用にMednafenのネオポケコアと4DOのコアを使ってみたいと思います。使用している環境に関係無くx86のコアをダウンロードしましょう、ここ大事ですのでお間違い無く。
nightly > windows > x86のページから
- redist-minir-x86.zip
nightly > windows > x86 > latestのページから
- mednafen_ngp_libretro.dll.zip
- 4do_libretro.dll.zip
以上のファイルをダウンロードします。
インストールというかセッティング方法
次にダウンロードしてきたファイルをそれぞれ解凍して、以下のフォルダ構造になるように配置します。
- BizHawkを適当なフォルダに解凍
- その中にLibretroフォルダを作成
- 更にその中にCoresフォルダを作成
BizHawkのフォルダ
├ [dll]
│
├ [Libretro] – [Cores] – この中にダウンロードしてきたコアを解凍する
│
├ DiscoHawk.exe
└ EmuHawk.exe
こんな感じでフォルダを作成したら、Coresフォルダの中に先ほどダウンロードしてきたネオポケ(mednafen_ngp_Libretro.dll)と4DO(4do_Libretro.dll)のコアを解凍して放り込みます。
redist-minir-x86.zipを解凍すると、中にはlibwinpthread-1.dllというファイルが1つあるだけかと思いますが、これはBizHawk本体と同じフォルダかdllフォルダの中にでも入れておいて下さい。このファイルが無いとLibretroコアを指定した時にたぶんこんなダイアログが出ます。
まずはLibretroのネオポケコアを起動
BizHawkを起動してFile > Open Advancedを開くと、先ほどコアを入れておいたフォルダが表示されるので、まずはネオポケのコアを選択してみましょう。
これが普通に選択出来たらOKなんですが、強制終了した場合は次の手順に移ります。
強制終了された場合の手順
BizHawk本体と同じフォルダにはまだconfig.iniが作成されていないと思いますので、一旦BizHawkを起動してConfig > Save Configでconfig.iniを作成したら終了させて下さい。
config.iniをテキストエディタで開いて一番下まで移動すると、下から二行目に
"LibretroCore": null,
という行があるはずなので、このnullの部分をLibretroコアの絶対パスを指定した形に書き換えてやります。
このパスは今回作成したBizHawkのフォルダがどこにあるかで変わってきますが、例えばCドライブ直下にBizHawkというフォルダを作成した場合には以下のようになります。
"LibretroCore": "C:\\BizHawk\\Libretro\\Cores\\mednafen_ngp_Libretro.dll",
大事なのは""で括る事と、\は2つ続けて記述する事の二点です。というか上の行をコピペして「BizHawk」の部分だけ自分の環境に合わせて置き換えるのが無難かと思います。
config.iniの編集が済んだらセーブしてファイルを閉じ、BizHawkを起動します。
それではネオポケを起動してみましょう
先ほどと同じようにFile > Open Advancedを選ぶと既にコアが選択された状態になっているので、そのすぐ下のLaunch Gameからネオポケのゲームを…
その前に、これも環境によるものかunzip的なdllとかで解決出来る問題なのかはわかりませんが、zipで圧縮されたロムは起動出来なかったので圧縮している場合は事前に解凍しておいた方が良さそうです。
それでは今度こそ行ってみたいと思います。次のような画面が出てもガン無視で右下の続行をクリックして下さい。
ウチの環境だとLibretroのコアで起動すると必ずこのエラーが出るんですよね…どこかで原因はちゃんと調べたいと思ってますが、とりあえず今の所は無視しても問題無さそうなので後回しにします。
BizHawkでネオポケ起動しました!
一度でも正常に起動すれば最近開いたファイルの中にLibretroのコアで開いたものも入るので、毎回そこまでフォルダを開いて指定する必要はなくなります。さすがに新しいゲームを開く場合は仕方が無いですけど。
BizHawk標準のコアと違ってコントローラーの画像までは表示されませんが、キーコンフィグも問題なく出来ます。それにしても画像が出ないと右側がすっごい余りますな…
無事に起動したので「伝説のオウガバトル外伝 ゼノビアの皇子」のキャラメイキング的な部分を適当に終わらせた後、セーブしてから終了しようと思ったら毎度おなじみの稀によく見る画面が…
ダメじゃん…まだ設定が完全じゃないか、さっきのエラーが関係してるんでしょうかね?とりあえずこの辺は今後の課題という事にして次に行ってみたいと思います。
次は4DOコアを起動してみる
既にLibretroのコアが動かせる環境にはなっているので、ここから先はそれほど大変でもありませんが、Biosが必要なコアの場合は他にもしなければいけない事があるので、次は4DOを例として起動までの手順を書いてみたいと思います。
なぜそこで4DO?と思うかもしれませんが、実際に動作が確認されているのがそのくらいしか無いからなんですね。そこでまずは実績のあるもので動作を確認して、自分の中で手順が確立したらそれ以外のコアも試してみようというわけです。
4DOの動作に必要な設定
まず4DOの動作に必要なBiosを準備しなければなりませんが、Libretroのinfoファイルによるとこのようになっています。以下の内容はRetroArchのinfoフォルダにある4do_libretro.infoから部分的に抜粋したものです。
notes = "(!) panafz10.bin (md5): 51f2f43ae2f3508a14d9f56597e2d3ce"
という事なので、まず以下の点を確認します。
- 3DOのBiosを所有している事
- ファイル名は指定されているものに変更(panafz10.bin)
- md5のハッシュ値が同じかどうか
md5のハッシュ値は適当なフリーソフトを探して計算してみて下さい。私が使っているmd5チェックツールは既に配布先が無くなってましたので…
Biosを所有していないか所有していてもmd5のハッシュ値が違っていた場合は残念ながら今回はここまでとなりますが、全てOKだったと仮定して話を進める事にします。
先ほどネオポケのコアを起動した事でLibretroフォルダの中にSaveRAM、State、Systemというフォルダが自動的に作成されているはずなので、そのSystemフォルダの中に4do_libretroというフォルダを作成して3DOのBiosファイル(panafz10.bin)を入れます。
BizHawkのフォルダ
│
├ デフォルトで入ってるフォルダとか
│
├ [Libretro] – [Cores] – 4do_Libretro.dll
│ – [SaveRAM]
│ – [State]
│ – [System] – [4do_libretro] – panafz10.bin
├ DiscoHawk.exe
├ EmuHawk.exe
こんな感じになっていればOKです。
それでは4DOを起動してみましょう
BizHawkを起動してFile > Open Advancedから4DOのコアを選択し、次にLaunch Gameで起動したいisoファイルを選択します。cueファイルからは起動出来なかったのでisoファイルを直接選択する必要があるかも?ここでもエラーが出た場合は続行をポチって下さい。
うまく起動した時は少し待たされますが、すぐに3DOのロゴ画面が出た時は恐らくディスクイメージが認識されていないので、起動後に「ディスクを入れて下さい」の画面になると思います。また、本家の4DOで起動してもなぜかコチラではダメな場合もあるようなので、とりあえずそんなものなのねという感じでひとつお願いします。
ちなみにBiosが認識されていないか、コアそのものが対応していない場合にはこのようなエラーが出るっぽいです。
とりあえず動くというレベルでしょうか
動くには動いたんだけど、なんだか完全じゃないといった感じですね。私の設定が悪いのかそれともやはり例のエラーを解消しない事にはちゃんと動いてくれないのか、今のところ原因はさっぱりわかっていませんが、とりあえずこれでLibretroのコアをBizHawkで起動出来るようにはなったかと思います。
既に開発が止まっている古いゲーム機のエミュレータをBizHawkのようなマルチエミュで一本化出来ないかと考えている人は私以外にも少なからずいそうですし、またヒマを見てチクチクとイジってみる事にします。