「FreeWay」へ
むかしむかし、テレビもパソコンのディスプレイもみんなブラウン管だった時代、ブラウン管画面の焼き付きを防ぐためのソフトウエアとしてスクリーンセーバーというものがありました。 スクリーンセーバーは、ランダムに図形が画面を飛び回ったり、さまざまに変形したりして観賞用としても楽しいものが多かったのですが、その中に「FreeWay」というのがありました。 星空の下をひたすら車で走っていくというしごく単純なセーバーでしたが、大好きでした。部屋を暗くして静かな音楽をかけながら見ているとすごくいやされたのです。 バックの音楽はユーミンの「埠頭を渡る風」が多かったかな。 と、そのうちこのスクリーンセーバーを普通の実行ファイルとして自分で作ってみたくなってきたのです。
むかしむかし、そもそもパソコンはおもちゃだったのです。おとなも子供も楽しめるおもちゃ。 30代から40代にかけて私もこのパソコンというおもちゃで思い切り楽しませてもらいました。そのころのパソコンはもちろん8ビットの時代。インテル社の16ビットが出てくる前の天国のような時代でした。 ザイログ社の8ビットCPU、Z80が世を席巻していました。 しかしその後、CPUは急激に高度化して、16ビットから32ビット、そして64ビットへとすすみ、同時にグラフィックや各種デバイスも高度化し、もはやおもちゃではなく各種産業で中心となって使える道具となってしまいました。 「人間がパソコンを使う時代」から「人間がパソコンに使われる時代」になってしまいました。人間の心を開放してくれる楽しいホビーとしてのパソコンが、人間の心を消耗させる仕事のツールになりはててしまったのです。 そのころのパソコンユーザーたちの悲しみを代弁してくれた祝一平さんの有名な文章を載せておきますので読んで頂ければと思います。(なお祝さんは若くして亡くなってしまいました。)
「終わりのない物語」祝一平
そんなパソコンが天国だった時代、もちろんベーシック言語もありましたが、やはりCPUを直接コントロールしようと思えば、機械語(マシン語)です。私も機械語でたくさんのプログラムを組みましたが、先の「FreeWay」も原作者はマシン語で書いています。
私が「FreeWay」に出会ったのは、ウインドウズ用に移植されたものを見たのが初めてでしたが、原作者のようにこれを機械語で書く自信はまったくありません。原作者の力量にひたすら感激するばかりです。
というわけで私が「FreeWay」に出会ったのはかなり遅く、ウインドウズ用に移植された21世紀になってからのことなので、最近の高速CPUの力があればベーシック言語でも十分動くプログラムが書けそうだと思ってしまったわけです。それで、Visual Basic 6.0でプログラムを書き始めました。 もちろん原作者の機械語プログラム(アセンブリコード)も、ウインドウズに移植されたプログラムコードも、一切持ち合わせていませんので1からすべて作り始めました。 プログラムを書き始める前、たぶんこんなふうにすれば良さそうだと思ったプログラムデザインをノートに書き留めていたのが20年以上たった最近になって出てきたので、参考にそのノートメモの画像もついでに載せることにしました。まるで三角関数の嵐ですが、文系出身の私は三角関数は中学・高校で少しかじっただけなのでまずはそこから苦労しました。理系の人ならなんてこともないのでしょうが。 幾何学やら三角関数やら人生に何の役に立つんだ!と思っている文系の人!そうです、いつか役に立つ日がくるんですよ。
ノートメモ1
ノートメモ2
(このメモの変数などはベーシックで使っていたものです。あとのC++では多少変更があります。)
そうやってやっと完成したのが次のようなものです。
Project10.exe
プログラムコード
(EXEファイルは、右クリックメニューから「名前を付けてリンク先を保存」を選んでダウンロードして下さい。)
(またプログラムを終了させるにはマウスをクリックしてください。)
しかしながら、20年もたつと時代も変わってしまうもので、去年(2024年)久しぶりにこの実行ファイルを起動させてみたらなんとエラー!どうやら最近のウインドウズには昔のダイレクトXの実行に必要なDLL(dx7vb.dllあるいはdx8vb.dll)が装備されていないようです。もちろん昔のウインドウズには装備されていてそこからとってきたら動くのですが、そんな面倒なことをしなくても最新のウインドウズ用にプログラムを書き換えてしまえということになりました。 私も来年は80歳になるし、そろそろ自分のサイトも更新できる分は更新しておこうというわけです。(フラッシュプログラムだけはどうしようもなかったんですが。) というわけで、Visual Studio 2019 を使って今度はC++で組んでみました。プログラムコードを見てもらったらわかりますが、前のベーシックのコードに比べてかなりすっきりしています。これはC++に変えたからではなくてダイレクトXが昔よりだいぶん進化したことによるものといえます。 そんなこんなでできたものが次のようなものです。キーボードのスペースキーを押すと終了します。
32ビットOS用低解像度低速版
32ビットOS用低解像度高速版
64ビットOS用高解像度低速版
64ビットOS用高解像度高速版
低解像度プログラムコード
高解像度プログラムコード
まとめてダウンロード(FreeWay.zip)
(これらのプログラムの方はすべてスペースキーを押せば終了します。)
高速版と低速版のちがいは、ただ単にWaitTimerが20か50かだけのちがいです。また低解像度は640×480ドット。高解像度は1920×1080ドットです。 高速版はスピードをあげたらこんなになるよというだけのものなので、もちろんおすすめは高解像度低速版でのんびり走るのがいちばんです。
最後に、FreeWayのオリジナル作者であるFKS氏のものは手元にありませんが、ウインドウズ用に移植なさったSugahara氏のものはVectorから入手可能です。
Vectorダウンロードサイト
Delphiで作られたようですが、街灯もあるし、道路の起伏もあってすばらしいものです。ただ私のほうは1からスタートしたので息切れしてなんとかここまでたどりついた感じですが、もしどなたかの参考になればと思いコードを含めて公開させて頂きました。