SL9821

はじめに

ダウンロード

使い方

FAQ

実行画面

技術的なはなし

プログラム構成

グラフィック

サウンド

雑談

2017/6/6

2017年5月にHAL研究所がMZ-80Cのエミュレータを10月に発売するというニュースがありました。
本題(技術的なはなし)をいつまでも更新できずにいるのに趣旨と全く異なるこんな雑談を書くことに若干の後ろめたさもあるのですが、同じ時期に野良とはいえPCエミュレータを作っている身としてこうした製品についてリアルタイムでの所感を書いておくのもよいのかなと思い、思うところを書いておきます(ブログとか書いていないのでこんな場所ではありますが)。
忘れなければ実際に発売されたあとの感想なんかも後日書ければとも思っています。

分かってきたこと

この文章を書いている時点(6/6)では、6/1に予約が始まり4ヶ月後に発売という状況で大分製品の概要が見えてきました。とりあえず気になっていたことを中心に列記すると、
・実機の1/4の精巧な外装にRaspberryPi A+(CPUはARM11 700Mhzシングルコア)を内蔵
・搭載するソフトウェアとしてMZ-80Cのハードウェアをエミュレーションするエミュレータとそれに(ソフトウェア的に)外部からアクセス可能なSmileBASICを搭載(プラットフォームがRaspbianかどうかは不明)
・SmileBASICはエミュレータの制御専用というわけではなく、RaspberryPiの機能(画面制御、GPIO等)全般へのアクセスが可能のように見える(詳細は不明)
・エミュレータのIPLは互換ソフトウェアで、SHARP純正のIPLまたS-BASIC等は搭載しない
・テープメディアはイメージファイルが使用可能で、microSDカード経由でイメージファイルを使用
・MZ-80Cのエミュレータは改造不可(らしい、後日再現性に問題があった場合のアップデートの有無も不明)
という感じでしょうか。

コンセプトは?

実のところ私にはコンセプトが見えにくいな、というように感じています。
一番最初の報道ではファミコンミニをみて、同じようなものを昔のPCで作りたいね、というのが開発の動機とのことなので、おそらく後付けであろう販売コンセプトが曖昧なものになるのは無理からぬようにも感じますが、
飾っておきたいだけなら外装だけあればよくてエミュレータ機能は不要。一方で、エミュレータとして使うには結局実サイズのキーボードとディスプレイは必要になること、必要に応じmicroSDのマウントが必要なことを考えると取り回しにおいて外装はむしろ邪魔なような気がする。
それに、製品発表会では、SmileBASICからGPIO制御のデモもあったようですが、GPIO使うにはそれこそ外装は邪魔なだけですよね。。。

ガワを売りたいからエミュレータを載せたのか、有料のエミュレータとして差別化としてガワを用意したのかちょっとはっきりしない感じです。
製品の軸に汎用性の高いRaspberryPiを据えて、また言語としてSmileBASICを乗せていて、売り文句が「MZ-80Cのエミュレータです。でも他にもいろいろ出来ます」的なものになり、その割にエミュレータを超えていろいろやろうとすると外装が邪魔になってしまうというちぐはぐさを感じます。

またどのように使って欲しいかというところで、当時雑誌に掲載されていたマシン語を入力して云々とか、若い人たちにこそ使って欲しいという発言があったようですが、そもそも当時の雑誌を今もとっておいている人がどの程度いるか、その人たちのうちどれだけの人が雑誌に掲載されているダンプリストを改めて入力する気力があるでしょうか?(著作権的に考えて、その途方もないダンプリストの羅列を入力して実行可能になったとしてもインターネット上に配布することは難しいでしょう。自己満足のためだけに果たしてそれが出来るだろうか...)
若い人たちにも使って欲しいとはいっても、当時のハードウェア資料など到底入手困難ですし、苦労して入手したところで結局のところ何が出来るの?という話になってしまう気がします。

