2023年04月10日の日記です

目次

04-10 続 X68000Z
04-10 素人プログラマから見たX68k


続 X68000Z  2023-04-10 10:01:59  コンピュータ

▲目次へ ⇒この記事のURL

X68000Z (以下 X68kZ)が届いて遊んでいるが、思っていた以上に楽しい。


僕はこういうエミュレータにそれほど興味がなかったので、コレクションとして置いておくだけになると思っていた。

せっかくだから少し使ってみよう、とセットアップしたら、思った以上に遊べてしまっている、という感じだ。


当初、X68kZ は「ミニファミコン」や「メガドラミニ」、もっと言えば「ミニPC-8001」と同じように、ゲームを何本か内蔵した形で発売するつもりだったようだ。

でも、当時のファン…所有していた人や、高くて買えなかったが憧れていた人たちからの強い要望を受けて、「パソコンとして」のエミュレータとなった。


もっとも、届いたときの最初の日記で書いたように、ゲーム機としてのモードと、パソコンエミュレータとしてのモードを切り替えられる、二重人格マシンでもある。


付属のゲームは2つしかない。これらはゲーム機としてのモードで起動し、動作が保証される。

一方で、エミュレータのモードでは動作保証がないが、ディスクイメージがあれば好きなプログラムを動作させられる。


ネット上の反応を見ると、「付属ゲームが2つしかない」ことについて失望している人もいるようだ。


メガドラミニ2なんて、ずっと安いのに60本のゲームが入っている。

X68kZ は高いのに、2本しかついてこない。




X68k は、現役当時「業務用のゲームが完全移植できる」パソコンだと言われていた。

ゲーム好きなら欲しいパソコン。でも、高性能なだけに、非常に高価でもあった。


今回、X68kZ を入手した人の中には、当時あこがれていたが買えなかった、という人も多いようだ。

そういう人は、当時のゲームが遊べない X68kZ に失望したのだろう。


でも、僕が「思った以上に楽しい」と言っているのは、エミュレータモードの存在なのだ。

ゲーム機としてのモードは、あまり重要ではない。だから付属ゲームが少ないのも、それで構わない。




エミュレータなら Windows 用のもので十分ではないか、という人もいるだろう。

まったくその通りだ。僕もそう思っていた。

もっと言えば、X68kZ のエミュレーションは最低限の精度しか持っておらず、Windows 用の方が正しい挙動を再現できる。


でも、小さいウィンドウの中で動くんじゃないんだよ。

マウス操作するために、エミュレータ内のマウスと、Windows のマウスを切り替える必要はないんだよ。


いや、それだって全画面モードを使えばいいだけの話。Windows 用のエミュレータで十分。まったくその通り。


だから、あとは単に「思い入れ」と「思い出補正」という言葉に尽きるのだろうと思う。

これは非常に個人的な体験に基づくものになるので、万人に勧められるものではない。




ここで、付属する2本のゲームについて書いておこう。


まず、グラディウス。

当時ゲームセンターで大人気だったゲームだ。発売は 1985年。


ちょうどファミコンブームが始まった頃。

ファミコンは、ゲームセンターで遊ぶようなゲームが家でも遊べる、という触れ込みで売れ始めた。

実際、発売時のキラータイトルであったドンキーコングは、ゲームセンター向けと遜色のない出来だった。(全4面構成が、3面構成に減らされていたけど)


グラディウスも、翌年(1986)にはファミコンに移植された。

原作の雰囲気をよく活かした移植ではあったが、見た目もゲーム性も、随分と違うものになっていた。


ほかのパソコン向け移植も発売された。

MSX 版は、ファミコンとは違う方向性の移植で好評だった。しかし、やっぱり本物とは違う。

それ以外のパソコン向けは、ファミコン版をベースに、更に劣化させた移植だった。


あぁ、やっぱりゲームセンターのゲームを家で遊ぶ、なんていうのは夢だったんだ。

多くのゲームマニアが落胆した、その年の年末、開発中の X68k が公表された。


そこでは、ゲームセンターのものとそっくりなグラディウスが動いていた。


X68k の実際の発売年は 1987年春だが、グラディウスは「X68k ならこんな事ができる」と見せつける、優れた技術デモだった。


ひるがえって現代。

今でもグラディウスは人気で、Nintendo Switch や PS4 にもゲームセンター版の、かなり完璧な移植が発売されている。


だから、ゲームを遊ぶことが目的であれば、わざわざ X68kZ で遊ぶ必要はない。

X68kZ にグラディウスが付属する、というのは、X68k にグラディウスが付属したことに対する、オマージュだ。

