DSエミュで(合法的に)遊ぶ

 最近DeSmuMEなるニンテンドーDSエミュレーターが(一部で)ブームらしい。Googleトレンドの検索結果を見てもその盛り上がりは明らかで、2010年9月中旬(というか9月18日)に大きな山があることが分かる。この9月18日はポケモン新作の発売日ということで、まぁなんだかなぁ、という感じではあるのだが……。

DeSmuMEのトレンド

DeSmuMEのトレンド

 で、ニンテンドーDSエミュレーターというと数年前に触ったときはまだまだ完成度が低く、とても市販のゲームが動かせる状況ではなかったのだが、現在では完成度が上がり、結構色々と動作するらしい。ということで、とりあえず久しぶりに試して見ようと思ったら色々とはまったのでメモ代わりにご紹介。

DeSmuMEほかの入手

 まずはDeSmuMEの入手法だが、DeSmuMEのダウンロードから入手できる。Windows/Mac OS X/Linux/ソースが公開されているので、適当なものをどうぞ。Windows版の場合、ZIPで圧縮されているだけなので適当に展開すればOKだ。

 続いて動かすアプリの入手。最近では完成度の高いHomebrew(非オフィシャルな開発ツールを使って有志が制作したソフトの総称。ほとんどが無料で公開されている)も増えてきており、とりあえず評価の高いペイントソフト「Colors!を試して見ることにした。

Colors!の設定

 Homebrewソフトは拡張子が「.nds」という形式のファイルで配布されており、通常はこれをDeSmuMEにドラッグ&ドロップすればソフトを起動できるのだが、Colors!の場合はファイルI/OにDLDIという仕組みを使用しており、先にこれの設定を行う必要がある。

 DLDIはDS用のストレージデバイス(マジコンなどと呼ばれているもの)用I/Oドライバのようなもので、使用するストレージデバイスに対応した「パッチ」を.ndsファイルに適用しておく必要がある。DeSmuMEの場合、「GBA Movie Player (Compact Flash)」を利用せよとのことなので、まずここからmpcf.dldiをダウンロードする。また、パッチを適用するためのツール「Dlditool-win32-gui」もダウンロードしておく。これはWindows用のGUIツールなので、ほかのOSを使っている場合は適当なものを選んでほしい。

 Dlditool-win32-guiを適当な場所に展開し、「dlditool32.exe」を実行すると「DLDI Patcher v0.32」というウィンドウが表示される。「DLDI File」で先ほどダウンロードしたmpcf.dldiが含まれるフォルダを選択し、「Binaries」でColors!に含まれる「HBMenu.nds」を指定する(ファイルのドラッグ&ドロップでも指定可能)。最後に「Patch」ボタンをクリックすればパッチ完了となる。

DLDI Patcherでパッチを適用

DLDI Patcherでパッチを適用

ディスクイメージファイルを作る

 さて、本来ならあとはHBMenu.ndsファイルをDeSmuMEで開き、メニューから「colors.nds」を選択すればソフトが起動するはずなのだが、DeSmuMEの問題なのかそれともDLDIの問題なのか、Colors!を起動すると「ストレージに書き込めない」という旨のメッセージが出て操作できなくなってしまう。どうもWindows側のフォルダをそのままストレージとして利用するあたりが問題のようなので、ディスクイメージファイルを作成し、ファイル一式をそこに格納することで対処することにする。

 ディスクイメージの作成・操作だが、残念ながらWindowsで動作する適切なものは発見できなかった。しょうがないのでMac OS X上でディスクイメージを作成&マウントし、そこでファイルをコピーしたあとでWindows機に転送する、という方法で対処する。

 Mac OS Xでは、「ディスクユーティリティ」を使用して簡単にディスクイメージを作成したり、マウントできる(Linuxでもルート権限があれば比較的容易に作業可能だが今回は割愛)。

Mac OS Xのディスクユーティリティでディスクイメージ作成

Mac OS Xのディスクユーティリティでディスクイメージ作成

 「フォーマット」で「MS-DOS(FAT)」を、「パーティション」で「パーティションマップなし」を選択するのがポイント。容量はお好みでどうぞ。

 ディスクイメージを作成・マウントしたら、Colors!の配布アーカイブに含まれるファイル一式をそこにコピーし、アンマウントしてディスクイメージをWindows側にコピーすれば作業完了。

ディスクイメージを使用する設定

 あとはDeSmuMEを起動し、「エミュレーション」メニューの「GBAスロット」を選択して「GBAスロット」ウィンドウを開き、「Compact Flash」を選択して作成したイメージファイルを指定すればOK。

「GBAスロット」でディスクイメージを指定

「GBAスロット」でディスクイメージを指定

 ただし、DeSmuME 0.9.6のWindows版の場合、ここで設定した値が反映されないというバグがあるので、ここでファイルを指定した後いったんDeSmuMEを終了し、DeSmuME.exeと同じディレクトリ内にある「desmume.ini」をテキストエディタで開いて次の個所を修正する必要がある。

[GBAslot.CFlash]
fileMode=1  ←「1」に設定
path=C:\work\desmume\
filename=C:\work\desmume\test.dmg

 以上でやっと全作業工程は完了。パッチを適用したHBmenu.ndsをDeSmuMEで開き、メニューから矢印キーで「Colors.nds」を選択してXキーを押せばColors!が起動する。

HBMenuからColors!を起動する

HBMenuからColors!を起動する

Colors!をDeSmuMEで実行

Colors!をDeSmuMEで実行

 ちなみに、実機で動かす場合は自動的にDLDIドライバが選択されるはずなので、パッチ作業は不要らしい(確認していないので本当かどうかは不明)。