Linux ZaurusでX68000!

この「○○でX68000」というネタでどこまで引っ張るんだろう…(-_-;;

読んでる方はとっくに飽きていると思うけれど、もう少しだけ書くよ!(^^)

ちなみに今回も結構な苦労をしているので、ネタはたくさんありそうだ(^^;;

 

Linux ZaurusX68000

前回、NetWalkerX68000を動かした後に「もっとパワーが無くて苦労しそうなマシンでX68000を動かしてみたい」という、ちょっぴり歪んだ考えが脳裏に浮かんだ!

だって簡単に動いちゃったらプログラマとして工夫するところがないじゃん!(^^)

 

まずは動かす。

その上で、さらに何か工夫が出来ないかを考えるプロセスがとても楽しい。

プログラムを組む上での楽しさってそこなのかなーと最近思う(商業除く)。

 

Linux ZaurusX68000を動かす場合、いくつかの心配がある。

 

まず1つめは本体RAMの64MBというサイズ。

px68kを動かすのは、X-Windowを使わなければおそらく大丈夫であろうと予測。

問題はビルドだ!こちらはマジで困る…。

だって512MBあるポメラDM200でもメモリオーバーになるプログラムですぞ?

いったい何メガのswapを用意したら良いのやら…。

そもそも一晩とかでビルド終わるの??(T-T)

 

これはもう別の環境を用意して解決しようと思った。

おそらく32bit Linuxの環境であればある程度の互換性はありそうだけど、Linuxのバージョンなど解決しなければならない問題が多すぎる。うーん…

 

2つめが、フレームバッファの直アクセスできるんだっけ?

以前使ってた時に試した覚えがない。

これが出来ないと実行速度が出ないかもなー。わかんないけど!

これは本体が起動したら試してみる必要がありそう。

 

3つめが、Zaurusへのファイル転送方法は??

SDカード経由で頑張るか、ネットワーク経由で行うか。

確かCFの10BASEカードを持っていた気がする…

 

今の段階では謎が多いけど、だからといって諦めたらもったいない!

ダメであっても、ダメな理由をちゃんと検証してから諦めたい(^^)

 

Linux Zaurusを探せ!

当時、アホみたいにハマったのでLinux Zaurusは確か3台くらい持ってる。

私はとにかく引っ越しが多い人でして(not 夜逃げ)、そのたびに段ボールを開けるのが面倒になってしまい、そのまま山積みにしてしまっている。

 

以前、いくつかのダンボールを整理してる時にLinux Zaurusを見つけた記憶がある。その時に「あー、こんなところにあった。これじゃあ二度と見つけられないよな…。でももう使わないからいいか」と思い、戻してしまった事を強烈に覚えていた。

 

その状態から見つけないといけないハメに…orz

結局、探し当てるまでに5日間掛かった!

ミューゼオを見てくれてる読者なら分かると思うけど、私は細かい荷物が多い!

小さいものを探すには忍耐力が必要なのだ(^^;;

ちなみに書籍の大半はミューゼオに登録していない…orz

3000冊くらい持ってるので全登録は無理でしょ(T-T)

 

こんな感じにエアーキャップにくるまった状態で見つかったZaurus

SL-C860SL-C3000

この後、別の場所からSL-C760も発見された。

 

当時使っていた環境は?

当時はSL-C860を開発機として使っていたようだ。

ファイルスタンプを見る限り、使っていたのは2004年頃らしい。

記憶ではカスタムファームウェアみたいなものは利用せず、素のSHARP Linuxを使っていた…ような印象だったけど、起動してみたらpdaXromを入れていた!

普段、この手のカスタムファームウェアは入れない派なんだけど、この時はなぜかインストールしたらしい。目的はなんだったんだろ…?(-_-;;

 

覚えているのは、QUASI88(PC-8801エミュレータ)をZaurusで動くように改造してた。

速度が出なかったので、必死に高速化した覚えがあるけれども、結局速度は間に合わないままだった。今チャレンジすればもしかしたら??(^^;

 

あとは有り余る通勤時間を使ってEmacsLispを覚えようと頑張ってた時期があった!

ちゃんと覚えたとは言い難いけど、おかげでLispを見ても構えない程度には慣れた(^^)

 

入っていたLinuxカーネルのバージョンは2.4.18。

物理メモリは64MB、スワップが32MB用意された状態。

そしてディスクも今となってはそんなに空いてない。

ふむ。

入っているgccは3.3.2。

 

同時にネットワークカードも見つかったので有線LANを繋げた。

これでsshでログイン出来る!(^-^)/

 

早速動かしてみる

一通りの開発環境が入っていたので、何か動かしてみたい!(^^)

というわけで、移植が早そうなものをいくつか。

自分で作ったものなので移植も何もないんだけど、CP/M80エミュレータ

これはcursesライブラリに依存しているだけで、他は難しい部分がない。

ソースはPOSIX準拠の標準的な作りで、make一発ビルド終了!

速度もZ80の4MHz以上の速度が余裕で出る!(コマンドで速度を変えられる)

 

FM-7もソースをコピーしてきて、makeと打っただけで動いてしまった(^^;;

そっか、gccの若いバージョンでも問題なくビルド通るのかー(試した事なかった)

速度的には実機よりは速い感じ。

PSGの処理は入ってないのでそんなもんかな?

 

X68000に挑戦!

CP/M80とFM-7が動いたのに気を良くして、X68000にもチャレンジしてみる!

はい、そうですよねー、本体でビルドするにはメモリが足りません!

さあ、これは予想していたけれども解決は面倒だぞ…(-_-;;

 

Zaurusには512MBのSDカードしか入れてない。

Brainでpx68k_libretroをビルドした時は、384MBのスワップを用意した。

今回も同じ方法を取れなくはないけれども、メインメモリ64MBのZaurusでソレは現実的だろうか??(T0T)

 

いろいろと調べたところ、以下のようなものを見つけた!

これは……Dockerイメージを作るためのファイル群!!

上手に利用すればビルド環境を作れそうだ!(^^)

 

……と言いたいが、実は私、Docker使ったことない!(^^;;;

なんか便利そうな話は聞くんだけど、今までチャンスが無くて一度も触ったことがなかった。

せっかくなので使ってみるかー!

 

でも…見てみると、どうやらこれはIntel CPUで動くイメージらしい。

私はIntel CPUの入ったマシンをほとんど持ってない!

仕方ないのでGPD WinでDockerを使ってみたけれど、なんだかイマイチ??

途中から自分が何をしているのか分からなくなってしまった(T-T)

 

一旦リセット!←脳内リセット

ジタバタしてる時に、友人からM1 Mac+Rosetta2で動かす事が出来ると聞いた。

なるほど、それで出来たら開発環境がM1 Macの1台で完結する!

 

そして手元のM1 Macで動かす事に成功したので、その手順を書いてみる!

多分正解じゃないです!でもこれで動いてるので一応(^^;;

 

まずは上記GitHubから一式をダウンロードして展開。

仮に~/docker/zaurus-cross-compile-on-dockerというフォルダにしてみる。

 cd ~/docker/zaurus-cross-compile-on-docker

 

Dockerfileの先頭にあるFROM centos:6 の数字を7に変更した。

なぜか6だとうまく行かなかったが、試行錯誤してる中で変更してたので、もしかしたら6のままでも行けるのかも!?

 

 docker image build --platform linux/i386 -t zaurus:v1 .

これでカレントにあるDockerfileに基づいてイメージを作成する…のだと思う。

そしてplatformをi386に指定。これが正解かどうかも不明だけど…汗

 

イメージを実行してコンテナを作成?

言葉がわからん…。

 docker run --name zaurus -it zaurus:v1 /bin/bash

 

これで起動したbashが、zaurus環境でビルド出来るはず。

makeコマンドが入ってなかったので、これをインストール。

 docker exec -i -u root zaurus yum install make -y

 

そして、px68k関連のファイルを外からコピーする。

 docker cp px68k-fb zaurus:/tmp

 

良い感じの場所(~/srcなど)にコピーしてビルド開始!

 

ここからが……結構大変だった!!(T_T)

全部書けるわけじゃないけれども、大雑把にこんな感じの変更をした。

・ビルドオプションの変更

・関数の途中にある型宣言の修正
・WDマクロ(windraw.c)が展開できない問題を解決

・libretro_core_options.hに
 #define HAVE_NO_LANGEXTRA
 を追加

 

ビルドが通るようになるまでに、丸一晩掛かってしまった(^^;

途中で気が滅入ってふて寝したのはナイショだw

ちなみに、フルビルドで1分掛からないのはさすがM1 Macだ。

M1→Intelのバイナリ変換が動いているというのに!

 

Zaurusの/dev/fb0は深度16ビット、スクリーンサイズは640x480ドット。

これに合わせてフレームバッファ書き込みプログラムを調整。

 

出来上がったpx68kの実行バイナリをdockerから外へ、そしてZaurusへコピー。

この手順は面倒だけどずっと手作業で行っていた(^^;;

一発で起動画面が出た時は、本当に嬉しかった!(^^)

さっそくTwitterでご報告!

 

見て分かる通り、速度がだいぶ遅い。

これは画面サイズを目一杯大きくした影響が大きい。

せっかくなので大きな画面で見たいと思ったが、思いっきり遅くなってしまった…。

 

テキスト画面に関しては、768x512ドットと入り切らないが、無理にスケーリングして収めるよりも、はみ出た部分は表示しないようにした!

割り切り方!!(^^;;

 

いくつかのソフトを動かしてみたが、うーん遅い(^^;;

遅いけどちゃんと動いてる!

ZaurusX68000が動いてるよ!!(^-^)

これはこれで感動だ!!ヽ(=´▽`=)ノ

 

キーボードがちゃんと入らないなど、まだ気になるところがいくつか残っているので、もう少しだけ修正してみようと思う!

何か大きな変更があったらツイートします!(^^)

 

ではまた次回!(^-^)ノ

 

SHARP NetWalkerでX68000!

かつてSHARPから発売されていたNetWalkerというハードをご存知だろうか?

 

リアルタイムでLinux Zaurusを使っていた自分としては、ついに後継機種が出た!と色めきだった覚えがある!

しかし、お店で実際には触ってみるともっさり感がすごくて、これはちょっと……となった。

 

そんなNetWalkerを、ここ3年くらいで、動作品を手に入れる事が出来た!

今見ると、SHARPが発売している電子辞書とそっくりだ!(@_@)

 

そして……私の悪いクセだけど、手に入れてしまうと安心して使わない!!

ホントだめなんだけど、そういうマシンが何台もあるんですよね…汗

 

ここんところX68000エミュレータ(主にPX68K)をいろんなマシンで動かしてみてる流れで、テストできそうなマシンを探していた。あんまりパワフルじゃなくて、とは言っても非力でも無く…。最近ではなかなかそういうマシンが見当たらない(探し方がどうなのかw)

 

そんな流れで考えていたら「そういえばNetWalkerは?」と思い出した!(前置き長い)

 

NetWalkerのスペック

詳しいスペックは他のサイトに任せるとして、ここでは最低限な紹介だけしたい。

CPUはARMv7のシングルコア32bit。

動作クロック数は800MHzらしい。

メモリは512MBで標準ではスワップファイル無し。

画面サイズは1024x600ドットの16bitカラー。

2010年発売なので、当時の性能としては結構良い感じなのでは??

 

uname -aをした結果がコレ。

Linux griffon 2.6.28-15-araneo #50fsl1araneo19-Ubuntu PREEMPT Mon Jan 25 15:54:27 UTC 2010 armv7l GNU/Linux

Linuxのバージョンが2.6.28!

 

gcc -v した結果はこちら↓

gcc version 4.3.3 (Ubuntu 4.3.3-5ubuntu4)

 

…まぁ、この当時としてはそうだろう(^^;

 

最新のツールなど動かないものもあるだろうけれど、私が動かそうとしているのは、まさにこの頃のモノだったりもするので、きっとうまくいく…と信じる(^^)

 

実際に電源を入れて使ってみると、蓋を閉じるとサスペンドするなど(ホントは当たり前かも…だけど)、さすがメーカー標準のLinuxなだけあって安定している!

普段、他のマシン使ってても怖くてサスペンドとかしないからなー…汗

 

X68000エミュレータを動かす

さて、いろいろと思うところはあるけれども、手を動かしてみよう!

 

過去にも他の環境で動かしてみたことはあるけれども、やはりCPUパワーが弱いと散々たる結果に終わるケースが多かった。分かった上でやってるからいーんだけど!(^^)

 

RaspberryPi Zero WH(1GHz)でRetroArchのpx68kを動かした時は、速度も間に合わずサウンドにひどいノイズが入っていた。

 

 

シングルコア200MHzのSHARP Brain(電子辞書)でもX68000を動かしてみた事があったけど、こちらはこちらで「動くという喜び」を感じるのが精一杯だった(^^;

 

↑その3まであるので、ぜひ最後までご覧くださいませ!

 

これらから推測してみると、RapsberryPi Zeroよりも動作クロックの遅いNetWalkerでは、さらなる散々たる結果になるのかも…と予測!(^o^)

 

手元にある(勝手に)最適化したX68000エミュレータは、上記のSHARP Brainで動かした、RetroArch対応のpx68k_libretro改造版(説明が難しいぞ)。

 

これはRetroArch上で動かす対応がされていたpx68kを改造して使っていた。

具体的には、RetroArchへの依存を取り外し、X-Window対応も外した上で、フレームバッファに直描きするというモノ。

正直に言えば「動かして遊ぶモノ」ではなく「動かして見るモノ」だ(^^;;

例えデモンストレーションだけとなっても、手元でX68000が動くのは嬉しいものだ!

 

さて、それじゃあさっそくビルドしてみる!

やはりというか予想はしていたけれども、ビルドの途中でメモリ不足で止まってしまう問題が出た。どうしても68000コアのビルドにメモリを食ってしまうため、512MBでは足りないようだ。

ここはもうサクっとスワップを増やして再ビルドをしよう!

ファイルシステムの関係でSDカード側のスワップファイルを作った。

 

サウンドについて、pulseaudioがうまくインストール出来ない問題がでた。

無理やりな対応やプログラムを作り直す事も考えたが、一時しのぎになる可能性が高かったので、今回はサウンド対応を諦めるという対応にした!(^^;

 

px68kのフルビルドをしてみたが、12分28秒でビルドが終わってしまった…

あれ?思ったよりも速い気がする!

試しにポメラDM250(1.3GHz)でビルドしてみると9分53秒だった!

おおお、クロック通りの速度が出てるっぽい!

結構速いぞ、NetWalker!(^-^)

 

試しにpx68kを動かしてみた。

サウンドは鳴らないけれども、速度はそれっぽく見える……。

 

表示は縦横を2倍角にして描画している。

少しだけメモリ的な負担がある処理なのに、それなりの速度で動いてしまった!(@_@)

サウンドは鳴ってないけど、サウンドデータの生成処理までは行っていて最終的な出力がないだけで、処理自体は入っている。

 

これは衝撃的!!

まさかこんな速度で動くとは!?(^-^)

 

残念ながらジョイパッドなども繋がらないためゲームで遊ぶ事は出来ないが、これはもう動いた事が嬉しいで終わらせようと思う(対応が大変そうなので!)

 

他にもいくつか動かしてみたよ!

まずは拙作CP/M80。

cursesライブラリが入ってなかったのでこれをapt-getでインストールした。

特に難しい入出力の対応はしていないので、キー入力も全く問題なし。

もちろん動作速度は十分なほど高速だ(といっても4MHzに合わせてあるけど)。

むしろ快適と言えるCP/M環境が出来てしまった(^^)

 

 

拙作FM-7エミュレータも動かしてみた!

これは直接フレームバッファに描き込んじゃうタイプのプログラムなんだけど、もはや実機よりも速すぎて慌ただしくデモが動く!(^^)

実機よりも倍以上(もっと?)速いかも。

 

他にもPC-1350やPC-8801も動かしてみようかと思ったけれど、NetWalker無線LANが不安定で面倒になってしまった!(T-T)

 

おわりに

使ってみてももっさりしていたNetWalkerで、まさかこんな結果が出るとは思ってなかった!

SDカードから起動するLinuxではなくて、内臓のeMMC?SSD?から起動タイプなので、基本的な読み書きが速いのかも知れないが、consoleベースで遅いと感じる事は無かった。

 

Linuxカーネルバージョンが古いことや、もはや怖くてapt-get upgradeが出来ないなどの個別な事情があるが、それでも主要なコマンドやツールは問題なく動くので、一般ユーザーが遊ぶ分には楽しめそうだ!

 

ちょっと非力なマシンでビルドして動かして楽しむといった、ちょっと変わった指向の時には今後もNetWalkerが活躍しそうだ!(^-^)

 

ではまた次回!(^-^)ノ

ポメラLinuxが速くなったぞ!

ポメラDM250が1.3GHz動作になった!

これまで速度的に難があって動かしづらかったものが改善された!

せっかくなのでレポートしてみたい(^-^)

 

アップデートされたカーネル

@ichinomoto氏がCPUの動作速度を1.3GHzまで上げられるカーネルを公開してくださった。

www.ekesete.net

ページ中央くらいにあるkernel/initramfsインストーラの項目に、kernel update:として最新のカーネルが置かれている。

注意書きに書かれている通り、どうしても必要で無い限りはアップデートの必要はないと思う(私が書いちゃうけどw

 

2022.09.25現在は私が問題を起こしてしまって公開中止になっているけれど、諸々確認が終わった時点で公開されると思うので、少しお待ちを!(お前のせいか?そうです!(T-T)

 

私はエミュレータを動かしては速度が足りん〜って嘆いていたので、迷わずアップデートしてみた!

というか、ヘタすると私が嘆きまくるので対応してくれた感も無きにしもあらず(^^;

 

インストール自体はとても簡単♪

こういう間違いが起こりにくいスクリプトを用意してくれるのは本当に助かる。

 

CPU max MHzが1320、つまり1.32GHz動作と表示された!

これはすごいね!嬉しいね!!(^-^)

本当に速くなったのか試してみよう♪

 

13000行弱のC言語ソースをビルドする時間を試してみると、以下の感じ!

シングルコア

  25.980秒 → 20.113秒

4コア

  11.284秒 → 09.009秒

おお、30%くらい上がってる!!

クロック数分だけ上がってるのが凄い!(^^)

 

X-Windowの速度も試してみた。

GPUアクセラレーションを有効活用しているマシンだと、CPUパワーが上がったとしてもストレートに描画速度が上がったりしない。

だけど…ポメラの場合は超ストレートに描画速度が上がった!(^^;;

 

標準カーネルだと14フォントが200,000前後、24フォントが85,000くらいだったが、

高速カーネルだとそれぞれ308,000、120,000と上がっている!

 

私の環境はX-Windowの描画ドライバに、フレームバッファを直アクセスするfbturboを使用しているが、ちょっとばかり手直ししている。

でも頑張ったワリには2%程度の速度改善しかしなかった。

うーん、やはり今以上の大幅改善は難しい…(T-T)

 

いろいろ動かしてみる!

X68000(px68k_libretro)

X68000……これは最初のカーネルでは、RetroArch上では動かしても速度が足りなかった。

仕方ないのでpx68k_libretroのプログラムを改造して、RetroArchの外で動くようにしてフレームバッファ直描きするなどして、ようやく動かしていたのだけれども……

 

1.3GHzカーネルだとRetroArch上で動いてしまった!!(T_T)

私の努力が無に帰した瞬間!(^^;;

そうだよね…CPUが1.5倍速になったら、そりゃ処理も間に合うよね。

素直に喜ぶよ、うん(^-^)

 

DOOM(Chocolate Doom)

これはChocolate Doomと言われるソフトで、いわゆるDOOM

それがポメラで動いてしまうのが嬉しい(^^)

 

昔、描画アルゴリズムを調査するために散々っぱら遊 ^H 研究した覚えがある!(^^)

今思えば、良く3D酔いしなかったな…とさえ思うw

 

ノーマルカーネルではウィンドウサイズを小さくしないとサウンドが途切れるなどしていた。サウンドバッファを大きくしようとしたがうまく行かず…(T-T)

SDL内部で使用するvideo driverが選択可能になっていたが何故か効果がない。

SDLのソースからビルドまでしてみたがやっぱりうまく切り替わらなかった。

これはもう完璧なる敗北を味わうハメに…(^^;;;

 

これが…1.3GHzカーネルだとフルスクリーンにしても問題なく動く!凄い!

必死に頑張った努力はなんだったんだろう感その2!(^-^;

 

PC-8801MA(XM8)

今回イチバンうおー!ってなったのがコレ。

フルスクリーンモードでPC-8801MA(XM8)が動くようになった!(^-^)

 

ノーマルカーネルでの奮闘記は↓のブログを参照してほしい(^^)

 

ソースコードを追いかけ、原因を調査し…とそれなりに頑張ったけれど、それでもウィンドウモードで動かすのがやっとだった。しかもたまにノイズが乗る状態(TT)

 

今回の1.3GHzカーネルでフルスクリーンでの動作が出来るようになった。

同時にサウンドバッファのサイズを増やしてサウンドが問題なく鳴るように!

表示系を少しだけ改造(ドットデータ→カラー番号への変換処理を効率化)したので、その効果も少しあったのかも知れないが、全く問題なく動くようになったよ!(^^)

 

これも前回までの努力は……だけど素直に嬉しい!(^-^)/

 

MSX(openMSX)

MSX(openMSX)は1.3GHz動作になっても、画面を倍サイズにするとサウンドがノイズだらけになってしまう(T-T)

サウンドバッファを増やす?とかコマンドライン上での工夫?が必要かも知れないけど、もう少し何かが必要そう。

こちらはFBへの書き込みが速くなったら解決するかも?

 

でも…PC-8801X68000では処理が間に合ってるのに不思議だ…(^^;;

 

焦った現象!

1.3GHzカーネルでX-Windowを動かしたまま放置していたら、いきなり電源が落ちた!

その瞬間を目にしたのだけれども、あ…マズそうな落ち方したぞ…と思う感覚があった!

その後、電源が入らなくなり…だいーぶ焦ったよ!

電源長押ししても復旧出来なかったのだ(TT)

 

カーネル作者へ連絡を入れつつ、ポメラ本体を分解しつつバッテリーを外し…とかやってみたけどラチがあかない。

でも……結果的に分かった事は、単純にバッテリー切れだった模様!(T^T)

 

私は本体付属の充電器は使っていなくて、USBハブ経由で充電をしている。

そのせいなのか、1.3GHz動作中は充電が追いついてない可能性があるね…。

この先、注意深くモニタしていきます!

#本件、お騒がせして本当に申し訳なかったです…本当にすみません!!

 

ではまた次回!(^-^)ノ

LinuxコンソールでPC-9801フォント

今回は備忘録程度の内容です!(^^)

 

ポメラDM250のコンソール(console)をPC-9801のフォントにしてみた!

特にポメラの機能に特化したものではないので、他のLinuxでも使えると思う。

RaspberryPiなどでも出来ると思うので、ぜひ試してみて欲しい。

 

こんなお遊び、とっくに誰かがやってるだろうと思ったけれど、ネットで探しても断片的にしか情報が引っかからなかったので、じゃあ…という事で書いてみる!(^^)

 

 過去に↑こちらでもやっているので、合わせて読んでみてほしい(^-^)

 

consoleにPC-9801フォント

Linuxをインストールしてグラフィカルログインを利用している人は、おそらく電源を投入後の「login: 」という画面を見たことがないかも知れない。

グラフィカルログインをしている人でも、CTRL+ALT+F2とか押すと画面が出るハズ。

ここに表示されるフォントを、PC-9801用のROMフォントに交換する。

 

ただし、フォントデータはPC-9801本体から抜き出す必要があるのと、フォントの変換ツールは自前で作る必要がある。

簡単なバイナリ変換で作れるので、各自挑戦してみてほしい(^^)

 

Linuxのコンソールで使えるフォントのフォーマットは↓以下の資料が役立つ。

Font-formats recognized by the Linux kbd package: PSF fonts

 

フォントファイルを圧縮した後、/usr/share/consolefonts へコピー。

そして設定ファイルは /etc/default/console-setup にある。

 

これで再起動すれば、起動時のフォントがPC-9801になる!(^-^)

fdcloneを立ち上げれば、懐かしい感じがしてくる(^-^)

ちなみにこれで画面サイズは128x37キャラクタで、PC-9801よりは2周りほど広い画面が使える!当時の30行計画が懐かしい!

 

fbtermでPC-9801フォント

もうひとつがこちら。

標準のLinuxコンソールでは日本語表示(漢字やひらがなカタカナ)が使えない。

使おうとしても↓こんな感じに画面が化けてしまう。

X-Windowを起動すれば漢字を含めたファイルも簡単に見ることは出来るけれども、外出先でマウスがない等のシチュエーションも考えると、コンソールで漢字表示が出来ると便利だ。

 

そんな時はfbtermというコマンドを使う(^^)

fb(FrameBuffer)を用いたターミナルエミュレータと覚えるとコマンド名を忘れないw

 

Debian Linux on ポメラの場合は、最初からインストールされているので、何も考えずにfbterm[enter]とすれば起動する。

私はDM200でLinuxを使用していた時に、ずーっとこのフォントを見ながらFM-7エミュレータなどを開発していた。

自分にとってはとても見慣れたフォントだ(^^)

 

しかしログイン時のコンソールをPC-9801フォントにしたので、できればこっちのフォントもPC-9801に統一してみたい。

 

まずfbtermで使用するフォントを用意する。

fbtermでは、先程のコンソールで表示するファイル(psf)ではなく、X-Windowなどで利用するフォントファイル(拡張子:ttf)を使用する。

ttfファイルのフォーマットを調べないとなー…と思っていたら、便利なツールを公開してくれてるページがあった!

hikaen2.hatenablog.com

このページ↑を参考にしながら、TrueTypeフォントファイルを作成した。

書いてある通りに(DM250上で)やってみたら、エラーも出る事なく変換できた!

 

出来上がったttfファイルを、ローカルのフォントフォルダにコピーする。

  mkdir ~/.local/share/fonts

  cp pc-9800.ttf ~/.local/share/fonts

 

~/.fbtermrc にある font-names と font-size を以下のように変更。

  font-names=PC\-9800,Ricty Diminished

  font-size=16

 

これでfbtermを起動すると、PC-9801フォントで表示されるようになる。

フォントが切り替わらない時は、一旦rebootしてみよう。

 

失敗談……

font-namesにPC-9800と書いていたらフォントが切り替わらなかった。

なんでだろ…と散々調べてみても理由が分からず。

フォントファイルの中身まで調べたよ!(T^T)

 

なにげに fc-list | grep 9800 としてみたところ、PCの後ろに\(バックスラッシュ)がついてる事を発見!なぜついてるのか分からなかったが、真似してfont-namesに書いてみたところ、無事にフォントが切り替わった!

 

おわりに

PC-9801ファンでもない限り、情報としての価値は薄いのかも知れないw

でもフォントの切り替え情報としては残して良いのかも…と思ったので書いてみた!

 

ではまた次回!(^-^)ノ

祝!200,000PV達成!

今日でこのブログのアクセス数が20万アクセス越えました!(^o^)

こんな一般的じゃないブログ(自覚してるw)を見ていただいてありがとうございます!

見てくださる方々に感謝をしてもしたりません!(^^)

 

10万アクセス達成が2022/03/07、ブログ開設から1年10ヶ月(つまり20ヶ月)掛かっていたのに、次の10万は194日(約6.5ヶ月)で達成できた!

ブログ書き始めてから2年4ヶ月が過ぎてるのにも驚いた。

そんな続けられる人だっけ、私?(@_@;

 

棒グラフの前半にある小さい(ほとんど見えないような)黄色い棒が、それまでの平均アクセスで、1日で200〜400アクセスくらい。

 

それが9月に入ってポメラ触るようになったらドーンとアクセスが増えた!

最大で6126アクセス、その後も1000を超えるアクセスが続いている(一旦落ちたけど)。

これは…ポメラが人気?それともポメラをきっかけにレトロを見つけてくれた??

 

アクセス元(写真左側)を見ると、Googleからの検索が圧倒的に多い。

Googleでレトロ系を検索すると、このブログが検索結果に出るって事が多いんですかね?

だとしたら、たくさん書いてきた甲斐があったかも!

ちなみに304記事書いていた。これは多いんだろうか?

 

そしてアクセス先(写真右側)は多種多様になっている。おそらく新規でこのブログを見つけてくれた方々が全体を読んでくれているんだろう(^^)

 

せっかくなので、この10万アクセス中に書いていたマシンの振り返りを少々。

 

ポメラDM250

ここ半月くらいの間、MAXお気に入りのポメラDM250。

元々DM200を使いまくっていたこともあって、DM250にも無償の愛を注いでいる!

中身はDM200とあんまり変わってない&電源周りの扱いに慣れずテンション下がってたけど、やっぱり動くようになったら触ってみたくなるわけで(^^)

 

今までLinux使っていてもサウンドを扱ったことがなかった。

Linuxサウンドなんて1993年くらいに初めてLinux使った頃、サウンドブラスターで鳴らそうと頑張った以来だw

今回、サウンドアダプタを手に入れた事で、サウンドにも力を入れてみた!

 

そしてサウンドが鳴るようになったら、エミュレータを動かしたくなるじゃん!

少ない知識でどうやったらちゃんと動くようになるかなーと試しまくった結果、X68000PC-8801MSXなどなどを動かせた。

 

今も表示速度を改善できないかと、あれこれソースを触っている途中。

videoドライバをハードウェアアクセラレーションを入れない状態でどこまで高速化出来るのかなぁ…とか試してるw

昔からそうだけど、動くかどうかなんて考える前にコード書いてるかもww

もう少しだけポメラ使うよ!(^^)

 

PX-15C / PX-16C

 常に手元に置いてあって毎日使ってるPXシリーズ(^^)

PX-16Cはプログラムする時に必要な16進数計算で使ってる。アドレス計算とか10進数電卓でやるのはキツすぎる(^^;

PX-15Cは普段は別の場所においてあって、生活の中で使ってる(^^)

 

でも本来のPX-1nCの使い方であるプログラムをまともに触ったことがない…orz

この先、少し勉強してもう少し深く使っていきたいと思ってるよ、マジで!(^^;;

せっかくだからねー(^^)

 

各種ゲーム機

復活させているゲーム機のその後ですが、すごーく使うという感じではない(^^;

他のゲーム機でエミュレーションできてるマシンは特にそうかも。

実は修理しようと何台か本体を手に入れてしまってるので、いつか取り組まなくちゃ!

 

GPi CASEはRaspberryPi Zero2に入れ替えたら、それまで動きにくかったエミュレータが十分に動くようになって、とても良いよ!

特にX68000がストレス無く動くようになった(^^)

 

でもGPi CASE + RaspberryPi Zero2を手に入れる事を考えると、値段的にMiyoo miniに手が届いてしまうので、おすすめするかといえば微妙だ(^^;;

 

RaspberryPi Pico

去年の暮れからドハマリしてるRaspberryPi Pico!

このマシンは本当に面白い!(^^)

パワフルではないCPU、潤沢とは言いにくいメインメモリ、そこに不釣り合い?と思えるような巨大な液晶をつけて、どこまで出来るのか…をやってみるのが楽しすぎるw

 

今でも書籍を買っちゃうほどやり残した感が強いので、きっとまたやるよ!(^^)

ただ今はコレといったネタがないので、むしろネタ募集中w

PC-8801とかX68000はメモリ不足で無理なんよね…(T-T)

 

Miyoo mini

ブログのネタとしてはあんまり出てきていないMiyoo miniだけど、便利なので使いまくってる!手に入れたゲーム機では一番使用頻度が高いかも??

私としては珍しくゲームで遊ぶ機会の多いマシン。

プログラムを作って動かすのも興味は尽きないので、これからも使いそう。

ArmLinux 32bit環境であればプログラム開発出来るので、別にMiyoo mini本体じゃなくても開発するには困らないよ!

むしろ32bitの環境を探す方が大変だけど。

 

あとはUSBからの入力が一切出来ないので、そこだけが残念なんですよね…orz

ここがネックでアイディアが出てこないってのもある(^^;;

 

reTerminal

今となっては、実はポメラ級に楽しいマシンなのでは??と思ってるreTerminal。

キーボードもマウスも無いけれども、USBハブで繋げればちゃんと認識するし、今思えばサウンドアダプタ繋げたら音も出る気がしている。

 

中身はRaspberryPi CM4なので、CPUパワー的にもメモリ的にも余裕ありまくり。

これで動かない(レトロPCの)エミュレータは滅多にないだろう(^^)

 

これはもう一度使ってみたいなー!使うよ!(^^)

 

これからも

この先も誰も見向きもしないようなマシンでプログラミングを楽しんでいきたい!

そういえばハードの修理とかは最近やってないけれど、必要があればちょこっとだけするよ。

今後も当ブログをお楽しみください(^^)

 

ではまた次回!(^^)ノ

 

ポメラで動かしてるRetroArchについて

今回は、ポメラDM250にインストールしたRetroArchのお話(^^)

こういうのって最初に試すんじゃないの?って思われそうだけど、私もそう思うw

でもゲームで遊ぶ習慣がない私は、ちょいとばかり後回しにしてしまった(^^;;

どちらかといえばエミュレータとしての興味しか無いので、起動させて終わりだけど!

一応、動きましたよ…という感じのご報告になってしまうのは申し訳ないです!!

 

ゲームカセットからのデータ吸い出し

まず、何はともあれ…ゲームのデータどうするの問題がつきまとう。

コンシューマゲーム機のエミュレータを動かそうとすると、どうしたって避けて通れない話がコレだ。

私は↑こういう機械を手に入れてデータの吸い出しを行っている。

PCに繋げなくても、これ単体でデータを読み出せるのでとても便利!

データはSDカードに保存されるので、時間がある時に一気に読み出しておいて、あとでゆっくりとPCへ移すようにしている(^-^)

おかげで最近はゲームカセットの発掘に余念がないw

 

↑今見るとほとんどがSOLD OUTになっているようだけど、チャンスを見てぜひ手に入れてもらいたい。

というか、これ無くしてコンシューマゲーム機のエミュレータはないと思う!(^^)

私はワンダースワンネオジオポケットのコネクタを手に入れる事ができて無くて、いまだに読み出しに至ってない…orz

 

ゲームボーイ(gambattle)

まずは比較的処理が軽そうなゲームボーイのエミュレーションから!(^^)

私はいつもssh経由でログインした端末からコマンドライン上で起動させている。

 export DISPLAY=:0

 cd /usr/lib/arm-linux-gnueabihf/libretro

 retroarch -L gambatte_libretro.so カセットファイル

 

X-Windowのメニューからゲーム→RetroArchを選んで起動すると、なぜかCPUパワーをどどーんと消費してしまうため、私的にはコマンドラインがお気に入りだ(^^)

コマンド打つのはちょっとー……っていう人も、せっかくなので慣れてみよう♪

 

そういえば、RetroArchは後からインストールした。

素のDebian Linux on pomeraには入っていないので、適宜apt installしてもらえたら…と思う!(投げやり

 

まだジョイパッドの設定をしていないので、ゲームを遊ぶのはキーボードからの操作となってしまった!(@_@;;

動きを見る限り、速度も反応も問題なしって感じだった。

これで表示2倍サイズ。

試しに3倍サイズで表示してみたらサウンドにノイズが乗ってしまった。

 

ファミコン(nestopia)

私はファミコンで遊んだことがほぼ無い。

いや……めっちゃ世代なんですよ?

世代なんだけど、まともにコントローラすら触ったことがなかったw

そんなわけで持ってるカセットも少ない上に偏っている。

多分、全部もらいものw

この程度しかないので、ゲームのレポートは出来る自信がないww

 

実際の画面ドット数×2の表示サイズにすると見た目が良い感じ!

でもこれだとたまーにサウンドにノイズが乗る事がある。

気にしなければ良いレベルかも知れないが……

試しに等倍角(つまり拡大なしのドット)で表示させてみた。

pomera」の文字を映したくて縦長になってしまったのは仕方がない!(^^)

このサイズならば問題なくゲームもできそうだ!

ただしROGANには厳しいサイズになってるのは否めない(T-T)

文字を読む系は厳しいかも知れない。でもアクションはもっと厳しいw

カーソルで移動、XZボタンがABボタンに割り当てられているようだ。

 

スーパーファミコン(bsnes_mercury_performance)

うーん、まぁ無茶かな?(^^;;
処理も間に合ってないしサウンドはノイズにしか聞こえないw

こちらも画面サイズを小さくしてみてが、あんまり変わらず。

libretroに入っているエミュレータは3つファイルがあって、accuracy(精度) / balanced(両立) / performance(性能)というファイル名がついている。

今回使ってるのはperformance、つまり速度優先だ。

 

↑これはファイナルファンタジーを実行している時の様子。

全体的なパワーはまだ余ってるのが見える。

 

Cpu2の負荷が高いのは、おそらくこのコアでCPUのエミュレーションを行っているから…かも知れない。ここはスレッド化出来ない部分なので、単体のCPUパワーがないマシンだとボトルネックになりがち。

 

将来的にポメラの動作クロックが定格(1.3GHz?)まで上がるような事があれば、ある程度は改善するかも知れないカモ?(^^)

 

その他

libretroフォルダを見ると、

  PCエンジン

  ワンダースワン

  プレイステーション

…などのエミュレータが入ってるようだ。

残念ながら私自身はゲームデータの吸い出し装置を持ち合わせていないので、動かす事が出来ない(T-T)

 

どなたか、機材をお持ちの方はぜひ試してもらいたいと思う(^^)

ポメラで動くPCエンジンとかサイコーな気がする!(^^)

CD-ROM2とか動くのかな……(^O^)

 

ではまた次回!(^-^)ノ

ポメラで動かしてるMSXについて

ポメラDM250で動かすエミュレータ、第3弾!(^-^)

今回はMSXを動かしてみたのでレポートしてみたい。

 

 

今回は2つのMSXエミュレータを試してみた。

  fMSX

  openMSX

どちらもとても有名なエミュレータなので、今さら説明は必要ないだろう…と思う(^^;

気になったら検索してみてくれ!(ブログの意味…

 

fMSX

私は比較的早い時期からfMSXに触れていた。多分、1994年くらい?

当時、68030CPUのワークステーションで動かしたのが最初だったと思うが、もしかしたらMIPSワークステーションだったかも…?記憶が曖昧だけど、そのくらいの時期だ。

 

その頃からエミュレータに興味があって作ってた私にとっては、ソースが公開されて目の前で動くというのは重要な資料だった(^^)

 

同じ会社のハード屋さんが、MSXのカートリッジからデータを読み出す機器を作ってくれたので、手元にあったザナック(コンパイル)を読み出して遊んだ記憶がある。

よくこのマシンでちゃんと動くなーって感心した(^^)

 

そしてそのfMSXは今でも動かすことが出来る。

 

画面上の方にある「Download」のページへ行き、

 fMSX 6.0 source code and related files (core + Unix/X port) 

からソースコードをダウンロードする。

 

適当な場所(ここで~/src以下)に展開をしてビルド。

 cd ~/src/fMSX60/fMSX/Unix

 make clean

 make

環境によってはライブラリが足りない場合があるので、適宜apt installして欲しい。

 

fMSXを起動する際にはBASICのROMファイルなどが必要となる。

手持ちのMSXから、なんらかの方法でポメラへ持ってくるべし。

 

↑起動するとこんな感じ。懐かしい画面だ!

この状態でBASICもちゃんと動く(^^)

 

せっかくなのでゲームカートリッジを動かしてみよう!

 ./fmsx カートリッジファイル

これでカートリッジ1にカートリッジファイルが入った状態で起動する。

……画面はちゃんとしてるんだけど、USBに繋がったサウンドアダプタから出力されている音楽がひどい(T-T)

ノイズというよりも……ゲームによってはちゃんとしたデータが反映されていないんじゃないかと思うような動作をする。

これはなんだ???

 

試しにウィンドウサイズを小さくしてみる。

 ./fmsx -scale 1 カートリッジファイル

 

あれ?これでもサウンドがダメだ…。

うーん…これは現象の説明がつかないな…。

とりあえずfMSXは保留!!(T-T)

 

openMSX

fMSXであれーっとなったので、今度はopenMSXに挑戦してみる事に。

openMSXにちょっとだけ躊躇していたのは、過去にDevTermで動かした際、ビルドにめちゃくちゃ掛かった記憶があるのだ。

ブログ↓を探してみたところ、ビルドに3時間掛かってる!

 これをポメラでビルドしたら、果たして何時間掛かっちゃうんだろうか…。

 

 

上のページの左側にあるDownloadから18.0 / Source codeをクリックしてソースを得る。

これを展開したのちに、そのフォルダへ移動して

 ./configure

とすれば、必要なライブラリのチェックが行われる。

ここでnoとなってるものをapt installしまくる(^^)

私の環境ではtcl-devが入ってなかった。

…Tcl/Tkって久しぶりに聞いた…(^^;;

 ビルドに230分……orz

…カンベンしてください(T-T)

 

これは何度かビルド失敗した続きで測ってるので、実際には300分くらい掛かってるかも知れない。

もう一度やり直す気力がないので正確な時間はご勘弁(T^T)

 

ビルドが通ったら、おもむろにインストール。

 sudo make install

※インストールする場所によってはsudoはいらないかも知れない。

 

さっそく起動してみよう!

sshからログインしている端末から起動する場合は、環境変数DISPLAYの設定をお忘れなく。

 export DISPLAY=:0

ポメラ本体でX-Windowを起動していれば、そちら側の画面に出る。

 openmsx カートリッジファイル

とすれば、カートリッジ1にROMファイルを挿した状態で起動する。

 

 

マウスを繋げていれば、openMSXウィンドウの左上辺りにマウスを持っていくと小さくmenuと表示されるので、それをクリック。

ここで細かい設定が出来る。

表示画面を2倍にしていると、やはりサウンドがノイズだらけだ(T-T)

ポメラは画面描画系が強くない印象(ToT)

Video Settings... → Scale Factor: にマウスを合わせ、カーソルキーの左を押すと等倍角画面になる。

……小さいよね(T-T)

でもこのサイズだったらゲームによってはサウンドが途切れず鳴るようだ。

画面の高速化が進んだらきっと解決される問題だろうから、今は我慢する!(しようw

 

catapult(カタパルト)

この小さい画面のメニューであれこれ操作するのが面倒だなぁ…と思っていたら、便利なツールがあることが分かった。

catapult(カタパルト)というツールで、外部からオプションを設定出来るらしい。

これは試してみたい!(沼開始w

 

ここから先はオプション…というか、無くても良いものなので、もしもインストールしてみようと思う方は、まず先に最後まで読んで欲しい。

結構な手間と時間が掛かる!(T-T)

 

先ほどopenMSXをダウンロードした同じページにある、

 Catapult

 18.0 / Source code ← ここ

からソースファイルをダウンロードする。

適当な場所で展開をし(ここでは~/src)、ビルド。

 cd ~/src/openmsx-catapult-18.0

 make

すると、openMSXでconfigureした時のように環境をチェックしてくれる。

私の環境では2つのライブラリが無いと出た。

そのうち、wxWidgetsというライブラリが問題(T-T)

apt install で持ってくることが出来ないようなのだ(方法があるのかも)。

仕方ないので、ソースからビルドする道を選ぶ!

 

www.wxwidgets.org

ここで表示される「Download now」をクリック、Source for Linux, macOS, etc をクリックしてソースファイルをダウンロードする。

 

www.kkaneko.jp

インストールはこちら↑のサイトを参考にさせていただいた!

無事にsample/minimalが動くことを確認!(^-^)

 

ようやくcatapultに戻って再度makeを始める。

 cd ~/src/openmsx-catapult-18.0

 make

 sudo make install

これまた数時間掛かるビルドになるので、他の作業しながらやった方がいいよ!(T-T)

 

ちなみにビルドをしている最中であってもポメラが熱くなるような事がない。

裏面を触っても温かいかな?こんなもんかな?って感じだ!(^^)

無音で、かつ健気にビルドを続けるポメラはなんとなく可愛いぞ!w

 

make installが終了したら、catapult とすれば実行できる。

ウチの環境では起動するとエラーが出てしまう。

でもこれはOKすれば先に進めるようだ(典型的なエラーを読まないヤツ)。

これはデフォルトのままで良いと思うが、openmsxの置いてある場所をセットする。

OKをするとマシンのチェック?が入るが、Cancelしても起動はするようだ。

あとはカートリッジに差し込むROMファイルを選択し、右下にあるStartをクリック。

openMSXが起動している状態になると、CatapultウィンドウのVideo Contorolsタブが触れるようになる。そこで設定を変更すれば、リアルタイムにopenMSXに反映される。

これで試しながらゲームをするのに最適な設定を調整すれば良さそうだ!

やっぱり画面は小さい方が安定して動くみたいだぞ!

 

おわりに

2つのエミュレータを試してみたけれど、どちらもちゃんと動かすには調整が必要。

MSXのゲームで遊ぼうぜーって人は、素直にWindowsマシンを使うのが良い(^^;;

 

ポメラエミュレータを動かして見るのが楽しいのであって、実用を求めてるわけじゃない。でも将来的にちゃんと実用的に動くようになるんだったら、それはそれで大歓迎だ!

そのために今日も頑張って動かしてみるよ!

 

ところで…MZ-2500でも動かしてみるかーって思って探してみたのだけれども、もしかしてLinuxで動くMZ-2500エミュレータって存在しなかったりします??

探し方が悪いのかも…汗

 

ではまた次回!(^-^)ノ