X68k はここから始まったのだ。


そしてもう一本。超連射68k。

こちらは、1997年に発表された同人ソフトだ


X68k シリーズは、1993 年発売の X68030 で終了している。以降後継機は出ていない。

専門誌であった Oh! X も、1995年末で休刊している。


そのさらにあと、1997 年に発売されたソフトなので、実際のところ遊んだことのある X68k ユーザは少ないはず。少なくとも、僕は X68k では遊んでいない。

ただ、作者自身によるWindows 版が 2001年に公開されていて、僕はそちらは遊んだ。


つまり、懐かしのソフト、というものではないし、遊ぶことが目的であれば、Windows でも遊べる。


しかし、当時話題になったのは覚えている。

同人ソフトだからこそ、市販ソフトにはないような技術的チャレンジを行っている

巧妙なプログラムにより、X68k の限界を超える数のキャラクタを表示しているんだ。


だから、これが動けば、X68kZ のエミュレーション能力がそれなりのものである、という証明にはなる。

同時に、X68k 最後の話題作を付属させることにもなる。



さて、X68kZ には、3つの SD カードが付属する。

2つは、上に書いたゲームが入っている。

残る1つは、パソコンエミュレータとして起動するための OS だ。


これは、X68kZ の制作者からのメッセージだ。


ゲームにより、X68k の最初と最後を示した。

OS は、その中間を埋めるもの。


しかし、OS というのはゲームと違い、そのまま楽しむものではない。

「何かを起動するためのプラットフォーム」だ。


君なら、何を起動する?


この問いに答えられる人は、X68kZ を楽しむことができる。



「無いものは作る」


この言葉は、X68k を象徴するものとして語られる。

僕が過去に X68k について書いた記事でも多用している。

書いた当時は X68k を知るものも多く、この言葉の真意が伝わりやすかった、と思う。


この言葉は、X68kZ の宣伝文句でも使われていた。

しかし、すでに当時を知るものは少ない。

言葉自体が神格化して、ねじ曲がっているように思う。



X68k は、圧倒的に「無かった」。


ソフトの数で、当時絶対王者だった PC98 に負けるのは当然。

ライバルとされていた FM-Towns にも、圧倒的に負けていた。

X68k はゲームに強かった、と言われるが、そのゲームの数ですら負けているのだ。


でも、X68k は、ソフトを持っていないが「ソフトを作りやすいハード」を持っていた。

後で詳細を語るが、使い始めの素人でも、それなりのソフトを作れたし、発表できた。


無いものは作る、というのは、なんでも作ってしまう熱い技術者集団を示す言葉ではない。

無いから仕方なく自分たちで作り、不格好でもいいから環境を整えようともがいた軌跡を示す言葉だ。


市販ソフトの少ない X68k は、こうしたソフトを中心として回っていた。

X68k を再現する、というのであれば、市販ソフトの収録よりも、こうしたソフトを収録しないといけない。


実際、超連射68k は同人ソフトなわけだが、先に書いた通り当時遊んだ人は少なかったはずだ。

当時遊ばれたものは…市販ではないからこそ、権利関係などが確認できずに収録は難しいだろう。


当時の X68k を懐かしむ「ミニ」を作るにあたり、ゲームではなくエミュレータをメインコンテンツとする、というのは大英断だったと思う。



ネット上では、当時自分が作ったソフトを公開している人がいる。

僕も公開している


ゲームに限らず、探せばいろいろある。

そういうものを探して動かしてみるのが楽しい。


最初に書いた通り、Windows のエミュレータでも遊べる。そちらの方が再現性も高い。


でも、遊び終わって次のソフトを見るときに、「本体上のリセットスイッチを押す」というのが、当時を知っているものにとっては、たまらなく懐かしい。


Windows のエミュレータではこうならないのだ。

それだけで入手した意味があった。


何度も書くけど、これは思い出補正だ。当時持っていた人間だから懐かしめるものだ。

憧れていた人が買って、「ゲームが2本しかない」と嘆く気持ちはわかるのだ。


でも、ファミコンミニも、メガドライブミニも、そうでしょ?

今更昔のゲームが遊びたいというよりも、思い出を懐かしみたい、という側面が強いと思う。


思い出がない人間には、懐かしめない。

X68kZ だってそれは同じ。それだけのことだ。



X68kZ の話としてはこれで終わりなのだけど、途中で書いた話の詳細を、次の記事に書きたいと思う。


X68k が、素人でもプログラムを組みやすい環境だった、という話だ。


