3.FamilierとMelonでSnes9x 

           (自己責任で。 違法行為を推奨するものではありません。)
            

今まで、iPAQでLinuxとのDualBootを紹介してきましたが、

僕がiPAQにLinuxを入れたいと思ったのは実は、「WINCEでエミュレーター」さんの

総合掲示板にganさんなる方の書き込みを見た時からでした。

PocketPC及びPocketPC2002で動作するSNESエミュレーターは、

御存知のように、いくつかあります。

特に期待できるものはPocketSNES BleedingEdgeでかなり頻繁に

バージョンアップを繰り返してなんとか音有りで動くかな?くらいになっていますが、

ganさんより紹介していただいた動画では

(WINCEでエミュレーターさんの CEでEMU - Linux で紹介されてます。必見!!)

iPAQで実機並のクォリティーの映像とサウンドが…!それで、

なんとかiPAQをLinuxにしたいと、思っているところでMelonに出会いました。

(実は、これもganさんのver2からFREEになったとの情報がきっかけでした。)

それ以前に本当は、「iPAQで作る最強LinuxPDA」とシリアルケーブルを

本の発売と同時に購入していたのですが、初めの数ページで放置したままでした。

(おかげで、いまではシリアルケーブルが行方不明だったりします。)

このような経緯で再びLinuxに火がつきました。(たね火くらいの大きさでしたが…)

 

iPAQのSnes9xの公式サイトは、残念なことに少し以前に閉鎖されたようで

ファイルを入手することはできないのですが、

Zaurus XFree86(linux)用にポーディングされたものが入手可能で実際、

iPAQでも動作するとの、またまたganさんの情報だったりします。

用意するものは、このZaurus XFree86(linux)用にポーディングされた

snes9xとromイメージ、LinuxなiPAQです。今回は、前に紹介させていただいたCFから

BootなFamiliarとMelonでの使用を紹介したいと思います。

インストールするには、ファイルを転送して行いますので転送方法は

いくつかあると思いますが、僕を含めてこれを読んでいる方はLinuxより

WindowsやPocketPCの方が使い慣れていると思うので、

WindowsやPocketPC上でCFに直接ファイルを第一パーティションに

転送する方法で説明します。

Familiarの項で作ったCFでは、WindowsやPocketPCからもアクセスできる

第一パーティションを8MBにしてますが使い勝手を考えると8MBでは、

残りの未使用な量が少ないので20MBくらいは欲しいところです。

また、紹介したMelonでは、64MBのCFにきっちり収めるための

インストールツール(mkmelon)を使っているため、あのままでは第一パーティションは、

3MBほど残りは1MBもないほどなので、fdiskを使って

FamiliarとDualBoot」と同じようにパーティションを変更します。

MelonでDualBoot」を書いていた頃はハッキリ言って、自分でも何をやっているのか

よくわからなかったのですが、Melonのインストールで使ったmkmelonは、

結局自動でfdiskやイメージなどをそれぞれ展開するためのものでファイルの違いさえあれ

FamiliarとDualBoot」と同じことをやっていただけということが、後でようやく気付きました。

つまり、使いやすくfdiskでそれぞれのパーティションを決めてフォーマットしたら

bootstrap.tar.gzを第1パーティションで展開して

rootfs.tar.gzを第2パーティションで展開するだけでOKです。

(fdisk後、mkmelon install で(y/n)? nでもいけるようですが。)

 

Familiarまたは、MelonのCFが用意ができたところで必要なファイルをダウンロードします。

Zaurus XFree86(linux)用にポーディングされたsnes9xは、Zaurus Software Indexさんで、

romに関しては今回思いきってサイトを紹介しちゃいます。(通報しないで下さいネ。(笑))

こちらに、あります。

実は、これらのイメージは全てアマチュアプログラマーの方の力作で著作権に抵触しない

フリーウェアだったりしますのでSNESのソフトをお持ちでない方も問題ありません。

今回は、この中のPACMAN.SMCを例に紹介させていただきます。

それでは、早速、CFへ転送してインストールしたいところですが、

インストールしただけではボタンに全ての必要なキーがマッピングされていないので

設定ファイルを予め作成しておく必要があります。

(ここで僕はつまずいてました…)以下のようにテキストファイルをつくっておきます。

(↓)

keycode 130 = s

keycode 131 = x

keycode 132 = d

keycode 133 = c

keycode 104 = Return

keycode 128 = space

keycode 129 = Return

(↑)

(もちろん、LinuxなiPAQ上でエディダ等を使って作ってもよいですが…)

今回は、判りやすいようにsnes9x.xmodmapとリネームしておきました。

(本当は英数字であれば.txtでもなんでもOKです。)

上の内容を説明すると下のようになります。

keycode  iPAQ   SNES
 130 = s  ボタン1     Xボタン
 131 = x  ボタン2  Yボタン
 132 = d  ボタン3     Aボタン
 133 = c  ボタン4     Bボタン
 104 = Return  アクションボタン    Startボタン
 128 = space  ボタン5   Selectボタン
 129 = Return  電源ボタン  Startボタン

 

これで本当に準備完了で、これらのファイルを普通に

Windows(またはPocketPC)上からCFにコピーしておきます。

snes9x_1.3.9-3_arm.ipk

snes9x.xmodmap

PACMAN.SMC

あとはLinuxをCFからbootさせ、terminal(Melonでは漢字端末)を起動します。

 

まず、Familiarの方から説明します。terminalを立ち上げ、

CFの第一パーティション(hda1として認識)を使えるようにmountして移動します。

デフォルトで/mnt/hda/というマウントポイントがあるのでこれを利用します。

sh-2.03# mount /dev/hda1 /mnt/hda/

