2012年09月14日

Raspberry PiでPlayStationエミュレータを動かす

DSC_5488.jpg

RPiでプレステのエミュレータを動かしている記事を見かけたので、試してみました。

Better PlayStation Emulation on the Raspberry Pi | Shea Silverman's Blog

Windows用のエミュレータのPCSXをARM Linuxに移植したもののようです。

上記のページにあるリンクから、pcsx_rearmed.zipをダウンロードします。
これをUSBメモリか何かでRPi上に持って行き、解凍します。
また、実行ファイルのExecuteビットが消えてしまっているので、chmodします。

 unzip -x pcsx_rearmed.zip
cd pcsx_rearmed/
chmod +x ./pcsx
起動は
./pcsx
ですが、現状では、サウンド出力がうまく動かないようです。
そこで、サウンドのプラグインをNULLに設定します。

起動後、メニューからOptions→[BIOS/Plugins]と選択し、SPU Pluginのところでカーソルキー左右で「spunull.so」を指定してください。

あとは、PlayStation用ソフトのCDROMイメージ(ISOファイルなど)を指定すればゲームを起動できます。
エミュレータのキー操作は、初期状態では
・v, c    … Select, Start
・カーソル  … 上下左右
・d, s, z, x … コントローラ右側の4つのボタン
・w, e, r, t … L1,L2,R1,R2
となっています。

昔は、この手のエミュレータはPlayStationのBIOSのイメージファイルが必要だったものですが、このエミュレータは互換BIOSが入っていて、大抵のゲームは動くようです(一部のゲームは正規のBIOSが必要とのこと)。


エミュレーション能力ですが、RPiの性能から想像していたよりも結構速くて、少し驚きました。
フルスピードとは行きませんが、そこそこ遊べる程度の速度で動いてくれます。
PlayStationはCPUは確かMIPSの33MHzくらいでしたので、700MHzのARMでエミュレートはできないことはないかもしれませんが、グラフィックのほうはRPiのGPUの3D機能も使っているのかもしれません。


音が出ないのは残念ですが、問題はRPiのサウンドドライバとの組み合わせにあるようです。
手持ちの古いUSB Audioアダプタを接続してみたところ、遅延やブツ切れはひどいものの、音はちゃんと出ました。

USBサウンドアダプタのドライバは自動認識されますが、先に認識されているRPi側のデバイスが優先されてしまいますので、
sudo modprobe -r snd_bcm2835
で強制的にデバイスを外してUSB Audioのほうを使わせます。


ちなみに、このエミュレータは画像・音関係はSDLを使っているらしく、X Windowなしでも動作します。
ただし、コンソールから起動してエラーになると、コンソールが使えなくなってしまう可能性が高いので、動作が確認できるまではX Window上で動かすことをお勧めします。

posted by boochow at 01:59| Comment(0) | Raspberry Pi | このブログの読者になる | 更新情報をチェックする

2012年09月10日

Raspberry PiをWindowsのシンクライアントにしてみる

RPiは、RAMも少ないしCPUも弱いので、まともなWebブラウザひとつ使うのも結構辛い感じですが、VNCクライアントとしてWindowsを使うならばどうか? と思って試してみました。

VNCは、ネットワーク越しに画面とキーボードやマウスの入力を送受信することで、他のコンピュータを操作するツールです。
Windowsのリモートデスクトップが汎用の仕組みになったようなものです。
RPiは画面表示に専念することになりますので、RAMが少ないことはあまり問題ならないと思われます。

raspbianで利用できるVNCクライアントとしては、xtightvncviewer、gtkvncviewer、gvncviewerなどがあります。
VNCクライアントとしての動作自体には大きな違いはありませんが、GtkなどのGUIツールキットを使ったソフトは、関連ライブラリを読み込むためか、起動はちょっと重たい感じがします。

まず普通のVNCクライアントとして、TightVNCを使ってWindowsを操作してみます。
これはX Window上で動作するソフトで、
sudo apt-get install xtightvncviewer
でインストールします。