こういう「使い勝手」の話は、スペックに現れない。

ずっと昔に自分が書いた記事でもあまり取り上げていなかったので、今更ながら記しておこうと思う。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

素人プログラマから見たX68k【日記 23/04/10】

続 X68000Z【日記 23/04/10】

別年同日の日記

06年 バス

20年 続・テレワーク


申し訳ありませんが、現在意見投稿をできない状態にしています

素人プログラマから見たX68k  2023-04-10 10:48:18  コンピュータ

▲目次へ ⇒この記事のURL

先の話の続き


当時の状況を記そう。

当時、ホビープログラマが最初に使う言語は BASIC だった。


8bit 機では、OS は存在して無くて、起動すると ROM に入っている BASIC が動き始める、というのが普通だった。

シャープ製マシンは ROM に入ってなかったけど、本体を買うと BASIC が付属している点は変わらない。


16bit でも BASIC が付属しているのは当たり前だった。

PC98 は、PC88 の BASIC 互換マシンとして作られた。当然 ROM BASIC もあるし、DISK BASIC 、DOS BASIC もある。


X68k にも、X-BASIC が付属した。


今となっては、当時の BASIC の環境は忘れられかけている。


文法は、今でも残っているね。BASIC という言語自体は残っている。

でも、「環境」としては、今と全然違う。


BASIC は OS と、エディタと、デバッガと、実行環境が混然一体となったものだった。


ソースコードをエディットしている最中に、命令の動作詳細を知りたくなったとする。


その時は、その場で命令を実行してみることができる。

実行して、動作を確認して、納得したらソースコードに組み込む。


プログラムが出来たら全体を実行してみるが、途中でエラーで止まってしまったとしよう。


原因調査のため、止まったあたりのソースコードを表示する。

どうも、そこで使われている変数の内容がおかしい気がする。


その場で、変数の内容を表示する命令を打ち込むと、命令が実行され、変数の内容が表示される。


こうやってデバッグを進めることができる。




この環境、プログラムに不慣れな初心者にとって、めちゃくちゃ使いやすかった。


ただ、非常に大きな欠点があって、プログラムの実行速度が遅かった。


いつでもコマンドを実行できる、というのは、コマンドを解釈して実行する機構があるためだ。

そして、プログラムはこれを連続して動かしている。文法解釈をいちいち行いながら動くので、遅いのだ。


一応、BASIC コンパイラというものもあった。

先に書いたように、BASIC はエディタとデバッガと実行環境を総合したような環境で、この環境自体が大きい。


完成したプログラムを BASIC コンパイラに通すと、OS から起動できる実行形式のプログラムを生成してくれる。

この際、速度も改善する。


でも、そもそも BASIC って、初心者にはわかりやすい反面、コンパイラで速度を上げたりしにくい構造だったのね。

PC98 の DOS BASIC の場合、コンパイラを通しても速度は3倍程度にしかならなかった。




X68k の X-BASIC は、当時の他のコンピューターの BASIC とは、文法面から少し異なっていた。


とはいえ、BASIC ではある。先に書いたような、エディタとデバッガと実行環境が統合されたような、初心者でも使いやすい環境は実現されていた。


この、「少し異なる文法」がミソだ。

当時は、パソコンユーザーにはまだ C言語はあまり普及していない。

しかし、X-BASIC の文法は、C言語に非常に近いものだったのだ。


そして、SHARP 純正の C 言語が発売される。

このセットには、X-BASIC のプログラムを C に変換するプログラムが含まれていた。

もちろん、Cコンパイルすれば、機械語の実行ファイルになる。


これは素晴らしい「BASIC コンパイラ」だった。


先に、BASIC は文法を解釈しながら実行する、と書いた。

それに対し、C 言語は、文法解釈を先に行い、結果として「CPU が直接理解できる」機械語プログラムのファイルを生成する。(この作業をコンパイルと呼ぶ)


結果として、プログラムの実行時には、余計な動作が一切入らない。

このため、非常に高速に動くのだ。


PC98 の BASIC コンパイラのような3倍程度ではなかった。

ちゃんと速度を測ったことは無いけど、超高速。機械語として動作するからね。


初心者が気軽にプログラムを作り始め、最終的に十分な速度で動作するプログラムを作れたんだ。

これは、他のパソコンにはない環境だった。




さて、実行速度が速ければプログラムが組めるようになるか、というと、そんなことは無い。


ゲームを作りたいと思ったら、キャラクターを表示しないといけない。


PC98 の BASIC でも、画面に描いたキャラクターを動かすくらいのことはできた。

