先日、AYN Odin2 Portalという中華製エミュレータ機を購入しました。そのエミュ機にmelonDSというアプリを導入してニンテンドーDSのゲームを遊べるようにしたので、今回はその手順等を紹介していきたいと思います。
melonDSとは
オープンソースで開発されている、ニンテンドーDSおよびDSiのエミュレータです。WindowsやLinux、macOS、Androidなど様々なOSに対応したものが開発されています。(公式サイト)
Android端末へのインストールの方法としてはいくつかあるのですが、ここではObtaniumを介してGithubから取得する手順を記述します。
また、melonDSのバージョンについては安定版とナイトリービルド版とのおおまかに二種類が存在しています。安定版の方が初心者向けではありますが、個人的な興味によりナイトリービルド版を使うこととします。
melonDSの導入手順
この記事はObtaniumというアプリケーションを導入している事を前提にしています。Obtaniumの導入手順はこちらの記事を参照してください
アプリ一覧からObtaniumを起動し、下部のメニューからアプリの追加を押下します。
検索のテキストボックスに「melonds」と入力し、検索ボタンを押下します。
GitHubにチェックを入れ、1選択ボタンを押下します。
rafaelvcaetano/melonDS-androidにチェックを入れ、選択ボタンを押下します。
アプリのソースURLにURLが記入されます。下の方にスクロールすると色々と設定項目があるので、いくつか変更していきます。
設定を変更せずにそのまま追加ボタンを押下した場合はナイトリービルド版ではなく安定版がインストールされるので、必要に応じてどちらにするかを選択してください
「プレリリースを含む」のスイッチをオンにする
「最新のアセットアップロードをリリース日として使用する」のスイッチをオンにする
一番上に戻り、追加ボタンを押下します。
しばらく待つとこのような画面になります。場合によってはこの時点で画面中央にインストール済みと表示されているかもしれません。未インストールと表示されている場合は下部のインストールを押下し、インストールを実施します。
Obtaniumのアプリ画面にmelonDS Nightlyが追加されていればインストール成功です。Androidのアプリ一覧にも表示されているはずです。
melonDSの設定
早速melonDSを起動してみます。
ROMs
初回起動時の何も設定されていない状態だと上記のような画面になります。SET ROM DIRECTORYを押下します。
これはニンテンドーDSのROMファイルをどのディレクトリから読み取るかという設定になります。自分の場合は Roms/nds という階層でディレクトリを作成して使用することにしました。
任意のディレクトリに移動し、このフォルダを使用を押下することで設定が保存されます。
上記のような画面になります。今回は事前に対象ディレクトリ内にドラゴンクエスト9のROMファイルを入れておいたので、それが見えています。他にもROMファイルが格納されている場合はそれらもここで表示される事になります。
今後ROMファイルを格納する場所は今回指定したディレクトリになります
右上の縦三点リーダを押下してメニューを開き、Settings を押下して設定画面に移動します。以下、各項目の主要な設定内容について記述します。
General
Theme
好みのものに変更します。自分は暗めの配色が好きなのでDarkにしています。
Save Files
Save next to ROM file
セーブデータをROMファイルと同じディレクトリに保存するかどうかという設定です。自分は当該ディレクトリにはROMデータだけを格納する方がわかりやすいと思ったのでチェックを外しました。
Save file directory
セーブデータをどこに保存するかという設定です。押下すると先ほどROMファイルのディレクトリを選択した時と同じ要領でディレクトリの指定が出来ます。自分は MelonDS/saves という階層のディレクトリを作成して指定しました。
Video
Renderer
OpenGLに変更します。
Internal resolution
アップスケーリングの設定です。数値が大きい程よりグラフィックが綺麗になりますが、それだけ端末の要求スペックが高くなるため場合によってはfpsの低下を招くことがあるかもしれません。あえてニンテンドーDSの実機と同じグラフィックで遊びたい場合は 1x にしておきます。
上記画像は 1x と 8x とを比較したものです。ポリゴンが滑らかになっている事がわかります。
Input
Key mapping
キーコンフィグ(ボタンの割り当て)です。エミュレータ機であれば十字キーやABXYボタンなどの物理ボタンがあると思うので、それらを割り当てていきます。Odin2 Portalの場合は最初からある程度割り当てがなされていましたが、AがBボタンに割り当てられていたり、BがAボタンに割り当てられていたりしたので変更して修正しています。
ボタン割り当ての変更を行う場合は当該マッピングの右端の✕マークを押下して割り当てを消して、当該マッピングを押下したあとに割り当てたい物理ボタンを操作することで行います。
以下はお好みで割り当てるとよさそうなボタンです。
Fast Forward (toggle):ゲームの早送りのオンオフ切り替えです。自分はDSでは使用する事の無いR2ボタンを割り当てました。
Swap Screens:2つの画面の位置を切り替えるボタンです。自分はDSでは使用する事の無いL2ボタンを割り当てました。
Quick Save:ステートセーブを実行するボタンです。自分は左スティックの押し込みを割り当てました。
Quick Load:ステートロードを実行するボタンです。自分は右スティックの押し込みを割り当てました。
Layouts
ニンテンドーDSの2つの画面や仮想ボタンをどのように表示するかの設定です。右上の+アイコンを押下してレイアウトのパターンを追加する事が出来ます。
+アイコンを押下するとこのような画面になります。これは一つ前の画面の Default と同じレイアウトです。
青い四角と赤い四角がそれぞれニンテンドーDSの2つの画面を表しており、それぞれ押下するとサイズの調整を行うことが出来ます。
自分は Default に加えて、2つの画面が全く同じ大きさで並んで表示されるパターンも欲しかったのでそのようなレイアウトを追加しました。Odin2 Portalの画面解像度は 1920 x 1080 なので、青と赤の両方の四角の Width を960にしてやればOKです。
青と赤の四角や各種仮想ボタンはタップしたまま動かすことで位置の調整も出来ます。
配置が終わったら戻る操作、もしくは画面下部の MENU を押下してメニューを呼び出します。
Properties > Layout name:レイアウトの名前を付けます。自分の場合は2つの画面を同じサイズにしたレイアウトに「1:1」という名前を付けました。
Save and exit:レイアウトを保存して終了します。
Exit without saving:変更を保存せずに終了します。
Soft input behaviour
仮想ボタンを画面上に表示するかどうかの設定です。物理的な十字キーやABXYボタンが備わっている端末であれば Always invisible を選択して常時非表示とするのがよいと思います。
RetroAchievements
別途記事を作成して説明することとしたいと思います。
ROMごとの設定
各ROMの右端の歯車アイコンを押下すると、ROMごとの設定を行うことが出来ます。
ROM display name
ROMの表示名を変更する事が出来ます。DQ9はデフォルトで「ほしぞらのまもりびと」となっていたので「星空の守り人」に変更しました。
プレイ中のメニュー呼び出し
ゲームをプレイ中に Android の戻る操作でメニューを呼び出すことで、ステートセーブやロード、設定変更や終了等が出来るようになっています。
例えばこのメニューから Settings > Input > Layouts に移動することで、上記のようにゲーム中に画面レイアウトの切り替えが出来ます。