オリジナルの自作プログラムであればインターネットで公開することも可能でしょうが、最低限、エミュレーションしているハードウェアのメモリマップ、IOマップ、機能ブロック等のハードウェア情報、Z80に関してインストラクションと簡単なプログラムを交えた解説マニュアル、それと、出来ればS-BASICで書かれたプログラムのSmileBASICへの移植ガイドみたいな資料が欲しいところですが、付属マニュアルがどの程度用意されるのか現状見えてきません。
あと、新規にプログラムを作るのであれば、Z80のアセンブラも欲しいところです(この辺はオープンソースであるのかな?)。
この辺の情報は既に予約が始まった現状では新たな情報として発表されることはないかもしれないですが発売後どうなっているか興味があるところです。

販売方法に関して思うこと

(権利関係も含め実現できたらという前提で、そこが一番の問題だとは思いますが...)
外装とエミュレータをセットとして一緒に売るのではなく、エミュレータと外装は別々の製品として売った方がよかったのではないかと思います。
例えば、RaspberryPi用のSmileBASICを基本的な軸として、プラスでSmileBASICからアクセス可能なレトロPCエミュレータ共通プラットフォーム+複数機種のエミュレータという形で開発し、ソフトウェアはモジュール単位での販売、外装は雰囲気作りのオプション扱いで複数用意する中から(現時点でもMZ-80Cの他にPC-8001やFM-7も想定にあるわけですし)気に入ったものを選んで買ってもらうという形をとった方がよかったのではないかと思います。
そうすれば、SmileBASICからGPIOを制御したいだけなので外装(とエミュレータ)はいらないとか、外装だけ複数欲しいといったニーズに柔軟に応えられると思うのですが。
販売見込みがつかめない中でそこまで細分化した売り方はリスクが高いのかもしれないですけどね。それでも売り方にはもう少し考える余地があるように思えます。
PC-8001やFM-7はMZ-80Cの売り上げ状況次第と言っているようですが、当時のPCはそれぞれにオリジナリティがあって当時持っていたかいなかったかで思い入れは大分違います。
確かに三者のメーカのうち一番柔軟に対応してくれそうなのはSHARPそうなのでMZが一番手なのはなんとなく分かるような気がしますが、MZ-80Cが売れないと次がないといわれてさほど思い入れのないMZ-80Cを購入し、次の本命を買うのにもまた決して安くない価格を払うというのはちょっとどうなのかなとは思います。 (実情としてやむを得ないことは理解出来ないわけではないですが...)

個人的にはエミュレータという部分をバッサリと切ってしまって、Raspberry+SmileBASICだけのほうが製品コンセプトが見えやすくてよかったのではないかと思うんですけどね(SmileBASIC for RaspberryPiでも十分魅力的な気がします)。
でもそうすると作り手サイドが「作りたかったもの」から外れてしまうのでしょうか。

で、買うのか?というと

私にとって最初のPCとの接点は小学生の頃親に買ってもらったMZ-2000で、MZ-80Cに関しては実機すら見たことがなく思い入れもないPCなので、そもそも欲しいと思っていませんし買いません。
何より、野良PCエミュレータを1から作った経験上、エミュレータ上で遊ぶくらいならエミュレータを作る方が遙かに面白いということが分かってしまったのでエミュレータなど買ってまで欲しいという気持ちにはなりません(買うぐらい欲しいものだったら自分で作る!)。
まあそれを差し引いても、多分私が所有したPCの中でもっとも思い入れがあるMZ-2000のエミュレータが出ても多分買わないでしょう(ちなみに実機のほうはデータレコーダのピンチローラが溶けて使えなくなったためずいぶん前に処分してしまいましたが...)。
思い入れが強いほど実機とのちょっとした差に不満を持ってしまうでしょうから。(自分で作ったものなら自分の力量に不満の矛先が行き諦めもつきますが、お金を出しちゃうとね...)

じゃあ何でこんな文章を書いたの