sh-2.03# cd /mnt/hda/

ここでSnes9xをインストールします。

sh-2.03# ipkg install snes9x_1.3.9-3_arm.ipk

途中でEnterを押して、インストールを進めます。

インストールすると/home/root/snes9x/というディレクトリが

作成されますのでここにあとの必要なファイルをコピーしてます。

sh-2.03# cp snes9x.xmodmap /home/root/snes9x/

sh-2.03# cp pacman.smc /home/root/snes9x/

Familiarのmenuから

Menu - Configuration - RotationLandscape Left

を選択して画面を回転させておきます。

また、terminalに戻って

/home/root/snes9x/へ移動し、ボタンの設定をして

sh-2.03# cd /home/root/snes9x/

sh-2.03# xmodmap snes9x.xmodmap

Snes9xをrom名を指定して起動します。

sh-2.03# snes9x pacman.smc

懐かしいゲームがスタートします。

 

次はMelonでの説明をします。(38xxな方はこちらです。)

Melonで漢字端末(kterm)を起動すると

sh-2.03$  

とでているので一般ユーザーとしてログインしていることがわかります。

インストールやSnes9xの起動などはrootでないとできなかったりするので、

sh-2.03$ su

password: rootme (←画面には表示されません。)

と入れrootでログインします。

sh-2.03# 

Familiarと同じようにhda1をmountしてSnes9xをインストールし、

必要なファイルを/home/root/snes9xへコピーしておきます。

sh-2.03# mount /dev/hda1 /mnt/hda/

sh-2.03# cd /mnt/hda/

sh-2.03# ipkg install snes9x_1.3.9-3_arm.ipk

sh-2.03# cp snes9x.xmodmap /home/root/snes9x

sh-2.03# cp pacman.smc /home/root/snes9x

Melonでは、Familiarと同じようにボタンの設定を行っても

予めボタン1とボタン2はマウスエミュレーションをしてるとのこと(ganさん談。)

なのでこれを解除するためMelonのメニューからエディダを起動させ

/home/sikigami/sikigami ファイルを開いて.



sgwm &



これを



sgwm -middle keycode -right keycode &

へ書き換えて保存するとできるとのことです。

ここで一度rebootして、再起動します。

 

また、漢字端末(kterm)を起動してrootでログインして、

sh-2.03$ su

password: rootme (←画面には表示されません。)

sh-2.03# cd /home/root/snes9x/

rootではそのままではxmodmapコマンドは使えないので

使えるようにパスを通しておきます。

sh-2.03# export PATH=$PATH:/usr/X11R6/bin/

後はFamiliarと一緒です。

sh-2.03# xmodmap snes9x.xmodmap

sh-2.03# snes9x pacman.smc

(終了は、キーボードからEscで。)

(センターが少し左へずれているのでスタイラスで調整して、遊びます。)

どうでしょう?できましたでしょうか。

初めてSnes9xが動いたときは、とても感動しました。

僕が実機で遊んでた頃はTVはモノラルのものを使っていたので

イヤホンから聞こえてくるステレオな音が特に感動的です!未体験の方は、ぜひ。

ゲームが好きな方なら、これだけでもiPAQをLinux化する価値は充分あると思います。

これを機会にLinuxなiPAQに興味をお持ちになる方が増えて

PocketPCの様にいろいろな情報がもっと手に入りやすくなったり、また、

旧機種になってしまったiPAQ36xx,38xxがまた使われるようになれば幸いです。

 

また、セーブデータは。Familiar、Melonともに

/root/.snes96_snapshots/*.srm

に保存されてます。

 

はっきりいって僕自身が自力でやれたのはSnes9xをインストールするまでで、

後はほとんどganさんに教えていただいたことだったりします。

特に、Melonのボタン問題は僕の力では解決不可能でした。

ここまで、書いてきましたが僕はまだまだLinux超初心者に毛が3本ほど

生えたレベルなことを、しみじみと実感しました。(笑)

今回、ここまで手とり足とりで価値ある情報を提供してくださった

ganさんにとても感謝しております。本当にありがとうございました。

これからも、よろしくお願いいたします。

 

P.S.

キリコさんよりBBSで情報をいただきました。

僕の使い方など紹介させて頂きます。
まずrootでログインし
下の内容のシェルスクリプトを作成します。
ファイル名は何でもいいですがここでは「snes」とさせて頂きます

#! /bin/sh
mount /dev/hda1 /mnt/hda
cp /mnt/hda/My\ Documents/rom/$1.srm /root/.snes96_snapshots/
/usr/X11R6/bin/xmodmap /home/root/snes9x/snes9x.xmodmap
snes9x /mnt/hda/My\ Documents/rom/$1.smc
cp /root/.snes96_snapshots/$1.srm /mnt/hda/My\ Documents/rom/
umount /mnt/hda


後はプロンプトから

sh snes ロムファイル名

と実行するだけで
1.CFのPPC領域のマウント
2.セーブデータの読み込み
3.キーマップの設定
4.指定したゲームをPPC領域から起動
5.ゲーム終了後セーブデータの書き込み
6.CFのPPC領域のマウント解除
を自動で行ってくれます。
好みでカスタマイズしてもいいと思います。

セーブデータをWindowsCEと共有できたり結構便利です!
ただコマンドを羅列しただけですが(笑)

それでは失礼します。

とのこと。snes9xをもっと便利に使うためのとても良いアイデアだと思います。

尚、\(バックスラッシュ)はLinux上でviなどのエディダを使用して入力します。

キリコさん、また良い情報をお待ちしております。ありがとうございました。

 

(2003年 2月1日)

(2003年 3月23日 修正)

戻る

HOME