でも、全てをグラフィックとして扱う必要があった。

キャラクターを描いて、消して、少しずれたところにまた描いて、の繰り返しだ。これで動いて見える。


ただ、「消して」のところで、背景も消える。

「描いて」のところでも、キャラクターを含む矩形全体を描くので、キャラクターの周囲が四角く消えてしまう。


背景があるような華やかなゲームを作るのは、BASIC では事実上無理だった。


じゃぁ、一念発起して機械語を勉強してみようか…とすると、急に高い壁が立ちはだかる。

詳細を書くと長くなるので、過去に書いた記事を紹介しておこう。

当時のパソコンは、一般的に横8ドットをまとめて扱う


BASIC でキャラクターを扱うときは、このことを気にしないでいいようになっている。

でも、機械語だと知らないとダメだ。

適当にグラフィックを扱うと、周囲のドットを破壊してしまうので、それを解消するプログラムが必要だった。


とにかく、ゲームを作りたくてキャラクタを動かそうとすると、それだけでも大変だった。


これ、ゲームに限った話ではない。

ちょっとグラフィックを扱うツールを作ろうと思ったら、マウスカーソルとか、選択範囲とかでグラフィック表示が必要だ。


しかし、処理対象のグラフィックを壊すわけにはいかない。

一旦グラフィックをメモリに退避したり、いろいろ複雑なプログラムを作る必要がある。


もっというと、これは PC98 に限った事情だが、画面を構成する情報を「設定」出来ても「読出し」できないものがあった。

画面を構成する、4096色中 16色のパレットは、設定専用で読み出せないのだ。


ということは、「現在表示している画面を加工して、セーブ」という操作はできない。

グラフィックを加工するフィルタを作りたければ、それだけで、ファイルの読み込み、グラフィック圧縮フォーマットの展開、画像加工、グラフィックの圧縮、ファイルの書き出し、までをセットで作る必要がある。


初心者が何かしようと思っても、余りにも壁が高い。

それが当時の、普通のパソコン環境だった。




X68k には、こうした制約がなかった。


キャラクターを動かしたいなら、スプライトを使えば良い。

動かす際に、以前描いたものを消す、というような操作は必要ないし、背景を壊す心配もない。

周囲だって、適切に「透明」として背景を見せてくれる。


グラフィックを扱いたいなら、1ドットは1ワード(16bit) に対応していた。

1ドットを構成するメモリが、他のドットと共有されることは無い。


さらに、グラフィックを複数重ね合わせることもできたので、グラフィックの範囲指定などで枠を表示しても、グラフィックを壊さない。


こちらも詳細は過去の記事に譲ろう

とにかく画面関係が豊富で、扱う際に何かに気をつけないといけない、というような制約が少なかった。

(全くないとは言わない)


先に書いたように、グラフィックを加工するプログラムを作りたい、とする。


画像の読み込みと書き出しは、すでに存在しているプログラムに任せることができた。

操作パレットや範囲指定の枠表示などは、表示中のグラフィックに影響を与えないように描けた。


グラフィックの操作は、1ドット単位でメモリの読み書きを行えばよいだけ。


あとは、処理の中心となる「加工」部分をどう作るか。

このアイディアだけに集中すればよい。


初心者でも、自分が作りたいプログラムを作りやすい環境だったんだ。




もう一つ、OPM ドライバの話を書いておこう。これは大発明だったと思う。


また BASIC の話に戻ってしまうのだが、日本のパソコンのBASICは、音楽演奏機能が充実していた。


これ不思議で、海外のパソコンには見られないんだよね。過去に調べたことがある

ともかく、日本ではパソコンの楽しみの一つに音楽演奏があり、パソコン用の、文字の組み合わせで楽譜を表現する「MML」と呼ばれる記法が出来上がっていた。


当時の MML を使った演奏は、BASIC の中に組み込まれていたのだけど、演奏中は他の動作が止まるのが普通だった。

非力な CPU では、そうしないと演奏のテンポとかを保証できなかったからだろう。


ところが、X68k の MML 機能はそうではなかったんだ。

演奏を開始すると、演奏を続けたままプログラムの動作を続行してしまう。

これにより、ゲームに BGM が付けられた。


最初は BASIC の中だけの機能だったのだけど、すぐに音楽機能は「OPM ドライバ」という名前で切り離され、OS 標準機能の一部になった。


これにより、「全ての」プログラムが、気軽に BGM をつけられるようになったんだ。


これもまた、素人がゲームを作る上では強力な、超強力な機能だった。