操作される側のPCには、VNCサーバをインストールする必要があります。
実は、意外にパフォーマンスに影響が大きいのは、Windows側にインストールするVNCサーバです。

VNCサーバは、UltraVNCRealVNCを試してみましたが、どちらかというとRealVNCのほうが良さそうな感じです。
画面の広い範囲を書き換えるのは遅いのですが、文章を書いたりする場合には反応が早いと感じました。

TightVNCの起動は
vncviewer
です。

起動するとサーバのIPアドレスを聞かれますので、WindowsマシンのIPアドレスを入力します。
パスワードはWindowsのログオンパスワードです。

使ってみた感じ、テキストで書き物をする程度ならば、まあ使えなくはないかと思います。
ウインドウを切り替えるような、大幅な画面書き換えはかなり遅いですが、テキスト編集程度であれば我慢できる速度です。
動画などは、もちろん紙芝居状態になります。


このほか、krdcというソフトもあります。
これはVNCのほかに、WindowsのRemote Desktop Protocolにも対応しています。

Remote Desktopで試してみたところ、反応はVNCよりも良好で、画面の更新が早く感じられます。
また、X Windowのクリップボードの内容をWindows側へペーストすることが出来るのも便利です。
RDPでは音声をクライアント側(RPi側)から出力させることもできるのですが、さすがに処理が追いつかないのか、ノイズだらけで使い物になりませんでした。

大量のライブラリがリンクされているため、インストールにかなり時間がかかりますが、リモートでWindowsに接続させたいなら、試してみる価値はあるソフトだと思います。


以上のソフトはX Windowの中の1つのウインドウの中でVNCが動作することになりますが、X Windowを立ち上げず、画面全体をVNC専用にしてしまう方法もあります。

それには、DirectFBで動作するdirectvncを使います。

X Windowを使わないからといって、大幅に高速になるわけではありませんが、起動に手間がかからず、お手軽ではあります。

directvncを使用する場合は、DirectFBの設定が必要な場合があります。
DirectFBの画面解像度は/etc/fb.modesに設定があり、この中から選択できますが、私が使っている1920×1200という設定が入っていませんでした。

コンソール自体が1920×1200で動作していますので、この状態をfb.modesに追記します。
fbset
を実行すると
mode "1920x1200"
geometry 1920 1200 1920 1200 16
timings 0 0 0 0 0 0 0
rgba 5/11,6/5,5/0,0/16
endmode

という出力が得られますが、これを/etc/fb.modesに追記してやればOKです。
簡単には
sudo fbset >> /etc/fb.modes

となります。

そして、このモードを使用するようにDirectFB用の設定ファイルを書きます。
設定ファイルは$HOME/.directbrcです。

私は以下のように設定しました。

mode=1920x1200
depth=16
hardware
vsync-none

ただしハードウェアアクセラレーションは効いてないような気がします。

以上の設定に加えて、さらに/dev/tty0の読み書きができるようにする必要があります。

sudo chmod go+rw /dev/tty0

これでようやく起動できます。

directvnc ipaddr -p password -m xxx -b 16

xxxのところは、存在しないファイルを指定してください。
本来はキーボードマッピングを記述したファイルを指定する箇所ですが、何も指定しないとエラーになってしまうので、ダミーで指定しています。


この記事はWindowsにRDP接続したRaspbery Piで書いてみました。
なかなかしんどいところもありますが、全く無理と言うわけでもない…と思いました。

posted by boochow at 00:28| Comment(0) | Raspberry Pi | このブログの読者になる | 更新情報をチェックする

2012年09月02日

raspbmcでXBMCを動かしてみた(続き)

DSC_5473.jpg

ネット上でXBMCについて調べていたら、日本語設定のやり方を見つけたので試してみました。

AirPlay対応でAppleTV要らず!DVDISOやAVIファイルなどを再生できるXBMCで行った方がいい設定。|MacWin Ver.0.7
SYSTEM→Setting→Appearanceに移動。
Skin→Fonts→Arial basedに設定。
International→Language→Japaneseに設定すると日本語表示になります。

