3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

MacでX1のクロス開発(エミュレーターの準備編)

Last updated at Posted at 2015-11-14

X1の実機で開発をするのはさすがにきついのです。
というわけで、動作確認のためにエミュレーターを使えるようにします。

Macで使えるエミュレーターはあるのか?

まず問題はここです。
検索すると、Windows用はそこそこあるのですが、Macだととたんに情報がありません。
で、現状ほぼ唯一使えそうなのが MESS です。
MESS(Multi Emulator Super System)はMAMEの一種ですが、ゲームだけでなく古いPCのエミュレーターも含んでいるようです。

しかも、Mac向けにビルドされたものが SDLMAME として配布されているので、面倒が少なそうです。

※エミュレーターでX1を動かすためのソフトウェア(BIOS等)を必要としますが、それらの入手に関しては割愛します。

MESS(SDLMAME)を使えるようにする

###SDL2のインストール
まずSDLをインストールします。
このサイト https://www.libsdl.org/download-2.0.php から"Runtime Binaries"にある"Mac OS X"用のdmgファイルをダウンロードします。
dmgファイルを開くと "SDL2.framework" があるので、これを /Library/Frameworks にコピーすればよいです。

##SDLMAMEのダウンロード
SDLMAMEのサイトからSDLMAME本体をダウンロードします。32bitと64bitの両方がありますが、ここでは64bit版(SDLMAME v0.167 64-bit)にします。
zipファイルを適当な場所に展開します。
中にある mame64 という148MBもある実行ファイルがSDLMAMEの本体です。

##BIOSの入手
X1のBIOS(x1.zip)をどこかから入手します。
SDLMAMEの実行ファイル(mame64)のあるディレクトリに roms ディレクトリを作成します。
その下に、x1.zip をzipのままコピーします。

##MESSを実行する前に
これでMESSでX1をエミュレーションできるのですが、実行前に必ず以下のファイルを作成しておきます。
これがないと、MESSを終了させることができなくなります。
実行ファイルのあるディレクトリに cfg というディレクトリがない場合は作成してください。

cfg/default.cfg
<?xml version="1.0"?>
<mameconfig version="10">
    <system name="default">
        <input>
            <port type="UI_TOGGLE_UI">
                <newseq type="standard">
                    KEYCODE_LALT KEYCODE_LWIN
                </newseq>
            </port>
        </input>
    </system>
</mameconfig>

ここまでで以下のようなファイル構成になります。

- mame64
- + roms
| - x1.zip
|
- + cfg
| - default.cfg

##MESSの起動
ターミナルで以下のように起動します。
mame64 x1

色々とメッセージが出ますが、 とりあえずenterを押して進みます。
"Type OK or .." と出たらOKと押してください。
白い文字で以下のメッセージが出れば、X1のエミュレーションが始まります。

IPL is under preparing

##MESSの終了
Option+commandキーを押すと、以下の様なメッセージが出ます。

Emulation Status
UI: enabled

この状態でESCを押せば終了できます。

X1のエミュレーションが始まると、キーは基本的にX1に渡されてしまうため、MESSそのものを操作できなくなります。
そのため、MESSそのものを操作するときは、MESSのユーザーインターフェースが優先してキー入力を受け取るように切り替える必要があります。
この切替を Option+command でできるようにするために cfg/default.cfg を用意していたのです。
これがないと、ESC を押してもX1が拾ってしまうので、終了できません。
切り替えキーはX1が認識しないキーであれば何でもかまいません。
なお、デフォルトは ScrLock になっていますので、これがついているキーボードを使っているのなら、default.cfg を用意する必要はないかもしれません。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?