他の PC でゲームを作ろうと思ったら、速度を確保することが難しく、キャラクターを表示することが難しく、BGM をつけることも難しい。


この問題が、最初から解決していたのが X68k という環境だ。


だから、素人でも作品を作れたし発表できた。


ゲームに限らず、自分が興味を持つ分野だけを、集中して取り組めた。

それ以外の部分は、すでにあるものを使えばいい。


大根おろしPRO68k」とか、当時有名な PDS だった。

今でもインパクトで覚えている人が多いようだ。


内容見ると、超くだらない。白い四角をマウスで動かして、画面中央の「おろし金」にこすりつけると、四角が小さくなって白い点々が増える。ただそれだけ。

でも、おろし金のギザギザと、白い点々と、四角い「大根」はちゃんと重ね合わせ処理が行われているのね。

X68k だから別画面に描いているだけだと思う。でも、PC98 でこれを作ろうと思ったら大変な処理になる。


こうした「思いつきの冗談」みたいなものでも、すぐにプログラムが組めてしまう。




そして、もう一つ。重要なピースがある。

X68k は、市販ソフトがほとんどなかった、ということだ。


パソコンを使って何かをしようと思ったら、普通はそれができるソフトを探すだろう。

でも、X68k には市販ソフトがなかった。探すことすらできなかった。


じゃぁ、自分で作るしかない。

仕方がないからやるだけだし、自分用だから多少出来が悪くても構わない。


先ほど書いたように、BASIC でもそれなりのものが作れてしまうのが、X68k だった。

とにかくプログラムを作ってみて、目的を達成する。


そして、自分が困っているのだから、こんなプログラムでも使う人がいるかもしれない、と、当時流行し始めたパソコン通信にアップロードする。

もしくは、雑誌 Oh! X に投稿する。ディスクマガジン電脳倶楽部に投稿する。


X68k にはとにかくソフトがなかった。多少出来が悪くても、動くだけでありがたい。

電脳倶楽部の編集長も、「動いているプログラムは良いプログラム」と言っていた。

多少出来が悪くたって、ないよりはある方がずっといいのだ。


そうか。出来が悪くても、ある方が良いのか。

これが、X68k の当時のユーザーの認識だったと思う。


だから、自分が何か作ったら、出来が悪くても、恥ずかしげもなく公表する。

そういうソフトを見た人は、そのレベルでいいんだ、と、また出来の悪いソフトでも公表する。


この、とにかく公表するし、みんながそれをありがたがる、という構図は、現代でもなかなか見られない。


これが、良いスパイラルを産む。


公表して、みんなにありがたがられた人は、また何か作ったら公表しようと思う。

次の作品へのモチベーションになる。


そうして作品を作り続ける。作り続けるうちに、技術も上がり、もっと良いものを作れるようになる。


X68k のソフトウェア環境は、こうしてユーザーたち自身の手で作られていった。


これが、「無いものは作る」と呼ばれる文化の正体だ。


決して、技術力の高い人間が、なんでも作ってきた、というような文化ではない。

仕方がないから出来の悪いものでも作り、公開し、泥臭く環境を整えていった文化だ。


結果として、すごい人を育てる良い環境になった。

でも、最初からすごかったわけではない。




最後に、今の初心者が X68kZ を使ったら、同じように上達できるか? ということについて。


当時「使いやすかった」と言われる環境だから、今から自分も何か作ってみたい、という人は少なからずいるようだ。


しかし、ここまで読んでくれた人には、答が分かると思う。


「プログラムを作りやすい」というのは、あくまでも当時の他のパソコンに比較しての話。

今なら、何も古いマシンのエミュレータを使う必要はない。

Unity とかを始めて見るのがいいだろう。初心者の内は Scratch でもいい。


どちらも、他の人に作品を公表しやすい環境だ。

X68k がそうであったように、出来が悪くても恥ずかしげもなく公表し、評価をもらえることが大切だと思う。


プログラムに限らない。絵でも音楽でも、今は昔に比べてずっと公表しやすい。


ただ、なんでも有難がられた X68k と違い、今はソフトも情報もあふれている。

出来が悪いと容赦なく叩かれるし、ちょっと初心者に厳しい環境かもしれない、とは思う。



▲目次へ ⇒この記事のURL

同じテーマの日記(最近の一覧)

コンピュータ

関連ページ

素人プログラマから見たX68k【日記 23/04/10】

続 X68000Z【日記 23/04/10】

別年同日の日記

06年 バス

20年 続・テレワーク


申し訳ありませんが、現在意見投稿をできない状態にしています


戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -