N64エミュ m64pの導入と初期設定など

設定・使い方N64,m64p,mupen64plus

N64エミュなら特に不満は無いし別にProject64でよくね?と思っていた時期もありましたが、今ではもうm64pでよくね?というくらいオススメ出来る感じになってきたように思います。

そんなわけでまだm64p(Mupen64Plus)は使った事がないという方はぜひこの機会にお試しを、という事でm64pの導入と設定について書いてみたいと思います。

当エントリー執筆時のm64pのバージョン

2021/10/05時点で最新の v2021.9.26 467160c での設定内容になります。

公式の設定ガイド

一応Mupen64Plus公式のガイドはありますが、内容が古くて参考にならない部分もあったり。

当エントリーではネットワークに関する設定には触れていませんので、その辺に関してはこちらのガイドを参照してみてください。

m64p導入の事前準備

m64pの導入にあたってハードウェア要件と起動に必要なファイルの確認です。

具体的なドキュメントが見当たらないので詳細な環境などは出せませんが、とりあえずWindows10が動作している環境であれば基本的に問題は無いものと思われます。

GPUに関してはプラグインがParaLLEl-RDPに置き換えられた事でVulkan 1.1が必須となりました。

m64pの導入に必要なファイル

64DDを利用する場合のみ、64DD IPL ROMが必須です。

64DDを利用する場合に必須なファイル
  • 64DD IPL ROM

m64pの導入

m64pのダウンロードから初回起動までの手順です。

m64pのダウンロード

m64pの最新版はGitHubからダウンロード出来ます。

現在はプラグインがParaLLEl-RDPに置き換えられていますが、GlideN64じゃなきゃイヤだ!という方はこちらからGLideN64に対応した最終版がダウンロード出来ます。

ですが当エントリーではParaLLELの設定についてしか書いてませんのでその点はご容赦を。

m64pのインストール

ダウンロードしたファイルを任意の場所に展開すればOKです。

m64pの初回起動

mupen64plus-gui.exeを実行します。

m64pの設定

意味はわからずとも項目は全て拾って機械翻訳してあるのでムダに長くなってますが、設定が必要な項目は少ないはずです。

プラグインとパスの設定

Settings > Plugin and Path Selection をクリックします。

基本的にイジる必要はありませんが、設定ファイルのパスを本体と同じにする事でポータブル化が可能です。パスを変更する場合は Set Path から選択するか直接入力します。

コアとプラグインのパス

  • Core Library Path
    コア(mupen64plus.dll)のパス。
  • Plugin Dir Path
    プラグインのパス。

コアとプラグインのパスには $APP_PATH$ と設定されていますが、これは mupen64plus-gui.exe と同じ場所という事です。あえて変更する必要は無いと言うかヘタにイジると起動しなくなるので注意。

設定ファイルのパス

  • Config Dir Path
    設定ファイルのパス。

こちらに設定されている $CONFIG_PATH$ は以下の場所になります。

C:\Users\ユーザー名\AppData\Roaming\Mupen64Plus

デフォルトの状態に戻したい場合は Clear をクリックか入力したパスを削除します。

設定ファイルのパスを変更した場合は一旦再起動しないと変更が反映されません。

インプットプラグインの選択

インプットプラグインはプルダウンメニューから選択可能ですが、mupen64plus-input-raphnetraw.dll はN64 to USB Adapter専用のプラグインなのでそれ以外のコントローラーを使用する場合(ほとんどの方がそうだと思いますが)は実質的に mupen64plus-input-qt.dll 一択になります。

mupen64plus-input-raphnetraw.dllを選択した場合は設定不要で対応するコントローラーが利用可能になるので、Control Configuration が反転して開けない状態になりますが仕様なのでノープロブレムです。

ポータブルモードについて

m64pをポータブル化したい場合は Config Dir Path を以下のように設定します。上の例では mupen64plus-gui.exe と同じ場所に、下の例では mupen64plus-gui.exe と同じ場所に config というサブフォルダを作成してその中に設定ファイルが保存されるようになります。

$APP_PATH$
$APP_PATH$/config

何れにしても初回起動時にデフォルトの場所にシステムフォルダと設定ファイルが作成されてしまうのでポータブル化した場合にまぎらわしいと思えば削除してしまうのもありかな?と思いましたが、ポータブル化してもmupen64plusフォルダだけは作成されるようなのでとりあえず気にしない方向で。

コアと画面の設定

Settings > Core and Video Settings をクリックします。

ほとんどイジる必要が無いと言うより意味がわからないのでイジりようが無いというのが正直なところですが、特に変更しないよう注意書きがある項目は赤字にしておきました。だったらプロテクトするかいっそ表示しなければいいのにと思わなくもないですけど。

項目名の上にカーソルをホバーさせると説明が表示されます。

Core

