DevTerm A06でX68000を動かす!(改善編)

f:id:PocketGriffon:20220125200222j:plain

先日からRetroArchでレトロパソコンを動かす事にハマっている!

特にX68000は、私自身がエミュレータを使ったことが無かったので、目の前で動いているのを見て新鮮でニヤけてしまう(^-^)

これあったらエミュレータ作らなくてもいーんじゃね…?とか思い始めてもいる(^^;

 

私的な用途であればHuman68kが起動すれば良いけれども、ものは試しに…とゲームを試してみてしまったのが運の尽き!サウンドが変になるのが気になってしまった!

そこからなんとか改善できないかな?の長旅に出るハメに(^^;

 

こんな設定してみました

まずはいきなり結論から!(^^)

Main Memu→Setting→Driversにある項目をそれぞれ変更した。

Video → xvideo

Audio → alsathread

 

MainMenu→Setting→Video→Synchronination

Vartical Sync(VSync) → ON

 

MainMenu→Setting→Audio→Synchronization

Synchronization → ON

 

このくらいだろうか…他にもこまめにいじってしまった項目があるかも知れないが、大きな影響はないだろう…と思いたい。

 

オプションを変更したら Main Menu→Quit RetroArch で一旦落とし、再度立ち上げよう。

その前に注意がある!!!!!

私の手元で実際に起きているのだが、DriverのVideoをxvideoに変更すると、それ以降の(F1で起動する)メニューが見えなくなってしまう。

メニューを開く必要がある場合には以下のファイルを変更しよう。

~/.config/retroarch/retroarch.cfg

video_driver = "xvideo" → "gl"へ変更する

 

これで起動すればメニューは見えるようになる。

もうひとつ。

この解決策はDevTerm A06でしか有効でない可能性がある(T-T)

 

以下、こんな感じで詰めていきました…的なお話なので、興味無い方はここで終了です(^^)

 

現象を絞り込む

サウンドが変になっている件、まずは何が起きているのかを正しく把握する必要がある。

しかしRetroArch自体のソースを見てるわけではない&こんなおっきそうなプログラムの構造なんてすぐに理解できない、ということで、想像の域は脱していないことをお断りしておく!おくったらおく!(^^)

 

まずサウンドがどのように鳴っているのか…を書き始めると、すんごく大変!

ここではざっくり書くと、システムが音を鳴らすためのバッファを用意しているので、そこにシステムが必要というタイミングまでにデータを用意する…ということを繰り返す。

データを細切れにして、その都度必要なデータを作りながら渡していく。

 

サウンド自体は厳密なタイミングで鳴らされるので、それまでにデータが間に合わなければ、最悪は間違ったデータがそのまま鳴ってしまう…これが多くの場合ノイズとなって聞こえる。

つまり今回の不具合は、サウンドのデータ生成に間に合っていないんだろうな…と想像した。

 

CPU負荷を調べてみる

ただ……十分なほど高速なCPUで実行しているのになぜ…と疑問が湧く。

そこで手元にあるX68000 on RetroArchを試してみる事にした。

f:id:PocketGriffon:20220125204409j:plain

↑これが一番ちゃんと動いているRG351MPの動作状況。

本体でX68000を動かしながら、sshでログインしてtopコマンドで数値を見てる。

%Cpu0〜3を見ると、1つのコアだけに負荷が掛かっている状況で、全体的に見たら20%程度しか処理負荷が掛かっていない。CPU的には余裕のよっちゃんだ!

 

f:id:PocketGriffon:20220125204654j:plain

↑これがRG552で動かした時の状況。サウンドがノイジーになっている。

topコマンドが簡易的なものに置き換わってしまっているため、残念ながらCPUごとの負荷を見る事ができない。でもシステム全体では8%の負荷しか掛かって無く、RG351MPよりもさらに余裕の状態。

 

f:id:PocketGriffon:20220125210730j:plain

↑そして今回のメイン、DevTermでの動作状況。おもしろい事にCPUが平均に使用されている。もっともこれはゲームをメインとしたRGシリーズとは違い、汎用マシンとして動いているDevTermの宿命かもしれない。

動いてるタスク数がDevTermが239、RG552が193、RG351MPでは138だ。

 

うーん…この結果を見る限り、CPUパワーは有り余ってると言えるだろう。

サウンドの処理が追いつかなくなるほど逼迫した状況ではなさそうだ…。

 

ソースを大雑把に読んでみる

私は他の方が開発されたエミュレータのソースは、極力見ないようにしている。自分で作りたいというのが一番大きな理由なのだが、やはり何かを見てしまうと似てしまう可能性もある。

そんな事情により、過去にfMSXのソースの一部を見た以降は見ないようにしていた。

 

今回ばかりはそうもいかないので、最悪は開発中のMC68000エミュレータの開発を中止してもかまわんか…と思い、ソースを見ることに。

 

主要な部分のみを見てみた感じでは、表示1ラインごとにCPU駆動やペリフェラル、そしてサウンドの処理なども行っている。ラスタスクロールなどの水平同期の処理をきちんとしようとすると、こういう構造になる。

 

そして注目したのがサウンドデータ。このタイミングでデータの生成していたら、上に書いた「データの準備が間に合わない」という事はおこらないはずだ…。だってCPUパワーは有り余ってる。

でも実際にはサウンドのテンポがズレたりノイズが乗ったりする。

これらを総合して考えると、原因が別のところにありそうだ。

 

RetroArchの構造

全然理解していない私が構造を詳しく説明するなんぞおこがましくて出来ないが、頭の中に整理したことをつらつらと書いてみる。

 

まず私はRetroArchに対応したPX68kの、元となったソースをインストールしようと過去に頑張った事がある。その際、SDL(ライブラリ)をインストールする必要があったので、PX68kはSDLを利用して画面表示やサウンドを鳴らすことをしているんだな…という理解をしていた。

 

RetroArchのエミュレータコアと呼ばれ、個別の共有ライブラリ(拡張子.so。shared object)となっていて、ある意味独立している。各コアはRetroArch側からの要求に基づいて動作するようになっている。

f:id:PocketGriffon:20220125214138j:plain

私の空っぽの脳みそで理解した構造はこんな感じ。

RetroArchはエミュレータドライバみたいになっていて、マシンフレームの実行を呼び出し、そこで作られた画像の出力、サウンドの出力などを個別のdriverで出力するようになっている…らしい。

 

この構造に基づいてメニューを見てみる。

f:id:PocketGriffon:20220125215113j:plain

メインメニュー、これがRetroArch全体のメニューとなっている。

 

f:id:PocketGriffon:20220125215229j:plain

メインメニューにあるSettingsというのが、RetroArchから呼び出される様々な項目の設定だ。

 

f:id:PocketGriffon:20220125215408j:plain

↑Driversの中身はこんな感じで、上の紙切れにあったVideoやAudioはここの設定を指している。InputやControllerなどはこだわったことがないが、切り替えたら効果あるのかも?

 

Audioはalsathreadに設定してる

名前から察するにThread化されるんじゃないかと思う。

CPUコアが複数あるマシンであれば効果があるのかも…と思い、おまじない的にコレにしている。

 

f:id:PocketGriffon:20220125215919j:plain

↑メインメニューに戻って、少し下の方にあるOptionsというのが、PX68k特有の設定だ。

 

f:id:PocketGriffon:20220125220125j:plain

PX68k特有の設定をするのはここのメニューとなる。

 

このOptionsSettingsの切り分けが頭の中で理解できるまで、どこに何の設定があり、どんな影響がどこに出るのかがさっぱり理解できなかった(T-T)

UIが難しいよ!

 

さて、ここまでで出てきた要素を考えていってみる。

まずサウンドデータの生成については、CPUパワーが有り余っている事から問題無く出来ているように感じられる。

 

サウンド乱れる時、映像も遅れる…という現象が出ているけれど、PX68k側の処理が間に合っていないような感じがしない。

 

…という事は、疑うべきはPX68kというよりは、VideoやAudioのドライバなのではないだろうか…(-_-;; でもそんな事ってあるの???

 

各種ドライバを試してみる

サウンド不具合に関する原因がPX68k側に見当たらないので、疑惑の目をRetroArch側に移してみる。最も気になっているのはVideoのドライバだ。もしかしたらVRAMアクセスが異様に遅いんじゃないの?…と感じ始めた。

 

DevTerm A06のRetroArchの場合、[gl, glcore, gl1, vulkan, sdl2, xvideo, drm, x11, sixel, caca]の10種類も存在した。このうち、vulkan、drmx11、sixel、cacaは指定すると起動しなくなった。こうなると手動でconfigファイルを変更しなければならない(T-T)

 

テストをしていくうちに、やはりVideoドライバを変更するとサウンドの鳴り方が変わることを確認。ちょっとうーんって感じではあるが、そういうものらしい。

 

そしてこの中で最も高速に表示ができたのはxvideoだった!

動くんだったらvulkanが一番速そうなイメージがあったのだが、そうではなかった!

 

ネットで探してみたらソースが見つかった。

少し中身を見てみたが、とても素直な作りになっているので、その分高速なのかな…。

 

この段階で一度Twitterへご報告(^^)

タイトルが表示されるところでちょっとだけ音のもたつきが起きる。

うーん…せっかくだからこれもキレイに直らないかなぁ……。

 

そう思って今度はPX68k側のオプションを触り始めた。

f:id:PocketGriffon:20220125220125j:plain

↑このメニューを下にたどっていくと……

f:id:PocketGriffon:20220126005710j:plain

Audio Desync Hackという項目があった。

名前から言ってちょっとドキドキする(^^;

 

下に流れている英語…を読むのは大変だったので、ソースにあったコメントを要約すると「サウンドがズレないように出来る限り頑張るよ」的な事が書いてあった。Hackというからには少し不具合が出る可能性もあるな…と思うけど、試してみることに。

 

するとどうだろう、音ズレもキレイになくなって再生出来るようになった!(^-^)

この状態でしばらく見ていたが、CPUの処理負荷も特に変わらず動いてるようだ。ただ、ソフトによってはSegment Faultでオチてしまうケースもあったので、完璧とは言い難いかも知れない…(-_-;;

 

ちなみに同じような対策がRG552でも出来るだろうか?と思い試してみたが、そもそもVideoドライバにxvideoが存在しない上に、ユーザーによるドライバの変更は許されていないようだった…。

ゲーム機では素直にPX68k側のオプションでCPUクロックを上げつつNo Wait指定した方が安全そうだ(^^)

 

よーし、だいぶRetroArchの構造を理解できたぞ(^^)

これはこれで副産物的にオッケーということで、今回は終わりにしよう!

 

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

DevTerm A06でX68000を動かす!(中途半端編)

f:id:PocketGriffon:20220123122608j:plain

Twitterでご報告した通り、DevTerm A06のRetroArchでX68000エミュレータ(PX68k)が動くようになった。しかしサウンド周りでの不具合(テンポがずれる、ノイズが乗るなど)が解決出来ず、困った状態が今!

 

一旦、この状態で情報を公開しつつ、協力者の出現を待とうという魂胆だ!(ToT)

我こそは思う方、ぜひご協力お願いします(T_T)

 

はじめに

以前、DevTermでRetroArchを利用してX68000エミュレータを動かそうとしてうまくいかず、その時は断念したということをブログに書いた。

その後もチャンスが有ればX68000エミュレータを動かすためにアレコレやっていたのだが…なかなかどうして上手く行かなかった。

 

RG351MPで初めてRetroArchが動いているのを見た。そう、今まで一度も動いてるところを見たことがなかったのだ!(^^;

なるほどこういう構造だったのか…と(なんとなく大雑把に)理解。その知識をもってもう一度DevTermに挑んでみた!

私自身がRetroArchを正しく理解していない可能性が高いため、書いてある事が支離滅裂になってる可能性も否定できない。自分に自信がないことを書くのってそうなりがち(T-T)

 

RetroArchインストール

まずはDevTermにRetroArchをインストールする。

この辺りは別作業と同時に進めてしまったため、もしかしたらこの情報だけでは足りない可能性もある。そこは適宜自己解決してもらえると助かります!←

 

DevTermはaptコマンドでパッケージをインストール出来るのでとても便利だ!意味も無く入れまくってしまう!(せめて意味は持たせてほしいが…)

terminalで以下のコマンドを打ち込む。

sudo apt install retroarch-assets libretro-*

 

これが終わるとウィンドウマネージャーのメニューにRetroArchが追加される。

f:id:PocketGriffon:20220123123403j:plain

 

起動するとこんな感じの画面↓が表示される。

f:id:PocketGriffon:20220123123806j:plain

多分……プレステ系の画面を見てる人ならば馴染み深いメニューなのかも?

私はプレステ系はPS2が最後、PS Vitaは持ってるけどほぼ使ったことがない…という感じなので、見覚えはあっても使い慣れてはいない…。

この後、いろんな設定を変えてはテストしていたのだが…なぜかメニューの表示が変わってしまい、元に戻す事ができなくなってしまった!!!

今は起動するとこんな感じの画面↓が表示される(T-T)

f:id:PocketGriffon:20220123125510j:plain

以降、この画面で説明していくけどごめんなさい(T-T)

 

ここで私はRetroArchの使い方が分からず、だいぶ苦戦した(T-T)

なんとなく理解した流れは

・Load Coreで使いたいコアを選ぶ

・Load Contentで読み込ませたいファイルを選ぶ

という感じだ。

インストールしたばかりの状態ではX68000(PX68k)のリストは見えているけれども、選択が出来ないという状態だった。

coreファイルが置かれている場所(/usr/lib/aarch64-linux-gnu/libretro)にpx68k_libretro.soが存在しないのが原因と思われた。

 

biosというか本体起動に必要なROMファイルは ~/.config/retroarch/bios 以下に置く。

cd ~/.config/retroarch/bios

mkdir keropi

cp ファイルのある場所/{iplrom.dat, cgrom.dat} keropi/

 

無理やり起動してみる

ここは他の人が試すのは難しいと思うけど、私が試した実験として記載(^^;;

 

まず前提としてDevTerm A06の実行形式ファイルはarm64。

この形式のファイルが欲しい。

 

しかし少し前にMac上でPX68kを動かそうと頑張ったが、どうも64bit環境との相性がよくなさそうな感じで、ビルドは通せても実行する事が出来なかった。

もしかしたら64bit環境では動かす事が出来ないのでは…と思い込んでいた。

 

そしたら…RG351MP上でRetroArchのX68000が動いた。RG351MPは実行ファイルがarm64なのだ。あらら…と思いRG351MPにログインして内部を探ってみると、64bit用のpx68k_libretro.soを発見!

そうかビルドしてちゃんと動くんだ…と思いつつ「このファイルをDevTermにコピーしちゃったら動くのかな…」と興味がわいてくる!

 

なーんにも考えずにファイルをコピーしておそるおそる起動してみる……

f:id:PocketGriffon:20220123133659j:plain

f:id:PocketGriffon:20220123133714j:plain

おおおお!これよこれ!これが見たかった!!!

この画面が表示されるってことはpx68k_libretro.soが動いてるって事!(^^)

f:id:PocketGriffon:20220123133920j:plainf:id:PocketGriffon:20220123133941j:plain

ゲームを動かしてみたけれども……音飛びや耳障りなノイズが入って耐えられない(T-T)

オプションの調整で直るのかな……(-_-;;

とりあえず当初の目的だった「ファイルを準備したら動くのか」はクリア出来た!

 

px68k_libretro.soをビルドする

twitterにてNochiさん(@shikarunochi)がRetroArch用のpx68kがあることを教えてくれた!

github.com

当時ビルドできるソースを探していた時、libretroというのが何なのかを理解していなかったので、特に気にせずスルーしていた。今ならばRetroArchで使えると理解出来る!(^^;

これをダウンロードしてきてDevTermでビルドしてみる!

 

Makefileベースの環境で、gcc(g++)が使えればビルド出来るっぽい。問題はプラットフォームをどうするかとかかなぁ…と思いつつMakefile.libretroを読み進める。

どうやら platform、arch、system_platform辺りを正しく設定出来れば良いみたいだ。

そこで、Makefileの先頭に以下の3行を追加した。

platform   = unix
arch = arm
system_platform = unix

書き方としてはどうなの?って気はするけど、まずはビルドを通すことを優先したい(^^)

あんまり深く考えず、makeしてみたところ、なんと一発でビルドが通った!

マジか!←カミュ

 

出来上がったpx68k_libretro.soを見てみると、ファイルサイズが4MBほどある。対してRG351MPから持ってきたファイルは約800KBほど。あらら?いくらなんでも差がありすぎない??

これは多分アレだろうな…と思い、Makefileを見ていくとやっぱり定義されてました、-gオプションが。積極的にデバッグする事もないだろうから-gは外す事に。

 

ここはMakefile.libretroの62行目を直接変更してみる。

#       CFLAGS += -g -O2
#       CXXFLAGS += -g -O2  -fno-merge-constants
        CFLAGS += -O3
        CXXFLAGS += -O3 -fno-merge-constants

ついでにオプティマイズオプションもお祈りを込めて-O3にしてみる。

本当はMakefileにDevTermのエントリを追加する対応が正しいんだろうけど、とりあえずまずは先に動かしてみたい。体裁よりも動く実績だ!(^-^) ←イイワケ

 

これでmakeしてみたところ、約900KBの実行ファイルが出来上がった。最適化のオプションもあるので、まぁこんなモンだろう。

ちなみにmakeに掛かる時間は約10分ほど。これはm68000/c68k/c68kexec.cをコンパイルするのに時間が掛かってるからだ。非常に大きなswitch〜caseがあるので、この部分の最適化に時間がかかってるようだ。#pragmaで最適化レベルを変更してやると瞬時にビルドが終わるようになるので、テスト中はその方が良いかも知れない(^^)

 

自前ビルドしたpx68k_libretro.soを試す

出来上がったpx68k_libretro.soを試してみよう。

ファイルをそのままコピーしても良かったけど、私は何度か修正変更するかも…と思い、シンボリックリンクを張った。

cd /usr/lib/aarch64-linux-gnu/libretro

sudo mv px68k_libretro.so px68k_libretro.rg351mp

sudo ln -s /{ビルドした場所}/px68k_libretro.so .

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

 

f:id:PocketGriffon:20220123123403j:plain

メニューからRetroArchを選択して起動すると…

f:id:PocketGriffon:20220123144516j:plain

↑この画面になるので、ここでLoad CoreでAボタン。

f:id:PocketGriffon:20220123144627j:plain

px68kの画面が出た!!!

エミュレータを普段から使われている方には見慣れた画面?

私はほぼ初めて使ってみるので操作であたふた(^^;;

それぞれのドライブに何のファイルを割り当てるかという指定なので、カーソルで移動しつつファイルを選択する。

そしてRESETを選択。

f:id:PocketGriffon:20220123144611j:plain

f:id:PocketGriffon:20220123144558j:plain

出たね!(^-^)

 

でも…やっぱり音は遅れるしノイズでガビガビ(T-T)

DevTermでFn+F1(数字の1キー)を押せばRetroArchのメニューが表示される。

f:id:PocketGriffon:20220123145114j:plain

ここのメニューにあるOptionは、px68k_libretro.soの設定みたいだ。

このメニューからBボタンを押して表示されるメニュー↓が、RetroArch全体のメニュー。

f:id:PocketGriffon:20220123145431j:plain

ここにあるSettings以下に各種設定項目がある。

Drivers、Video、Audio辺りをかなり変更してみてんだけど、サウンドは直らず。ノイズが乗らないようにはなったけれど、遅れまくったりするのは変わらない。

 

ちなみにPX68k実行中でもCPUパワーはあまりまくっているので、エミュレーションそのものの実行時間が間に合っていないわけではなさそう。

f:id:PocketGriffon:20220123145715j:plain

 

うーん、どなたかRetroArchの設定に詳しい方、解決法を伝授してもらえないだろうか…(ToT)

今日のところはここまで!(^^;;

 

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

RG351MPでPC-8801エミュレータ!

f:id:PocketGriffon:20220120140359j:plain

まだ続くRG351MPネタ!(^^;;

 

ここまで楽しみながら使ってるのは、私の中でRG351MPは謎パーとして認識されているのかもな…と思ったw これだけ素直なLinuxマシンに向かって謎パーとはヒドイと思うけど、なんか使ってて楽しいんですよw

そしてメインのゲーム機能はほぼ使ってないという不思議(^^)

 

今回は、XM8(PC-8801エミュレータ)をRG351MPでビルドして動かしたお話。

どうにもRetroArchに含まれているquasi88の調子が良くなくて、PC-8801に関してはあんまり動かせていない印象が強かった。

 

何か…Linux環境で動くPC-8801エミュレータはないかしらん…と探してみたら、とても良いものがあった!

PI.さん(@xm6_original)開発のPC-8801エミュレータ

これをRG351MP上でビルドして動かしてみる事にする!

 

準備

前準備として、キーボードとマウスは繋げておいた方が操作が楽ちんになる。

本体上部のUSB-CにUSBハブを繋げ、キーボード、マウス、そして無線LANアダプタを接続しておこう。特に設定はしなくても自動的に認識される。

f:id:PocketGriffon:20220120154316j:plain

便利だけど机の上は超カオス状態!(T-T)

 

もうひとつ、RG351MPでのビルド環境も構築しておこう。

前々回のブログにてgccでビルドが出来る環境を作った。

 …と言ってもinclude以下を丸コピーしただけだ!(^^;;

sudo apt install gcc  …でも行けるのかも知れないが、試していない。

ぜひどなたか試してもらいたい(T-T)

 

あっけないビルド

まずはソースをダウンロードする。これはRG351MP自身で出来なくはないけど面倒なので、Macでダウンロード。そのファイルをRG351MPへ転送する。

 

私は、ファイルを転送する時にscpコマンドを利用している。ssh接続が出来るマシン間でのファイルコピーがとっても手軽に出来る。

 

展開して出来上がったフォルダでビルドを実行。

 cd Source/Linux

 make clean

 make

これだけだ(^-^)

途中、ソースにgcc9ではエラーとなる書き方があったため2度ほど止まったが、プログラムというよりはデータの書き方の問題だったのでサクッと解決!

 

気になるビルドに掛かる時間は「make(シングルコア)」で4分33秒、「make -j 5(複数コア使用)」で2分02秒だった(^0^)

やっぱ速いね、RG351MP!

4コアでビルドしていると本体がほんのり熱くなった。持てないほどじゃないよ!

f:id:PocketGriffon:20220120152415j:plain

Macからsshでログインしてビルド作業

 

余談だが…ビルドエラーが出た時のファイル修正が少しだけ厄介だった。

いきなり本体でビルドを通そうとしたため、本体側でファイル修正をする必要が出てきてしまった。RG351MPにはviは入ってるがemacsはない…。viでも修正は可能だけど、慣れたEmacsを使いたい。

 

この先の事も考えた上で、思い切ってRG351MPにEmacsをインストール!単に「sudo apt install emacs」としただけだけど、Emacsが動くゲーム機って面白い(^^; 実機上でターミナルが開けないため、sshでログインした端末でのEmacsとなるが、これでファイル操作に対する不安がひとつ解消された!(^-^)

 

実行してみる

ビルドが終わると、そのフォルダにxm8という実行ファイルが出来る。これをRG351MP上で実行するのだが…まずはROMファイルを用意せねば。

xm8があるフォルダ(つまりここ)に必要なPC-8801のROMファイルを置く(^^) 詳しいことはXM8のドキュメントを参照してもらいたい!

よし、これで準備は整った……はず??

 

なにはともあれ実行してみよう!

勝手に自分ビルドしたファイルはRG351MPのランチャ(EmulationStation)に表示されないので、少々面倒な方法で実行する流れとなる。

 ・OPTION → FILE MANAGER

 ・xm8があるフォルダまで頑張って移動

私は /home/ark/src/xm8_170/Source/Source/Linux に実行ファイルが置かれているため、結構頑張らないといけなかった(^^;;

f:id:PocketGriffon:20220120154739j:plain

実行ファイル(ここではxm8)にカーソルを合わせ…Aボタンを押す。

 

f:id:PocketGriffon:20220120154815j:plain

そのファイルを「見る(View)」のか「実行(Execute)」するのかを聞いてくるので、カーソルをExecuteに合わせてAボタン。

 

f:id:PocketGriffon:20220120155011j:plain

PC-8801が起動してディスクをアクセスしに行く。ここでメニューが開いて「どのファイルをドライブに結びつけるのか」を聞いてくる。ここはキーボードとマウスがないと操作が難しい。誤操作防止にもぜひキーボードとマウスを使用して欲しい。

 

正しいファイルをディスクにセットすると、画面下のドライブアクセスインジケータ?が赤く光ったのちにディスクから起動する。

f:id:PocketGriffon:20220120155800j:plain

f:id:PocketGriffon:20220120160103j:plain

f:id:PocketGriffon:20220120160117j:plain

f:id:PocketGriffon:20220120160417j:plain

このゲーム、発売当時にPC-9801UV21で遊んだっけ。たしかコタツネコが…げふんげふん

PC-8801版はここ数年で手に入れたもの(^^)

 

xm8実行時にマウスの右ボタンを押すとメニューが表示される。ここでドライブの入れ替えや各種設定、リセットと終了が出来る。他のRetroArchのようにSTART+SELECTでは終了しないので注意が必要だ。

 

もっと充実させたい!

いくつかのイメージファイルをセットしてみたが、どれもキレイに動いてくれた!

f:id:PocketGriffon:20220120162826j:plain

 

f:id:PocketGriffon:20220120164227j:plain

今のところRG351MPのキーには対応が出来ていないので、キーボードは必須状態だ。アドベンチャーゲームは仕方ないにしても、アクションゲームくらいはRG351MP本体だけで実行出来るようにしてみたい(^^)

 

それにしても……RG351MP自身でビルドが出来るようになったのがとても嬉しい。もっとライブラリが足りないとか問題続出かと思いきや、必要なファイルは揃ってるようで変なエラーが出たことがない。安心感がハンパないよ!(^^)

 

640x480ドットのキレイな液晶、高速なCPUと4コアの余裕、メモリ1GB。何かを動かそうとした時のスペック不足をあまり感じない気がする。

今のところの不満といえば、ファイルを実行する手順が少しばかり面倒と思う程度だ。これは本来の使い方ではないので、こっち側の責任だ(^^;;

 

さてこの先は何をやってみようかな…(^〜^)

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

RG351MPでレトロマシンを動かす!

f:id:PocketGriffon:20220119230248j:plain

前回に引き続き、RG351MPを使ってみる!

今回はレトロパソコンのエミュレーションを試してみた!

 

先に注意書き

前回のブログを見てくださった方はご存知かと思うけど、ウチのRG351MPは標準のSDカードに入っていたOS(Emuelecというらしい)は使用していない。最初からArkOSというカスタムファームウェアを使用している。以下の説明でもArkOSに依存している可能性が高いので、もしもEmuelecをそのまま利用している方は注意して読んで欲しい。

 

大前提として、ArkOSでは標準的にRetroArchがインストールされている。

以下に書かれている各種レトロパソコンを動かす設定は、このRetroArchに基づいたモノだ。私自身、つい先日DevTermにRetroArchをインストールしようと奮戦したのが最初だ。

超がつくほどの初心者であることを、免罪符のように公言しておきたい(^^;;

 

X68000を動かす!

先日からずーっと動かしたい動かしたいと言い続けていたX68000エミュレータを、ようやく動かす事が出来た!めちゃくちゃ嬉しい(^^)

 

RetroArchに登録されているX68000エミュレータは、PX68kだ。この前、私が必死に動かそうとしたけど動かなかったもの…ナンデジャー(TOT)

このPX68kに渡す本体ROMファイル(cgrom.dat、iplrom.dat)を用意する。手元に実機がある人は本体から引っこ抜くのが簡単だろう。方法は以下のブログで書いている(^^)

MC68000エミュレータの開発 その5 - レトロパソコンであそぼう!

 

この2つのファイルをbios以下にコピーをする。

おそらくbiosの下にkeropiというフォルダがないと思うので手動で作ってやろう。

mkdir /roms/bios/keropi

cp cgrom.dat iplrom.dat /roms/bios/keropi/

コマンドラインでの作業を書いているけど、SDカードをパソコンに繋げて同じ作業をしてやっても大丈夫なはずだ。

 

次にゲームディスクのイメージファイルを用意する。これはネットのいろんなところに実ディスクからの吸い出し方法が書かれているので、それに基づいて自己責任で用意してほしい。

このファイルを /roms/x68000 へコピー。

 

そしたらPX68kを起動してみよう。

以下、私が一番最初にやってる方法を書いてみる。

多分、もっと簡単な方法があるんだと思うが、とりあえず(^^;

 

まずはメインメニューのRETRO ARCHを表示させてAボタン

f:id:PocketGriffon:20220119234311j:plain

次に↓の画面が出るので、RETROARCH32を選択(赤色に)してAボタン。

この2つ、何が違うのかをちゃんと理解出来ていない(T-T)
f:id:PocketGriffon:20220119234358j:plain

ARKOSのメニューが表示されるので、カーソルを Load Content に合わせてAボタン。

f:id:PocketGriffon:20220119234503j:plain

LOAD CONTENTというメニューが表示されるので、Start Directory を選択して(されているはずなので)Aボタン。

f:id:PocketGriffon:20220119234702j:plain

SELECT FILE /ROMS というメニューが表示され、ずららーっとたくさんの列が表示される。ほぼ一番下(カーソルの上を押せば一番下に移動する)辺りにx68000があるので、これにカーソルを合わせてAボタン。

f:id:PocketGriffon:20220119234827j:plain

f:id:PocketGriffon:20220119234942j:plain

 

そうすると、先ほど自分がコピーをしたファイルが見えるはずなので、それにカーソルを合わせてAボタンを押す。特に問題がなければ動くはずだ!

f:id:PocketGriffon:20220119235255j:plain

 

なお、ゲームによってはディスクが複数ある場合もあるだろう。

その場合はL2キーを押すことでエミュレータのメニューを表示出来る。

f:id:PocketGriffon:20220119235356j:plain

解像度があってなくて非常に見づらいのだけれども、ここは心の目でみるしかない!

ここで必要なディスクに入れ替えてやれば良い。

 

これでX68000を堪能する事ができるはずだ!(^-^)

なお、START + SELECTを2度押すことで、エミュレータから抜けてメニューへ戻れる。

 

PC-8801を動かす!

RetroArchに登録されているPC-8801エミュレータはQUASI88。必要な設定もQUASI88に基づいている。

PC-8801本体から用意してもらうROMファイルは結構多い。私はPC-8801MCユーザーであるので、BASIC ROM、漢字ROM、辞書ROM、CD制御ROM、サウンドファイルなどたくさんのファイルがあった。各自、手元にあるPC-8801に応じたファイルを引っこ抜いてもらいたい。ここでは引っこ抜き作業までは説明しないので、検索してみて欲しい。

 

必要な設定自体はX68000ととても良く似ている。

mkdir /roms/bios/quasi88

cp 用意したファイル /roms/bios/quasi88/

 

実行したいディスクの用意は各自頑張ってもらうとして、そのファイルを/romsへコピー。

mkdir /roms/pc88

cp 用意したファイル /roms/pc88/

これで準備は整った!

 

起動する手順はX68000と良く似ているが、少し違いがある。

f:id:PocketGriffon:20220119234358j:plain

↑この画面ではRETROARCHを選択する。32ではない。2つあるうちの上だ!

Load Content → Start Directoryと選び、SELECT FILE /ROMS ではpc88を選ぶ。

f:id:PocketGriffon:20220120001740j:plain

すると先ほどコピーしたファイルが見えるはずなので、それを選択。

f:id:PocketGriffon:20220120001919j:plain

↑選択したファイルの拡張子によって、動かすべきコアを選ぶ画面が表示される。

今回は拡張子D88のファイルを選択したところ、その拡張子に対応したコアがずらっと表示された。今回は一番上のPC-8800対応のQUASI88を選択してAボタン。

 

設定が正しければゲームが起動するなのだが、私の手元では動かないものの方が多かった。何か設定やらファイルやらが足りないのかも知れないが、どなたか分かる方が居たら教えて欲しい(TOT)

 

一応、動くものもあった。

f:id:PocketGriffon:20220120002508j:plain

 

PC-9801を動かす!

RetroArchに登録されているPC-9801エミュレータはNeko Project II。

私はNeko Project IIにはほぼ詳しくなく、設定などはだいぶあやふやのままだ…(T-T)

 

まずはPC-9801のROMなどを用意する。

方法はNeko Project II側を参照して欲しい。

用意したファイルをbiosフォルダにコピーしよう。

mkdir /roms/bios/np2

cp 用意したファイル /roms/bios/np2/

 

実行したいディスクも /roms へコピー。どうやらこれは拡張子がFDIでなければならないらしい。この辺りの情報はとても怪しい(T-T) 

cp 用意したファイル /roms/pc98/

これでオッケー!

 

f:id:PocketGriffon:20220119234358j:plain

PC-8801同様、RETROARCHを選択する。

Load Content → Start Directoryと選び、SELECT FILE /ROMS ではpc98を選ぶ。

先ほどのファイルを選択すると、また少し違う画面が表示される。

f:id:PocketGriffon:20220120004615j:plain

↑写真ではカーソルがあってないが、PC-98を選択してAボタンを押す。

f:id:PocketGriffon:20220120004858j:plain

うまくいけばPC-9801特有のピポ音がしてゲームが起動するはず……なんだけど、やはり成功率は高くない(T-T)

起動に失敗する時はそのままBASICが起動する。

f:id:PocketGriffon:20220120005233j:plain

写真がぼやけているので見づらいが、実際にはとてもキレイなフォントで表示されている。まさにPC-9801そのものの画面が出る。

この状態でUSBハブを介してキーボードを繋げてやれば、文字入力も可能だ。

f:id:PocketGriffon:20220120005340j:plain

うまく動かなかったら、久しぶりにBASICで遊んでみるのもアリだろう!(あり??)

 

MSXを動かす!

RetroArchに登録されているMSXエミュレータはblueMSXだ。先日のDevTermでも候補には上がっていたが動かす事のなかったblueMSX。もちろん設定は全く分からない(T-T)

 

まずはBIOSの用意をする。

blueMSX World Wide Website

↑のリンクをクリックして、表示されたページにあるblueMSXv282full.zipというファイルをダウンロードする。これを展開すると以下のようなファイルが出来上がる。

f:id:PocketGriffon:20220120010703j:plain

この中にあるDatabasesとMachinesという2つのフォルダをbiosへコピーする。

cp -r Databases Machines /roms/bios/

特にフォルダを作る事なく、bios直下にフォルダごとコピーする!

なんとなくblueMSXというフォルダを作りたくなるが、それではダメらしい。ここ、テストに出るよ!(T-T)

 

ROMファイルは各自用意してもらうとして、そのファイルを/roms/msxまたは/roms/msx2へコピーしておく。

 

さて実行してみよう。

f:id:PocketGriffon:20220119234358j:plain

この画面ではどちらを選択しても正常に動かす事が出来た。

特に気にせず上のRETROARCHを選択しよう。

Load Content → Start Directoryと選択し、SELECT FILE /ROMS ではmsxまたはmsx2を選択。

先ほど入れたファイルにカーソルを合わせてAボタンを押すと、画面が切り替わる。

f:id:PocketGriffon:20220120011824j:plain

ここでは Load Archive にカーソルを合わせてAボタンを押そう。

f:id:PocketGriffon:20220120012005j:plain

↑すると、同じ拡張子を実行できるエミュレータコアがずらっと表示されるので、その中でblueMSXにカーソルを合わせてAボタンを押す。

f:id:PocketGriffon:20220120012215j:plain

見慣れたMSX起動画面が表示されたら成功だ!(^-^)

 

f:id:PocketGriffon:20220120012332j:plain

f:id:PocketGriffon:20220120012353j:plain

f:id:PocketGriffon:20220120012409j:plain

 

おわりに

駆け足ではあったけど、RetroArchでレトロパソコンを動かす紹介でした!

一連の動作テストを行った後、RG351MPを再起動すればメインメニューにPC-9801MSXの表示が出てくるようになる。その先はそこから選択して起動すれば動くはずだ(^^)

 

他にもX1のコアがあるらしいのだが、私はX1を使ったことがない+データイメージも持ち合わせていないため、試すことが出来ない。どなたかX1に詳しい方がいたらチャレンジして欲しい。

 

あと、PC-6001とかFM-7などを追加出来たら楽しいんだけどなーと思うけど、これまたRetroArchの仕組みを詳しく調べてみないといけないので簡単ではなさそうだ(^^)

 

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

RG351MPでプログラム!

RG351MPというマシンをご存知だろうか?

f:id:PocketGriffon:20220118224634j:plain

中国のANBERNIC社が販売している機械で、多分…ゲーム機なんだと思う(^^;;

各種エミュレータが最初からセットアップされていて、イメージデータを自前で用意すれば簡単に遊べるというマシンだ。本来の使い方は、ゲームで遊ぶんだと思う。

 

しかしゲームをほぼやらない私から見たら、キーボードの付いてない普通のLinuxマシンだ。

以前からANBERNIC社が出しているゲーム機には注目していたが、RG351MPになって画面解像度が640x480ドットになったことから気持ちが盛り上がった!

これで何か自前プログラムを動かせないかなぁ…なんて思ってしまったら、もう止められない!(^^)

 

CPUにARMクワッドコア1.5GHz、メモリは1GB。少し重みのある筐体にカッコ良いフォルム!お値段は少し張るけれど、基板むき出しのRaspberryPi4が1万円近くすることを考えたら、でっかい液晶がついてパッケージングされた状態で16000円くらいなのは、まぁ許せる範囲だろう(^^)

 

どんなマシンなのかを詳しく知りたい方は、ぜひ「RG351MP」で検索して欲しい。

ここのブログでちゃんとした本来の使い方を書ける自信がない(^-^;;

 

このRG351MP、本来はシステムが入って送られてくるらしいけど、私の手元に来た時からシステムSDが壊れていた。そのため、一度もデフォルトのOSが起動した画面を見たことがない(^^;;

 

復旧させようと調べていたら、ArkOS(https://github.com/christianhaitian/arkos/wiki)というカスタムファームウェアっぽいソフトをインストール出来るということが分かった。

 

「OS」という名前が付いているので誤解されやすいが、実際はLinuxディストリビューションと考えたら良さそう。大雑把にドキュメントを読む限り、RG351MP用に用意されたArkOSは、エミュレータの実行に最適化されているらしい。

 

ArkOSのインストール→ビルドしてみる!

ArkOSのインストールについてはネット上に情報がたくさんあるので、そちらを参照してもらいたいが、1文で書くのであれば「イメージをダウンロードしてddして挿し込んで起動」だ。特に難しい事はなくRaspberryPiのOSインストールを経験している方であれば、悩める箇所はない。

f:id:PocketGriffon:20220119070848j:plain

RG351MPにArkOSのイメージを書いたSDカードを挿し込んで起動すると、本体側へのインストールが開始される。インストール中、2度ほどOKを押すように即されるが、5分程度でワリとあっけなくインストールが終了する。

f:id:PocketGriffon:20220119070949j:plain

 

このRG351MP、本体にネットワーク機能が無い。

無線LANに接続するためには、付属の無線LANアダプタをUSBに挿し込む。

f:id:PocketGriffon:20220119071825j:plainf:id:PocketGriffon:20220119071843j:plain

無線LAN付きの機材を国内で販売するためには技適マークを取得する必要があるようで、それに意外な時間が掛かるらしい。M5Stack界隈を見ていると、たまに「技適マークの取得が…」という話題を目にする事がある。

 

その機能を外部ハードに任せるというのは、ある意味英断だと思う。なるほどって感じ(^^)

無線LANを使う時は↑写真のようにアダプタをおっ立てる。これが本来の使い方だ。

 

さて、ここからが本来ではない?使い方の設定をしていってみよう。

まずはssh経由でRG351MPへログイン出来るようにしてみる。

 

ArkOSが起動したら、OPTIONS→WIFI(メニューを下にスクロールさせると出てくる)を選んで、無線LANの設定をする。

正しく設定出来たかは、同じくOPTIONS→NETWORK INFOで見る事が出来る。

ここで何も表示されずにメニューに戻ってしまうようならば設定に失敗してる。

 

次にOPTIONS→ENABLE REMOTE SERVICESを選択してsshでのログインを許可する。

この設定は保存されず、RG351MPを起動するたびに行う必要がある。セキュリティ的な問題もあるので、私は面倒を気にせず毎回行っている(^^)

 

これでRG351MPへログイン出来るようになっているので、MacWindowsからログインしてみよう。

 ssh ark@IPアドレス

ユーザー名、パスワード共にarkだ。

IPアドレスの部分はOPTIONS→NETWORK INFOで表示されたアドレスを入れよう。

f:id:PocketGriffon:20220119073817j:plain

ほら、これでログイン出来るようになった!(^-^)

 

f:id:PocketGriffon:20220119074135j:plain

ディスク、メモリ、CPUはこんな感じ。

apt list --installied とすればインストールされてるパッケージ一覧が見られる。

ソレを見ると、なんとgccも入っているらしい!

f:id:PocketGriffon:20220119081230j:plain

バージョンは9.2.1。いいねいいね!申し分ないね!(^-^)


試しにHelloWorldでも動かしてみるかーと思って試してみたら、なんとヘッダーファイルがなかった! /usr/include以下がフォルダごと無い…orz

 

あれこれ見てみたが、どうやらダイナミックリンクされるライブラリ群は存在するようだったので、ヘッダーファイルだけなんとかすれば良いのかも??

DevTermにインストールされているgcc(バージョン10)からヘッダーファイルだけコピーしてみた!(大胆かつおバカ的発想…)

これで問題なくセルフビルド出来るようになった!(^-^)

#多分、もっとキレイな解決方法があるはずです…汗

 

いくつかの自作エミュレータをコピーしてビルドしてみたが、DevTermで動いていたソース(Mac上で動いてたソース)が無変更で動いてしまった!

純粋なLinuxマシンとしては「そりゃそうだ」なんだけど、ちょっとうれしい(^^)

f:id:PocketGriffon:20220119082253j:plain

f:id:PocketGriffon:20220119082308j:plain

ちなみにFM-7エミュレータのビルドに掛かる時間は約8秒。

DevTermでビルドすると約7秒なので、似たような速度だと思う(^^)

 

f:id:PocketGriffon:20220119083039j:plain

並べてみるとこんな感じ!

いいねぇ!なんだかニヤニヤしちゃうね!(^^)

 

RG351MPからFM-7エミュレータを動かすのは、OPTIONS→FILE MANAGERを利用した。

まだxtermなどの端末を起動させられていない(実行しようとしてもすぐに終了してしまう)ので、当面は面倒な方法で実行させないといけないのかも。

 

とりあえず終わり

RG351MPをLinuxマシンとして使ってみる試みをしてみた。

ゲーム機としてとても優れているというレビューは沢山見るが、Linuxマシンとして使っている記事をあまり見たことがない。そりゃそうか!(^^;;

 

USB端子にハブを接続してキーボードとかHDDなどの機器を繋げてみたい…とか、試してみたい事が沢山ある(^^) あるけど…そこまでする?ってのも気持ちとしてある(^^;;

 

MC68000エミュレータも放置している状態なので、脱線しまくらない程度に遊んでいってみたい!

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

本!本!!本!!!

今年もよろしくお願いします!(^-^)

 

Twitterやブログで仲良くなった海外の方と、ちょこちょこやりとりをしてる。

12月初旬に荷物を送ったよと連絡があり、大晦日に届いたので「届いたよ」と連絡入れてみたところ、翌日の元旦に奥様から「主人は他界しました」と連絡が…(T-T)

 

その方と私は同じ病気を抱えていて、頑張って治していこうと励まし合っていたので、余計にショックが大きくて…正月中は何もする気になれなかった…(-_-;

ホントに何も考えたくないので、棚上げになっていた本の片付けをする事に。

 

片付けついでに写真を撮ったので、記録を残しつつブログに書いてみる。

f:id:PocketGriffon:20220108165630j:plain

工学社のI/O。私はこの本で育ったと言っても過言ではない(^^)

1982年以前は歯抜けが多いけれども、それ以降はずっと購買していた。1989年以降は買わなくなってしまったようで、これまた歯抜けにしか無い。

何冊あるのかと思い数えてみたところ126冊あった。

 

f:id:PocketGriffon:20220108172954j:plain

↑私は工学社の活用研究本大好きっ子だ!(^^)

PC-8801mkII活用研究は人に貸してしまってるのでここにはない(T-T)
ここに写ってる以外にも活用研究ってあるのかな…?

 

一番最初に手に入れた活用研究は、FM-8活用研究だった。お正月にお年玉で買ったものだが、パソコンに理解が無い家族からは「無駄な買い物」と罵られた(-_-; 40年近く経ってもキレイな状態で残ってるのは素直に自慢したい(^-^)

 

f:id:PocketGriffon:20220108174118j:plain

↑PC-Techknowシリーズ、テクニカルデータブックなどなど。

このシリーズはエミュレータを作るために必要だと感じて集めていた。今でもプログラムする際に一番参考にしている本かも知れない(^^)

テクニカルデータブックはあまり見てないかも…。これは好みだと思う。

 

一番右にあるWACSをご存知だろうか? これはMIFESの作者が開発された、MIFESの前身となったエディタアセンブラだ。こんな感じで書籍で販売されていた(^^)

 

f:id:PocketGriffon:20220108175408j:plain

MS-DOSCP/M関連の書籍を集めた棚。主に機種に依存していない書籍…のつもり(^^;

文豪にMS-DOSを移植しようと頑張っていた頃(1988年頃?)に買い漁っていた。

「応用MS-DOS」が2冊あるが、1札は改訂版だ。厚さも内容も違うので2冊置いている。

 

f:id:PocketGriffon:20220108182512j:plain

DOS/V…というか、PC/ATというか関連の棚。

あんまりDOS本体でプログラムをしたことがなかったが、ブートストラップ、VIDEO SYSTEMSの書籍はとても良く読んだ覚えがある。

今でも資料として大切にしてる(^^)

 

f:id:PocketGriffon:20220108172101j:plain

↑98関連の書籍を集めた棚。マニュアルとかOh!PCは別の場所にある。

なんだかPC-9801ではプログラミングをした事がほぼ無かったので、書籍の種類も無節操な感じがするね…(^^;;

 

f:id:PocketGriffon:20220108172457j:plain

PC-8801関連の書籍群。

当時、私はPC-8801のオーナーではなかったので、一部の本は最近集めたものだ。

PC-8801ではプログラム本がたくさんある(^^)

所有していなかったけれども技術的な興味はあったので、当時でも書籍だけは手に入れていた!(^0^)

 

f:id:PocketGriffon:20220108172719j:plain

↑FM関連の書籍棚。

FMはリアルタイムで持っていたこともあり、技術的な本がそれなりにある。というか、所有しているけど見つかってない本がいくつもあるので、まだこれからも出てくるみたいだ…汗

 

FM TOWNSのオーナーになった事は一度も無いけれど、やっぱり技術資料だけは欲しくて手に入れては読みまくっていた(^^)

 

f:id:PocketGriffon:20220108170234j:plain

X68000関連の書籍。思ったよりも少ない??

Oh!MZ、Oh!Xは別のところにおいてあるのでこの部屋にはない。

とってもお気に入りは040turboの本!この本は何度も何度も読み返しているのでボロボロになってしまっている(^^)

 

f:id:PocketGriffon:20220108170258j:plain

元々は「それ行け!X1」という名前だった隔月刊誌。Vol.16以降は「それ行け!X family」と名前を変えたようだ。うちにはVol.4〜22までの19種類、ダブリも含めると22冊がある。

これは当時リアルタイムで買っていたのではなく、のちにまとめて譲り受けた。

薄い小冊子なんだけど、シャープが発行しているだけにとても内容が濃ゆい(^-^)

f:id:PocketGriffon:20220108171827j:plain

Vol.14の中にX68000の号外ちらしが入ってた!(^^)

そっか、2月1日発売だったんだ!

 

f:id:PocketGriffon:20220108180715j:plain

MSX関連の棚。

MSXはいろいろとプログラムを組んでいたが、「便利ツール コキ使って!」と「テクニカルハンドブック」で事足りてしまった(^^)

MSX Magazineは毎月購入していたのでもっと沢山あるはずなのだが、まだ発見されていない…。どこの箱に入ってるのかなぁ…(T-T)

 

f:id:PocketGriffon:20220108181159j:plain

↑X1、MZ-2500関連の棚。

X1も今までオーナーになった事はないのだが、Oh!MZを購買していた事もあって興味本位で入手していた。実際にプログラミングをしていないこともあり、どれが有用なのかがはっきりしなかったので、集め方もまばらだ(^^;;

 

f:id:PocketGriffon:20220108182213j:plain

↑本を集めてみて気がついたんだけど、PASOPIA7の本がそれなりの数あった! (^^;

そしてPASOPIA7のオーナーになった事は一度もない!(^^;;;

これもアルフォスが動いてるマシンというだけの理由で興味本位に集めてみたが、実際にプログラミングをするチャンスもない…(-_-;;

 

f:id:PocketGriffon:20220108183022j:plainf:id:PocketGriffon:20220108183041j:plain

f:id:PocketGriffon:20220108183116j:plainf:id:PocketGriffon:20220108183137j:plain

f:id:PocketGriffon:20220108183221j:plainf:id:PocketGriffon:20220108183246j:plain

いろんな本がいっぱい…(T-T)

なんとなくCPU系とかUNIX系とかコンパイラ系を集めてみたり(^^)

その時その時で興味があるものを買い漁る傾向にあるので、似たような本が沢山揃ってしまう。ちなみにUNIX/Linux/FreeBSD/NetBSDなどの本はとても整理しきれず、まだ多くが手つかずになっている…orz

 

f:id:PocketGriffon:20220108184000j:plain

f:id:PocketGriffon:20220108184035j:plain

机の周りにも本が出てる状態なので、これも一時的に片付けをしたい(^^)

その上で、作業で必要な書籍だけを手元に置いておくのがいつもの感じだ(^o^)

 

ところで…本を整理している最中にソフトもたくさん出てきた。

f:id:PocketGriffon:20220108191238j:plain

当時、PC-9801DOS/Vマシンを複数台使っていた。

エディタはVzをこよなく愛していたので、どのマシンでも使えるようにしたかった。利用規約を確認したが、ひとりが複数台にインストールして良いのかはっきりしなかったため、台数分だけのVzエディタを購入していた。

多分6〜7本あると思うので、まだ発掘されていないみたいだ(^^;

MIFESは高かったので1つしか買えなかったが、Vzだったら(同時購入でなければ)ワリと気軽に買えてた気がする(^^)

 

ダブリ本の扱い

今回、本棚の整理をしながらダブっている書籍を集めてみた。

それで……↓この写真に写っている書籍が複数あった本だ!

f:id:PocketGriffon:20220108184512j:plain

f:id:PocketGriffon:20220108184530j:plain

この数がダブってるって……ちょっとおかしくない?(^^;;;

私自身もさすがに呆れた(T-T)

 

このダブってる本、扱いをどうしようかと思ったけれども…、(ダブってるのに気が付かずに)高値で手に入れてしまったものもあって、どうにも扱いが面倒だ(^^;

 

そこで、このダブり本に限り、興味ある方に貸し出しをしてみたい。

いくつかの条件をつけさせてもらおうと思う。

私とリアルに面識があり、お互いに誰なのかはっきりしている

Twitterで相互フォローをしていて、過去にDMでやりとりをしたことがある

上記2つのどちらかがOKで、かつ平日の日中秋葉原まで受け取りに来れる

上の条件に合う方で興味のある方はDMくださいませ(^^)

 

次回以降は傷心も落ち着くと思うので、また何か作っていこうと思う(^^

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

2021年ブログダイジェスト!

今年はもうブログ更新ができそうにないので、今年最後の総集編!

f:id:PocketGriffon:20211230115820j:plain

今年もいろんなマシンで遊んでました!

以下、ブログのタイトルに出てきたマシン名を並べてみる!

AI-1000/DevTerm/FP-200/FX-890P/HC-20/HC-80/JR-800/M5Stack Core2/M5StickC Plus/MZ-2500/MZ-80B/NC200/PC-1360/PC-1600K/PC-2001/PC-2500S/PC-8201A/PC-8300/PC-9801NS/A/PC-G850V/PX-8/RaspberryPi Pico/SMART Response XE/T1200/TANDY200/X68000/micro:bit v2/文豪ミニ5ZC

ざっと29機種!

12ヶ月で29機種!?

これを見ただけでも私の飽きっぽい性格が表されてる気がする…(^^;

 

これを見ると「この人が得意なマシンってなに?」って感じになるだろう……。うん、自分でもわからんw 分からないけど、モバイル系のマシンが好きなのは間違いない。デスクトップマシンは基本あんまり使わない。

 

印象深い記事を振り返ってみよう。

先頭のブログだけリンク貼るので、それ以降の続きも見ていってもらえたら…と思う!

 

AI-1000

CASIO AI-1000を分解してみた!(ゆるゆる編) - レトロパソコンであそぼう!

CASIO AI-1000を使ってみる!その1 - レトロパソコンであそぼう!

以前からPB-1000/AI-1000系はお気に入りで、いつか使ってみたいと思っていた。HD61700アセンブラを使ってみたかったけど、なかなか取り組むチャンスがなく…ここぞとばかりにチャレンジした!

 

HD61700では「未定義命令」という言葉に弄ばれた感がある(^^;

アセンブラを作ってみたけど命令解釈にとても大変な思いをした。もう1回作ってもキレイには作れないだろうなぁ…。

作る方ではアセンブラで簡単な絵を動かすプログラムを作ってみた。

やっぱり画面で何かを動かすと楽しい(^^)

HD61700を初めて使ってみたけど、直行性のあるアーキテクチャでありつつ実はかなりのCISCマシンだった!Z80っぽく書くのは簡単だけど、ちゃんと使いこなそうとすると覚える事が多そうな感覚。

 

このCPU用のコンパイラとか作りたくなるけど、このレジスタ構成だったらスタックマシンじゃなくてレジスタ割付したくなるよねぇ…規模が大きくなるよねぇ…で手つかず!(^^;

ちょっと後ろ髪引かれるカタチでの終了。来年、AI-1000ではなくてPB-1000辺りで取り組みそうな予感!(^^)

 

DevTerm

DevTermが届いた! - レトロパソコンであそぼう!

DevTermを使ってみる! - レトロパソコンであそぼう!

注文してから7ヶ月待ったマシン。

見た目に引かれて手に入れたけど、中身はワリと生粋なLinuxマシン(^^)

Linux環境はいくつか手元にあるけれども、その中でもこのマシンはお気に入りかも!

せっかくなのでMacで使っていたプログラムのいくつかを移植してみたけれど、マシンパワーが結構あるので想像以上に実用性が高い。

この先もちょこちょこ使いそう!(^^)

 

HC-20

HC-20のメンテナンスその1 - レトロパソコンであそぼう!

HC-20を使う その1 - レトロパソコンであそぼう!

HC-20といいつつ使っていたのは海外製のHX-20というオチ。でも中身は一緒!(^^)

 

私の中にあったHC-20に対するイメージは、あんまり資料が多くなくて解析しまくらないといけないだろうなーって感覚だったのだが……実際にはOh!HCに大量の資料が書かれていた(^^;

解析する事がほとんど無かったことで取り組むことが無くなってしまった(-_-;;

 

6301CPUはHC-88でめちゃドハマリした事もあって、開発環境も整っていた。

ゲームを作ろうかなーと思ったが、趣味でゲームを作るのは…という感覚があり、そこで終了してしまった(^^;

 

M5Stack系

M5Stack Core2を使ってみる! - レトロパソコンであそぼう!

M5Stickでプログラム!その1 - レトロパソコンであそぼう!

私の中では今年一番ドハマリしたマシン!(^^)

IDEという苦手ツールもあって敬遠していたけれども、実際に使ってみたら超便利だった!

これだけ簡単に画面に情報が出せるマシンを使ったことがなかったので、あれこれ実験するのにはうってつけで、ブログやtwitterに出したモノ以外にも沢山プログラムを組んだ。

 

マシンのメモリ構成が少し複雑で、使えば使うほど使いこなせた感が強い。

使っていてとても楽しいマシン!

こういう「プログラマの工夫次第で性能を引き出せるマシン」というのが昔から大好きかもしれない!(^^)

 

M5StickC Plusはさらにメモリ的な制限が大きく、どうやって実現しようかという創意工夫が際立った!(^-^)

 

MZ-2500

SHARP MZ-2500を使う! その1 - レトロパソコンであそぼう!

ものすごい中途半端感が漂うMZ-2500での取り組み!(T-T)

 

なーんとなく……MZ-2500にとても高い幻想を思い描いてて、有り余るマシンパワーで全画面ポリゴンをぐりぐり動かしてみるぜー…とか思ってた(^^;;

VRAMをアクセスするタイミングに配慮が必要で、全画面書き換えは簡単ではないと悟った瞬間、気持ちの切り替えが必要になって中断!(^^)

手元にあるMZ-2500はハードも充実させてるので、またチャレンジするよ!(^-^)

 

PC-1600K

PC-1600KでBad Apple!! - レトロパソコンであそぼう!

SHARP PC-1600KでLCDを直接制御して描画! - レトロパソコンであそぼう!

SHARP PC-1600KでCP/M80!その1 - レトロパソコンであそぼう!

PC-1600KではCP/M80の移植をした。

中途半端だけど!

終わってないけど!(ToT)

 

本体の画面にはちゃんと表示されていなかったが、シリアル出力でMBASICが動いてスタートレックで遊べるくらいには動いてた。

この中途半端癖を来年は……多少は改善したいw

 

友人にPC-1600Kの増設メモリを作ってもらうとか大胆な事もしたけど、まだまだ増設メモリを使いこなせてる感が無いので、もっとちゃんと使わなくちゃと思ってる!(^^)

そういえばBad Apple!!も動かしたね!

そうか、これが初のBad Apple!!だったのか…(・・;)

もっと長い事動かしてる感覚があったw

 

PC-8300

NEC PC-8300 外見編 - レトロパソコンであそぼう!

PC-8300でプログラミング その1 - レトロパソコンであそぼう!

今でも超お気に入りマシンとして君臨するPC-8300。

このマシンは「使った」というよりは「手に入れて嬉しかった」方が強いかも!(^-^)

この時に初めて花札の絵が登場してた。

10KB以上もあるダンプデータを打ち込んだよ!

 

基本的な中身はPC-8201Aの正当進化版で、使い勝手も同じ。PC-8201Aのプログラムがそのまま動く事から、中身に対する探究はそんなに心動かなかった(^^)

バッテリー交換したから定期的に充電してるよ!

 

LSIC-80が復活したので8085でもC言語が使えるようになり、プログラミングが飛躍的に楽ちんになった!LSIC-80はLinux版が欲しいと思ってる今日このごろ…(^^;

 

RaspberryPi Pico

RaspberryPi Picoでプログラミング! - レトロパソコンであそぼう!

RaspberryPi PicoでFM-7を動かす! - レトロパソコンであそぼう!

RaspberryPi PicoでBad Apple!!その2 - レトロパソコンであそぼう!

RaspberryPiは歴代すべてを使っているかと思うけど、Picoだけは手が出てなかった。コントローラー感が強かったし、正直何に使えるのか理解してなかった(^^;

 

でもM5Stack系を使った流れで小さな液晶が楽しくなってしまったのと、Pico専用のLCDがあるのを見つけてしまったら動かしたくなった!

Arduino IDEでビルド出来るようになったらすごく便利になった!(^-^)

PC-8001エミュレータが数時間でポーティング出来た。

 

その後、でっかい液晶を取り付けてFM-7エミュレータを動かしてみたが、133MHz DualCoreでもそれなりに動いた!

限られたメモリとパワフルでもないCPUで無茶移植するのが楽しく感じるお年頃(^-^)

Picoではまだやり残したと思ってる事があるので、来年きっとまたチャレンジする!(^^)

 

SMART Response XE

SMART Response XEを使う!その1 - レトロパソコンであそぼう!

海外の教育現場で使われていたコンピュータ、SMART Response XE。

海外でハッキングしている人がいて楽しそうだったため、仲間内で手に入れて遊んでみた!

 

Arduino IDEで開発が出来るようになっていたたため、扱いがとても簡単だった!VRAMの構成がちょっと特殊で、その辺りをキレイに整備するのが楽しかったです!(^-^)

 

CPUのレジスタが8bit構成で、久しぶりにsizeof(int) = 2のマシンを使った!C言語使ってても気を使う事が多くて、工夫が必要な構造だよ(^^)

 

Bad Apple!!を無理を承知で移植してみたけど、やっぱり無理だったかも(^^;

速度はどうあれメモリがねー(・・;)

XEで動いてるBASICを○○に移植してみたら…みたいな事も気になってるので、少しだけ続きのほにゃららをするかも←なに?

 

TANDY200

TANDY 200でプログラミング その1 - レトロパソコンであそぼう!

TANDY200をホワイトニング! - レトロパソコンであそぼう!

PC-8201の流れをくむTANDY200。

いつもeBayで見てて「いいなー、使ってみたいなー」と思ってみてた代表格のマシン。

動作未確認のマシンを手に入れてみたら、全く問題なく動くわメモリ増設されてるわで、文句なしの1台だった!

PC-8201との大きな違いとしてはLCDCの互換性がない。PC-8201では10個あるLCDCをコントロールして表示するのに対して、TANDY200では1つのLCDCをアクセスすれば表示が出来る。そのため、PC-8201よりも高速な表示が出来た!

 

LCDCをちゃんと調べたので、ハードウェアスクロールとか2画面切り替えとか出来て、何かに使えそうな可能性を感じる構成だったよ!

絵が描けたらなぁ…と強く思うようになったけど、どーにもならない(T-T)

 

久しぶりにホワイトニングにも挑戦してみたけど、だいーぶ失敗した感が…(・・;)

TANDY200をホワイトニング! - レトロパソコンであそぼう!

 

文豪ミニ5ZC

文豪ミニ5でプログラミング! - レトロパソコンであそぼう!

私のライフワーク的な位置づけのマシン、文豪ミニ5でのプログラミング!

何年も前から遊んでみたくてマシンの選定、準備、環境整備とかあれこれやってきた!

 

せっかくなのでカラー液晶で、86系で一番パワフルなCPUを持つ文豪を…と思い、ZCを選んだ。FDDが動く本体が無くて、ZCだけで5台くらい持ってる(^^;;

そしたら……反転型VRAM、パレット機能がない可能性がある、200ライン表示もなさそう…と、やろうと思っていた事が出来ない可能性が出てきた(T-T)

 

とは言え、↑にも書いた通りライフワーク的に文豪でのプログラミングを楽しみたいので、来年以降も必ず登場するよ!!(^-^)

 

X68000

私にしては珍しく超メジャーマシンにチャレンジ!

最後にX68000でプログラムしたのが1995年だったので、実に26年ぶりの挑戦!

これだけマシンと離れていると、完全にMC68000を忘れてる(^^;; 思い出しつつ環境を整えたりしてたけど、どうにも気になってエミュレータを作り始めてしまったのが今!(^-^)

 

ちょっと面倒なバグに遭遇してしまい、年末という事もあって集中が出来てない(T-T)

年末年始に少し進められたらいいなー!

 

てな感じで…

今年の後半は人気がありそうな機種をちょこちょこ触っていたおかげか、ずっと増えていなかったこのブログの読者が1割増え、TwitterのフォロワーはM5Stack辺りを境に1.5倍になった!たくさんの人に見てもらえるのはモチベーションにもなるので本当に嬉しい!(^^)

 

来年も同じような流れで好きな事を書きまくるんだろうけれど、マイナー路線もたくさんやっちゃうと思うのでよろしくお願いします(^^;

制御系のマイコンも気になってるので、何か良いものがあったら教えて下さいませ!

 

あと…今年1年で手に入れたコンピュータというかパソコンというか、それっぽいモノは、記録が残っているだけで90台にも上った!多分、記録してないものを含めたら120台以上になるかもしれない…。また棚卸しをしてみないと…ぐぎぎ(T-T)

 

来年はこの辺りのマシンにも触るかも…

PC-8500/PC-8401A/WioTerminal/ARDUBOY/reTerminal/PC-3100/PB-1000/Apple IIc/FM-77/68008-MBC/Z80-MBC

他にも今年にやり残しちゃった事があるマシンは続けるよ!

PD-7000とかはメモリカードを手に入れてるので、続きの作業もしてみたいし!(^^)

 

2021年もありがとうございました!!

ではまた来年!(^-^)ノ