TRONプロジェクトのパソコン用規格「BTRON」仕様に準じたOS「B-right/V」を搭載した「超漢字V」用に「DOOM」を移植しました。
あまりにもややこしいんで簡単に言うとTRON OS版DOOMの誕生です。いや、本当にまだDOOMってTRON向けに移植されてないよね?一応「TRON OS DOOM」「トロンOS DOOM」「超漢字V DOOM」と一通りググってから移植作業したんだけど。
超漢字V上で遊ぶ価値があるのか、環境整えるのが面倒とか、音が単音のブザーしか出ないとか、この際些細過ぎる難点は全部捨てて「トロンOSはWindowsより優れていた」と主張している人達は是非遊んでください。
仮想環境のVMWare上で動かしている動画
TRON DOOMの実行ファイル(要:超漢字用セルフ開発環境もしくはUNIXエミュレータ実行環境単体)
ソースコードはDOOMの移植性を更に簡単にする「doomgeneric」をベースに自分で最適化していたものを使用。doomgeneric_btron.cが超漢字依存の処理部分、i_sound_btron.cがブザーによる効果音部分、それにMakefileとなる。
以下TRON版DOOMの仕様
- 「超漢字V」で開発、およびテストプレイを行ったが、開発環境自体は超漢字4のもの(というか4の時点のまま開発環境がアップデートされていない)なので「超漢字4」でも動くと思う。
- フレームレートは上限35fps。オリジナルDOS版と同様。・・・のはずなんだけどミリ秒単位での経過時間取得に難があるのかそれ以下のフレームレートっぽい。
- 解像度は320*200ドットを640*480・960*720・1280*960の3段階で引き延ばし(右クリックメニューで切替)。4:3アスペクト比を守っている。
- 操作方法はキーボードのみ。これもほぼオリジナルDOS版と同様の配置だが、攻撃キーは標準だと左Ctrlではなく右Ctrlになっているので注意。やりづらい人は超漢字の「小物」から「キーボード配列変更」を立ち上げて左Crtlに「入力終わり」(コード0004)を割り当ててください。
- サウンドは単音ブザーのみ。TRONにサウンド用APIは用意されていないので、警告音用のブザーで代用。本当はかえって貧相な印象を与えそうだったので無音のままにしようかと思ったけど、流石に寂しすぎたので入れておきました。
- Ultimate DOOMでしかテストしていないが、シェアウェア版DOOM・DOOM 2・Final DOOMのWADも動くはず。WADファイル自体は入っていないのでSteamやGOGで買うなりして各自で用意してください。
- ロード・セーブも問題なく行える
- idkfa、iddqdなどのチートコマンドも使用可能
- 画面出力・キーボード入力・ブザー出力はBTRONのネイティブ動作となりますが、ファイルの読み書きについてはBTRONのファイルシステムとDOOMのコードが想定しているオーソドックスなファイルシステムとで大きく異なり(BTRONはそのままではfopen・fread・fwrite等の関数が一切使えない)、移植性が良好なコードなのにそこの部分をBTRON用だけに大きく書き換えるのは気が引けるので、開発環境用に用意されたUNIXファイルシステムを使うためのエミュレータを経由しています。そのため、TRON OS版DOOMはUNIXエミュレータの立ち上げ、コンソールからの起動が必須になっている。
元々FM TOWNS用にDOOMは移植していたし、オリジナルのLinux DOOMコードよりも移植性の高いdoomgenericの存在、更にまだ残っていた唯一と言ってもいいような超漢字用のプログラミング解説サイトや同じサイトで公開されていた自作ソフト群にソースコードがあったため、超漢字でのプログラミングは初だったとはいえ一週間程度で移植はできた。逆にこのサイトが消滅していたら、もう移植は無理だっただろう。
インストール方法
まずは超漢字開発者用サイトからセルフ開発環境の「selfenv.bin」かUNIXエミュレータ実行環境の「unixenv.bin」のどちらかをダウンロードしてくる。今回の解説では開発自体は行わないのでunixenv.binの方で説明。
とりあえず超漢字の初期ウィンドウにunixenv.binを入れる。この時「無変換(基本)」のままにしておくこと。入れたら実身を一旦保存。
次は「小物」内にある「バックアップ」を開き、「復帰」タブをクリックして先ほどのunixenv.binをウィンドウにドラッグ、復帰先ディスクに超漢字のインストール先を指定して「復帰開始」をクリック。初期ウィンドウに「unixenv」キャビネットが出てくると思うので一旦実身保存。
「unixenv」キャビネット内にある「README」の説明通り、「小物」→「コンソール」を開いて
[/SYS/WORK]% cd /SYS/USR/unixenv/unix
[/SYS/USR/unixenv/unix]% install
と2つのコマンドを入力すればunixエミュレータのインストール完了。
お次はTRON版DOOM自体のコピー。
「unixenv」→「unix」キャビネットを開いて、その「unix」キャビネット内に原紙箱から「キャビネット」をコピーして名前を適当に「trondoom」等と付けて実身保存。
次に実行ファイルとWADファイルのコピー。先ほどの「trondoom」キャビネットに実行ファイル「trondoom.out」と目的のWADを入れることになるのだが、入れる際は念のためファイル名を小文字で入力し直す、変換方法は「無変換(詳細)」を選択してレコードに31を指定しておくこと。これを怠るとUNIXエミュレータ経由で実行する際にファイルが認識できないことになる。入れ終わったらしつこいが実身保存。これもまたやり忘れてコピーしたはずがファイルが認識しないと勘違いしやすい。
あとは上の動画でも実行しているように「小物」→「コンソール」から
cd ..
ucli
cd ..
cd trondoom
trondoom.out
と入力すれば立ち上がる。
TRON版DOOMから離れて、TRON OSそのものの話をしようかと思う。正確にはTRON プロジェクトというのは対象としているハードウェアやインターフェース毎にプロジェクトが分かれており、組み込み用途向けの「ITRON」が代表だが、その中でパソコン用向けの規格は「BTRON」というものとなり、ここまでで言っていたTRON OSというのはBTRONのことを指して話している。
「超漢字」というのはこのBTRONの規格に基づいて開発したOS「B-right/V」に編集ソフトなどのソフトを加えた環境をまとめたものとなる。「Windows + Office」のようなものだ。
元々は一般的なOSと同様PCにネイティブインストールして動かす代物で、実はプリインストール機がパナソニックから発売されていたり、古くなったPCにインストールして再利用するとかいう試みもあったようだけど、その後話題も少なくなり、何度かバージョンアップが行われていったもののマイナーアップデートが中心のようで、また設計自体が2000年以前のままということで最新のPCではインストールが行えない(IDE接続のHDDが必要)という問題が生じ、最新版の「超漢字V」(ただし、これも2006年発売)では仮想環境上にインスト―ルしてその中で動かすという一種のWindowsアプリ的な売り方となっていった。
ただ、物自体はPC/AT向けのOSなので、環境さえあれば超漢字VでもPCに直接インストールは可能なはずである。実際、製品にはインストールCDという仮想環境のイメージが入った青いディスクの他に、リカバリCDという灰色のディスクがありこれはブータブルディスクとなっていて、VMWareからブートさせて独自に作ったHDDイメージ上にクリーンインストールすることが確認できた。
なお、現在でも売っており価格は約2万円です。これをDOOM移植するためだけに買いましたよ。ええ。
簡易パッケージと称しているけど、透明なビニール袋に超漢字Vの特徴を書いた紙やユーザー登録用カード等が数枚と、先に書いたインストールCD・リカバリCDが入っているだけです。しかも、このCDもCD-Rでマクセル製の700MB CD-Rとレーベル面に記載が残ったままです。マルチセッションで書き込んでてまだ空き容量があるというオマケつき。
ここまで簡易ならイメージだけ数千円で売ってくれた方が正直うれしい・・・。
一応、「超漢字」特有の仕様や使い勝手ではなく「BTRON」そのもののの仕様に限定して語るつもりだけど、BTRONのファイルシステム自体がWindows / UNIXとは設計思想が違い慣れないのでとりあえず一般的なファイルシステムに置き換えて認識してるので勘違いしている部分もあるかもしれない。
よく陰謀論者が「日本航空123便墜落で開発者が死んだ」だとか「Windowsより優れていたのにWindowsを普及させたいアメリカの圧力でスーパー301条によって輸出できなくなった」だとか「孫正義が潰した」だとか言っとる輩がいるが、そんなことはない。123便にはパナソニック関係者は乗っていたけどTRON開発に携わっていた人間は乗っていないし、そもそもTRONプロジェクト提唱者の坂村健氏は今でも存命である。
また、最初のTRON パソコン用規格である「BTRON1」の仕様が制定された1986年より前に業界のデファクトスタンダードになるIBM PCは1981年及び日本のPC-9801は1983年の段階でIntel製CPUとマイクロソフトのMS-DOSを採用している。勘違いされやすいけど、仕様制定と書いた通り1986年の段階では設計書を書いたという段階で実際には物自体は全く完成していないのである。ここから更に1988年になってようやく試作版のBTRON286が出てくるが、これもまた試作という段階なのである。5年以上のソフトウェア資産がある状況でわざわざ全く互換性のないOSに変えるメリットは皆無に等しく、単純に出すのが遅すぎただけだ。Windows 95自体、16bitコードで動いていたりブートにはMS-DOSを経由していたが、まだまだ完全32bit化は当時のPCには荷が重かっただけでなく、過去のソフトウェア資産との互換性を維持できたからというメリットがあったのも大きい。
ソフトウェア資産ではなくPC性能で覇権が取れるというのなら、32768・65536色による美しいグラフィック、(AD)PCMによる生音声、遅いとはいえGUI環境が扱えた1987年に発売されたX68000や1989年のFM TOWNSがパソコン市場を席巻しとるわ。だが、現実は16色のグラフィック・FM音源・CUIが基本のPC-9801が90年代に入ってもWindows 95発売まで売れ続けていた。
そもそもBTRONが使いやすいOSかと言われたらそんなことは一切感じられない。
BTRONのファイルシステムは実身/仮身というもので、実身がデータの実態、仮身がそのデータへのリンクのような形をしている(で合ってるよね?)。
ハイパーリンクのようなもので、フォルダに該当するキャビネットの中で自由に仮身の配置が行えたり(Windowsのデスクトップ画面が各フォルダにあると言えばわかりやすいか)、拡張子でデータの種類を各々管理せずOSレベルで文章の他にBMP・JPEG・PNGといった画像形式にも対応しており、それらの画像を直接ウィンドウ上から別の場所・アプリ間でやり取りできるといったこともできる。拡張子単位ではないので同じ形式のデータでも、仮身の場所によってダブルクリックで起動した際に立ち上がるアプリも別々のものを指定することだって可能。
ここまで聞くと先進的にも聞こえるが、実際のところ複雑怪奇、年月が経つと単に古い規格しか取り扱えない代物になっていく。
実身/仮身と別れていて、ユーザー側からは仮身を編集することとなるんだけど、元のデータを編集したい、1データしか存在しないような小規模なものであればそもそも仮身という存在なんかなくてもいいようなものだと、編集したはずなのに反映されたのは仮身のほうだけで実身に反映されていなくて実際は保存されていなかった、なんていうややこしい状況となる。TRON版DOOMのインストール方法でしつこく「実身の保存」と書いていたのはここら辺で躓きやすいからである。標準的なファイルシステムで言えば、ファイルを別のフォルダに移動したら即反映されるわけではなく、一旦そのファイルを保存するという一手間をしてはじめて移動されるということだ。
BMP・JPEG・PNGに対応していると書いたが、それではこれも標準的なGIFはどうなのかというとなんと対応していない。もちろんごく最近の規格であるWebPといった新規格にも対応していない。それどころか対応しているはずのJPEG・PNGすら圧縮形式では読み込めず無圧縮状態にする必要があったり、画像サイズが大きいと読み込めないという問題が生じている。これの解決方法が「Windows側で画像サイズを小さくしてください」と超漢字のFAQでも書かれている始末。当たり前ではあるが、OSレベルで画像形式に対応しているといえば聞こえはいいが、新しい画像形式が出てくるとまたOSレベルで対応していかなければならず、拡張性にも乏しかったので1999年制定のBTRON3でも1985年の仕様を引きづったままとなってしまっている。もちろん、それらの画像ファイルは汎用的なデータとして登録しておき、各アプリで対応するといった対処方法も可能ではあるが、それだと標準対応の画像データとの整合性は取れなくなるし、ユーザー側からは同じ画像というデータのはずなのに使い勝手の大きく異なるデータが何故か存在する状態となる。実際は拡張子で識別した方がはるかにマシなのである。
これもTRON版DOOMの仕様にも書いた通り、BTRONには音声出力するための規格が標準では用意されていない。そんな馬鹿な、という人がいるなら超漢字の公式サイトに開発者向けのBTRON3仕様書が公開されているので見てきてほしい。超漢字用に拡張した部分もあるがこちらでもそれらしきものは見当たらない。一応、独自にサウンドドライバを用意してそれで音声出力を行うアプリは存在するが、やっていることはIBM PC向けゲームでサウンドカード直叩きで音楽や効果音を鳴らしていたやり方と変わりないし、規格として制定してるわけでもないのでサウンドハードウェアが変わればすぐ鳴らせなくなってしまうという原始的なもの。もちろんBTRONのファイルシステムでも音周りのデータ形式は用意されていない。仮にWAVE形式に対応していても、やはりMP3やFLACと圧縮形式が出てきたらまた整合性が取れなくなることになり無理があっただろう。
更に意味が分からないのが、BTRON単体ではBTRONのネイティブアプリを作ることが無理ということ。標準でT言語というスクリプト言語はあるもののあくまでもスクリプトなので本格的なアプリを開発するならC(C++)言語に頼ることとなるのだが、コンパイラに使われるGCCはBTRON用に作られていない。ではどうするのかというと、別のUNIX / Linux機を用意してクロス開発環境を構築するか、TRON版DOOMの中でも言及したUNIXエミュレータを導入してからセルフ開発環境を立ち上げるという手順となる。なにそれ・・・。
BTRONのBという文字自体「Business」という言葉からつけられたもので、パソコン=仕事で使うものという固まりきった考えで設計された印象である。実身/仮身の考えもデータべ―スなら相性がいい(というかそれそのもの)が個人が手軽に使うなら不要。ホビー向け用途が一切考えられていないのである。X68000やFM TOWNSを買う層はこんなOSに興味を示さないし、ビジネス用途で使うなら一太郎やロータス1-2-3が動くとかのほうが遥かに需要があるがBTRON向けに移植されているわけでもない。仮に80年代後期に商業ベースで展開していたとしても、上記のように画像や音声周りの取り扱いに不備があって90年代中期には一気に廃れるのが目に見えている。全然パーソナルな環境じゃなく、どちらかというとパソコン用OSではなくワープロ用OSというとしっくりくる。
「使い勝手のよいOSだった」だとか「幻に終わったOS」だとか「今からトロンOS搭載のパソコンやスマホが欲しい」と言っている諸君、君たちのお望みのトロンOSは今でも通販されているので、今すぐ「超漢字V」を2万円で買ってきて是非革新のトロンOSを存分に味わってきてほしい。そうすれば本当にトロンOSが希望通りのものだったかわかるはずだろう。
※追記:何故かはてなブックマークで「16bit時代の規格で比較しても意味ないだろ」「Windows 3.0と比べたらどうなんだ」とか頓珍漢なことを言う人もいたが、上記の話は最初から「1998年に制定されたBTRON3を基準にして、1980年代~95年までのパソコン利用目的に耐えられるか」というハンディキャップを与えているような状況で語っている。このような仕様なのは単に16bit時代(BTRON1)に制定された仕様をそのまま後まで引きづっているというだけだ。それと当時のWindowsと比べて実用性あったかどうかで言えば、WindowsだろうがBTRONだろうがどちらも実用性ゼロだっていう話だ。どんぐりの背比べでしかないのに、Windowsよりも先進的なんだからBTRON使うだろ、っていう話になるわけないだろ。結局IBM PC互換機もPC98も既にあるMS-DOSの環境を利用し続けて、Windows 95が出てきたら既存のDOSソフトを使いつつ実用的になったGUI環境に移っていくという流れなのに、80年代後期~90年代前期の段階の話で「トロンはWindowsより優れていたのに普及しなかったのはおかしい」とか陰謀論が出るからそれは違うという話をしている。