前回、ポメラDM200でX68000を動かしたところ、大変な反響があった!
110回以上もリツイートされ、関心の高さが伺える。
TwitterからアクセスされるページはほぼX68000だけとなり、ここまでもアクセスページが集中するのはとても珍しい!(^^;
それだけ意外性があったのかな…と思う。
中でも「ポメラってカラー表示出来るんだ」って感想が多かった(^^;
やっぱソコですよねw
さて、今回は…前回のブログで不用意に立ててしまったフラグを回収する!(^^;
SHARPの電子辞書BrainでX68000を立ち上げてみた!
ほら、X68000と同じSHARPだから相性良さそうじゃん?(根拠なし)
まず先にお伝えしなくてはならないこと……それは…
実用的じゃありません!
単に動かしてみただけです!(^^;;
コマンドを起動させてから、画面が見られるまで1時間くらい掛かりますw
それを耐えられる人はアリかも…ですが、ネタ以上になりません(TT)
それを踏まえた上で、どうやって立ち上げたのかを説明してみたい。
特に興味ない人は、途中に挟まってる写真をチラチラ見るだけで良いと思う(^o^)
書いていきたい苦労話
そりゃあ苦労したので書いておきたいよ!(T-T)
備忘録にもなるので、覚えてるうちに書かなくちゃw
まず手元にある電子辞書は、SHARPのBrainで型番はPW-SH2。
2年ほど前にハ○ドオフのジャンク売り場にあったものを購入した。電源入らないみたいなシールが貼られていたが、しっかり充電したところ電源が入るようになった(^-^)
まずベースとなるOSとして、↑に公開されているLinuxをインストールした。
私はBrainで何か動かそうとする場合には必ず利用させてもらっている(^^)
↑過去のブログでも触れているので、ぜひご参照くだされ(^-^)
このLinux環境の上で、RetroArchとX68000を動かそうってのが今回の野望だw
間違っても私がイチからエミュレータを書いたわけではないです!(TT)
残念ながらこのブログ記事に私自身のクリエイティブは無い!! ← 泣
RetroArchをインストール
やってみたいことは、RetroArchの表示機能を利用して、X68000のエミュレータコア(px68k_libretro)を起動させてみたい、だ。
前回のブログにもちょろっと書いたが、X68000のエミュレーション自体はpx68k_libretro.soが担当している。そして表示や入力系はRetroArch本体が担当する…という流れだ。
PW-SH2はARM系CPUのシングルコア、メモリは128MBとなっている。この構成でX-Windowを起動し、その上でRetroArch、PX68kを起動しようってんだから、もう最初からCPUもメモリも目一杯になる事が予想される。
…きっと表示はされると思う。
でも速度はどうだろう?
これを覚悟した上で実験開始!
標準のBrain Linux環境にはRetroArchはインストールされていないので、なんとかして用意する必要がある。
面倒だったので、私はaptで持ってきてしまった……が、これがちょっと変だった。
おそらく、いろんな実験をしまくったあとの環境だったためか、正常にupdateができなくなってしまっていた(T-T)
仕方ないので、aptの管理ファイルを消してしまった!
sudo rm -rf /var/lib/apt/lists/*
こんな事をして良いのかどうかも不明だけど、てっとり早く初期化(^^;
その後、「sudo apt update」「sudo apt upgrage」で最新に出来た!
そして本命のRetroArchをインストールする。
sudo apt install retroarch libretro*
retroarchの本体がインストールされれば良いので、後ろのlibretro* はいらないかも?
なんとなくクセでインストールしてしまった(^^;;
libretroを動かす!
Brain Linuxは32bit版なので、同じ32bit Linuxのポメラのバイナリが使えないだろうか…(^^;
手を抜けるところはトコトン抜きたいお年頃だ!(^-^)
そう思って単純にバイナリをコピーしてみたが、どうもうまく動かない…。
shared libraryがうんぬんというエラーが出てしまう(T-T) ← ちゃんとエラー読め
仕方ないのでBrain自身でビルドしてみる事になった…が、ここでとてつもない心配が湧き上がる…。
ポメラ(メモリ512MB)ですらスワップ領域を使ってしまうようなビルドだぞ…。メモリ128MBしかないBrainでビルド出来るんだろうか……汗
過去にスワップファイルを128MBで作成してしまっていたが足りなくなる恐れがある。
でも面倒なので、まずはこのままビルドをしてみる。
ビルド開始から42分後に無慈悲なるエラーで停止(T-T)
fatal errorと出ているが、間違いなくメモリ不足だろう…。
スワップ領域をちまちま増やして実験するには1回のビルドに掛かる時間が長すぎる…。
そう思いつつも、ディスク容量の関係であまり大きなスワップ領域は取れない。
仕方ないので384MB(メインメモリの3倍)の大きさにして再チャレンジ。
約2時間弱の時間がかかったけど、無事にビルド完了!(T-T)
今の時代に2時間掛かるビルドってすごいぞ!(T^T)
起動までの長い道のり…
メモリが多くないところで、X-Windowに依存した表示を行うRetroArchを利用するので、さらにメモリは圧迫されるはずだ…。おそらくスワップファイルをONにした状態でなければ動かないだろうと予測。ということは、動作がめっちゃ遅くなるぞ…と覚悟する(T-T)
よし、起動してみよう。
retroarch -v -L ~/src/px68k-libretro/px68k_libretro.so
………リターンを押してから3分くらい待ったところでエラーで止まる!(^^;
3分って!3分って長い!!(TOT)
表示系やサウンドのエラーが出てて、しまった昨日のポメラDM200でした初期化をコピーしとけば良かったと後悔(T-T)
ディスク容量の関係でEmacsをインストールしていないため、viで編集。
私はどちらも普通に使えるので問題はないが、本体キーボードで操作するのは早々に諦めて、USBキーボードを接続してそちらで作業した(^^;;
再度起動 → またしても3分後にエラー。
BIOSファイルがないよーと(T-T)
あー!コピー忘れてる!!!
ネットワーク繋げてファイルをコピーして…という手順1つ1つにとても時間が掛かる。
何か別のことをしながら待ってないと精神的に厳しい!
再度起動してから待つこと3分20秒!
ようやくファイル選択画面が表示された!
これが表示されると「お、ようやく起動しそうな気がする」となってくる(^^)
が、ここでもトラブル発生!
なんとキー入力が出来ない。いやキー入力が出来ないというよりは、処理が掛かりすぎてキー入力出来るタイミングがほとんどないのだ(T-T) これは…この画面上で手作業にてファイル選択するのは不可能だ!
ここで選択(表示)されているファイルは、~/.config/retroarch/bios/keropi/configという設定ファイルに書いておくことでデフォルトの設定が出来るようだ。面倒だが、起動するディスクを変えるたびに設定ファイルを書き換える事にした。意外に面倒…(T-T)
↑この画面で根気よくリターンキーを押し続ける事30〜60秒、ようやく次の画面へ行く。この時点でもう相当疲れてる(T^T)
そして待つこと30分。
おーーーい!!!!
もうね、マジメにちゃぶ台ひっくり返したくなった(T-T)
どうやらconfigに書くファイル名の大文字小文字を間違ってしまったようだ。
これは…失敗するたびにダメージが半端ないです…。
ファイル名を修正して再度実行。そして……
スタートから1時間20分後、ようやくHuman68kが起動した!!!
いやいくらなんでも時間掛かりすぎでしょ?!(T-T)
これはCPUパワーの問題ではなく、完全にメモリ不足が原因だと思う。
実行中のプロセスがスワップアウトしちゃうんだろうな…
そうでないとこの速度は出ない。
ゲームの写真が撮りたいんだ!
実行にものすごい時間がかかるのは分かったけど、twitterに載せたりブログに載せるために、どうしてもゲームが起動してる画面がほしい…。
面倒だけどconfigファイルを変更し、もう一度挑むことにした!!
実行開始!
↑約15分後、ゲームのディスクから起動する画面が表示された!
↑起動から24分30秒後にロードを開始する画面が表示された!
おお、Brain上でX68000のカラー画面を初めて見たかも!
Brainの液晶は16bitカラーが表示出来るので、X68000のゲームであればそのまま表示できそうだ!
↑そして起動から待つこと1時間、ようやくゲームが開始された。
あれ?タイトル壊れてません?と思った方、そうなんです…このタイトル、ラスタースクロールしながら表示されていくんですよね…。
「よくそんなシャッターチャンスがありましたね!」とか思うなかれ。
画面上はほとんど静止画なんですよ…。
ちょっと前に流行ってたアハ体験じゃないですけど、肉眼で見てても差分がほぼわからない(TT)
↑そして実行開始から1時間26分後、やっとタイトル画面が完成した!!
タイトル表示するだけで26分も掛かったよ…。
画面が完成したのが嬉しくて、Twitterに「動きました!」って書いちゃったけど、本当は「表示されました!」って書いた方が良かったのかも?
でも過程まで説明出来ないから「静止画?」とか思われそうだったし…ぶつぶつ…(-_-;;
というわけで、動くのは動いたんだけど、とても実用的ではないし、ずーっと見てるにしても1時間単位の時間がかかってしまうというシロモノとなりました(T-T)
これは…動いたと言っていいんだろうか??(-_-)
おわりに
これ、libretro.soという構成になっているのでRetroArchに依存しているわけで、さらにその先にあるX-Windowにも依存してる。
libretro構成をやめてフレームバッファに直接書き込むようにしたら爆速になるのでは…?
…という変なフラグを立てつつ、今回はおしまい!(^^;;
いやさすがにやらないよ?
ビルドするごとに120分待つのヤダー!!(TOT)
ではまた次回!(^-^)ノ