散々悪態をついて買わないとまでいっておいて何でこんなことを書いたかというと、それでもこうしたものを製品化することを決断した、その英断は賞賛しているんです(これが一番書きたかった)。
HAL研究所といえば誰もが知るように高い技術で古くからPCの周辺機器やソフトウェア開発を行っている老舗に企業で、そうした会社が過去のPCのソフトウェアエミュレータに商品価値を見いだし実際にメーカとの折衝を行い製品化にこぎつけるということには大変な意義があると思っています。
予約状況次第では発売までの4ヶ月で今後メーカや当時技術書を出版していた出版社の柔軟な判断を引き出せる可能性もありますし、古いPCに光明を与える動きに先鞭をつけてくれるのはエミュレータを作る身としてうれしく思いますし、今後の展開にも期待しています。

そんなわけで、応援はしています。売れて欲しいとも思います。。。でも自分が欲しいと思うにはちょっと魅力が足りないかな。。。まあ、どうしても作り手として見ちゃうのでね。。。
せめてメーカ純正のソフトウェアが搭載されていれば、野良エミュレータと決定的に異なる魅力も出てきますが、現状それも難しいようですし。。。この辺はメーカの柔軟な対応を願うばかりです。

余談です。書きながらこんなことを考えてみました

話は全然変わりますが、ソフトウェアエミュレータというのは開発にゴールがないもののように感じています。
所詮はソフトウェアでハードウェアの動きを再現させるものなので自ずと限界があり、多くの妥協を余儀なくされます。
妥協しなければならない要因は開発者の力量もさることながら、ホストとなるハードウェアの性能の限界だったりもするので、場合によってはハードウェアの性能向上によってクリアできるものもあるかもしれません。
妥協を余儀なくされてた場合にどこを妥協するかは作り手の実力であったり感性であったりいろいろですが、そうした妥協が使う側にとって必ずしも許容できるものばかりとは限りません。
私の場合はというと、作ったエミュレータの最大の使い手はもっぱら私自身なので、私が必要とする機能(具体的にはPEGCのプレーンモードなど)にはできるだけ妥協のないように作っていますが、割とどうでもいいと思っているところは割とどうでもよい作りになっています。こうしたなおざりにしている部分が使う人にとって我慢ならないことになっているかもしれません。

何が言いたいかというと(あまり前提になっていませんが)、エミュレータの再現度の善し悪しに関して客観的指標がないということです。
そこでより多くの人が納得できる、より再現性の高いエミュレータを作るというコンセプトで、特定のPCをターゲットとしてエミュレータコンテストを開くというのはどうでしょう。(どうでしょうと言ってもおおっぴらにやるにはメーカの理解が不可欠ではありますが...)

エミュレータ部門
 改造部門
  既存のオープンソースのエミュレータをベースに改造したもの
 新規部門
  新規開発で作成したエミュレータ
キラープログラム部門
 実機で完動するプログラムで、エミュレータの再現度を測る指標になるプログラム

エミュレータ部門の評価は、客観的な基準としてあらかじめ基準として用意したプログラム、およびキラープログラム部門に登録されたプログラムをもっとも実機に近く再現出来たかによって行う。
キラープログラム部門の評価は、エミュレータ部門に登録されたエミュレータでもっとも実機に近い再現を「させなかった」で行う。

みたいなことを考えてみましたけど、まあ参加者はいないでしょうね(笑
最後に他愛もないことを書いてしまい失礼しました。
ところで、昔は雑誌なんかでプログラムコンテストのようなものを目にしましたが、最近はあるんでしょうかね?オープンソース全盛の今だと、自分で考えるよりGitHubあたりで見つけた方が簡単で優秀なプログラムが手に入ると思い込んでいるんでしょうか。個人的には必ずしもそんなことはないと思うんですけどね。簡単なテーマでもよいからプログラミング技術を競い合うような場があってもよいのではないかと思います。まあ私が知らないだけかもしれませんけど。