raspbmcでも問題なく日本語化されました。

しばらく使って少し慣れてきたのか、動作のもたつき等はあまり気にならなくなってきました。
スタンドアロン環境でも利用できるように、SDカードの空きにコンテンツを詰め込んでおけば、旅先などでテレビに接続して使えるかもしれませんね。
posted by boochow at 19:36| Comment(0) | Raspberry Pi | このブログの読者になる | 更新情報をチェックする

raspbmcでXBMCを動かしてみた

Raspberry PiをXBMCというオープンソースのメディアセンターソフト専用機にするディストリビューション「raspbmc」を試してみました。

Raspbmc

以下は2012年9月1日現在の話です。

raspbianと同様、新しいSDカードを用意してWindows等でイメージを書き込みます。
イメージファイルは上記のリンクから、Downloadを選択して、
just want an image? Of course, you can get the latest installer image here.
というリンクからダウンロードできます。

Windows用インストーラもダウンロードできますが、ツールはなるべく統一したいので使いませんでした。


イメージファイルはgzipで圧縮されていますので、gzipに対応したアーカイバで解凍します。(Lhazとか)

で、前回と同様、イメージをSDに書き込みます。

イメージファイルは75MBと小さいのですぐ終わります。
これをRaspberry Piにセットして、ここからが長いです。

実はraspbmcはネットワークインストールになっていて、そのインストーラが75MBなのです。

DSC_5440.jpg

起動すると、こんな感じでダウンロードが始まります。

DSC_5441.jpg

ダウンロードが済んだら、こんどはインストールです。
コーヒーでも飲んでろということで、2〜30分かかります。

そのあとさらにカーネル、モジュール類、ライブラリ類などのインストールが続きます。
最後に最新のXBMCがダウンロードされて、ようやく完了です。

まあ、基本的に完了するまでほっておいてOKです。
で、すべて完了すると…

DSC_5449.jpg

こんな感じでXBMCが起動します。
OpenGLで書かれているらしく、なかなか見栄えがします。

DSC_5450.jpg

システム全体は700MBくらいのようです。
タイムゾーンなど最低限の設定はしたほうが良いですが、言語は日本語にすると表示されませんので要注意。
あと、音声出力はデフォルトでHDMIになっていますので、アナログ出力したい場合は

  Settings→System→Audio output

で設定が必要です。

DSC_5469.jpg

初期状態ではローカルのファイルを再生することができます。
また、Add sourceでNFSやWindowsファイル共有のディレクトリを指定すると、そこに置いてある音楽やビデオを再生できます。

YouTubeは見れないの? と思うわけですが、もちろん見られます。
DSC_5452.jpg

インターネット上のコンテンツを見るには、対応するAdd-onをインストールします。

Add-onの実態は、おそらくWebページを解析して動画のリンクを抽出するスクリプトではないかと思います。
うまく動作しない場合もありますし、コンテンツの一覧を表示させるまでに結構時間がかかる場合もあります。

DSC_5465.jpg

DSC_5464.jpg

DSC_5463.jpg


このraspbmcですが、GUIはかなり綺麗です。
ただ、CPUパワー的には足りていない感じで、ハングアップしたかと思うこともしばしば。
当たり前ですが完成品としてのメディアセンター端末を探しているなら、Apple TVとか買うほうが良いと思います。
まあ、最近のテレビにはメディアセンター機能はたいてい搭載されていますが…。

実用的な価値は別として、ネットでHD映像を受信して再生する端末なんてことを、2,000円のボードでhackして遊べるというのはなかなか楽しいですね。

テレビなどの製品に組み込まれているものと、本質的なところは大きく変わらないはずなので、勉強にもなると思います。
posted by boochow at 14:33| Comment(2) | Raspberry Pi | このブログの読者になる | 更新情報をチェックする
人気記事