OSDを非表示にするかセーブなどのパス以外は特にイジる必要はなさげです。

  • Version
    Mupen64Plus Core設定パラメータのバージョン番号。
  • OnScreenDisplay
    いわゆるOSD(オンスクリーンディスプレイ)です。
  • R4300Emulator
    0:ピュアインタプリタ、1:キャッシュインタプリタ、2以上:ダイナミックリコンパイラを使用。
  • NoCompiledJump
    ダイナミックリコンパイラーのコンパイル済みジャンプコマンドを無効。
  • DisableExtraMem
    4MBの拡張RAMパックを無効にします、ゲームによっては必要かも。
  • CountPerOp
    エミュレートされた命令のサイクル数を強制。
  • AutoStateSlotIncrement
    ステートセーブ後にステートスロットを増加する、自動で1の次は2、2の次は3にしてくれる的な感じ?
  • CurrentStateSlot
    エミュレータの状態をセーブ / ロードする際に使用するステートスロット。
  • EnableDebugger
    コアがデバッガをサポートしている場合、ROM実行開始時にR4300デバッガを起動。
  • ScreenshotPath
    スクリーンショットが保存されるパス。
  • SaveStatePath
    セーブステートが保存されるパス。
  • SaveSRAMPath
    ゲーム内のセーブデータが保存されるパス。
  • SharedDataPath
    共有データファイルを探す際に検索するパス、何のことやら…
  • RandomizeInterrupt
    PI/SI割り込みタイミングをランダム化。
  • SiDmaDuration
    SI DMAの継続時間?(-1:ゲーム設定ごとに使用)
  • GbCameraVideoCaptureBackend1
    ゲームボーイ カメラ ビデオ キャプチャー バックエンド、何でしょうかね?
  • SaveDiskFormat
    セーブディスクフォーマット。(0:フルディスクコピー(*.ndr / *.d6r)、1:RAMエリアのみ(*.ram))

尚、ScreenshotPath / SaveStatePath / SaveSRAMPathは空欄の場合、以下の場所にフォルダを作成します。

C:\Users\ユーザー名\AppData\Roaming\Mupen64Plus/screenshot
C:\Users\ユーザー名\AppData\Roaming\Mupen64Plus/save
C:\Users\ユーザー名\AppData\Roaming\Mupen64Plus/save

なのでポータブル化する場合はここを設定しないと意味が無いかも。ついでにScreenshot用のフォルダは撮影時に自動作成されないので事前に作成しておきましょう。SaveとStateの方は自動作成されるので大丈夫みたいですけど。

ParaLLEL Video

主に高解像度化に関する部分とウィンドウサイズくらいでしょうか。

  • Fullscreen
    フルスクリーン化(チェック:フルスクリーンモード、チェック無し:ウィンドウモード)
  • Upscaling
    アップスケーリング(1:無し、2:2x、4:4x、8:8x)
  • ScreenWidth
    画面の幅。
  • ScreenHeight
    画面の高さ。
  • WidescreenStretch
    ワイドスクリーンストレッチ。
  • DeinterlaceMode
    インターレース解除の方法(チェック:Weave、チェック無し:Bob)
  • SuperscaledReads
    アップサンプリング時のリードバックのスーパースケールを有効化。
  • SuperscaledDither
    アップサンプリング時にディザリングのスーパースケールを有効化。
  • SynchronousRDP
    RDPとCPUの同期を有効化。
  • CropOverscan
    クロップするオーバースキャンピクセルの量。
  • VIAA
    VIアンチエイリアス、ポリゴンのエッジを滑らかにする。
  • Divot
    VIのディボットフィルタを許可し、浮遊する黒いピクセルをクリーンアップ。
  • GammaDither
    VIガンマディザを許可。
  • VIBilerp
    VIバイリニア・スケーリングを許可。
  • VIDither
    VIのディザを許可。
  • DownScale
    ダウンサンプリング係数、VI後の出力をダウンスケールする。SSAAに相当。(0:無効、1:1/2、2:1/4、3:1/8)
  • NativeTextLOD
    アップスケール時にネイティブテクスチャのLOD計算を使用し、効果的にLODバイアスをかける。
  • NativeTextRECT
    TEX_RECTのプリミティブは継ぎ目を避けるために、一般的にネイティブ解像度でレンダリングされるべきです。

夜光虫2のように画面がプルプルと震える場合は DeinterlaceMode にチェックを入れると改善する場合があります。設定をイジったら即反映されるわけではないので一旦再起動が必要ですけど。

コントローラー設定

Settings > Controller Configuration をクリックします。

プロファイルを作成するのが一番てっとり早いので Manage Profiles タブを開いて New Profile (Gamepad) をクリックします。キーボードを設定したい場合は New Profile (Keyboard) で。

Profile Nameに適当な名前を入力してひと通りボタンを設定したら Save and Close をクリックします。

Controller1 タブに戻って Profile、Gamepad、Pak をそれぞれプルダウンメニューから選択します。

各設定ファイルの補足

設定ファイルが複数に分かれているのでそれぞれの内訳など。

mupen64plus.ini
これはユーザーの設定ファイルでは無いので基本的にイジらない方がいいですが、内容を理解した上であえてイジるのはありかも。イジった場合は上書き更新に注意で。

mupen64plus-gui.ini
プラグインとパス(Plugin and Path Selection)に関する設定ファイルです。このファイルのみ設定したパスに関係無く常に mupen64plus-gui.exe と同じ場所に保存されます。

mupen64plus.cfg
コアと画面(Core and Video Settings)に関する設定ファイルです。

input-settings.ini
コントローラー(Controller Configuration)に関する設定ファイルです。

input-profiles.ini
コントローラーのプロファイルに関する設定ファイルです。

ホットキーについて

設定されているホットキーに関してはこちらを参照してください。

ちなみにホットキーは mupen64plus.cfg の [CoreEvents] をイジればカスタマイズ可能なので興味のある方は試してみてください。キーIDの調べ方は上のリンク先の 3. Configuration for Key Commands に書いてあります。

一応サンプルとしてこんな感じに出来ますよという事で。

#一時停止を PPause に変更
Kbd Mapping Pause = 19
#早送りを FTab に変更
Kbd Mapping Fast Forward = 9

m64pの導入完了!

GUIが本当に必要最低限といった感じなので最近のエミュレータに慣れてしまうと少々物足りない感じはしますが、N64エミュレータの選択肢の1つとして使えるようにしておいて損は無いかと思います。

また、Mupen64PlusはRetroArchのコアとしても利用出来るのでそちら側の設定でも当エントリーが参考になれば幸いです。