Home日記コラム書評HintsLinks自己紹介
 

フィンローダのあっぱれご意見番 第95回「やっぱりPS2」

← 前のをみる | 「フィンローダのあっぱれご意見番」一覧 | 次のをみる →

PlayStationが世の中に出てきた時も驚いたものだが、 PlayStation2も結構驚きだ。 秋葉原などのマニアの熱狂ぶりは、 Windows 2000のカウントダウンと比べてみると凄さがわかるというものである。

 

※ Windows 2000 のカウントダウンはショボかった。

家庭用ゲーム機には他にもいろいろあるわけだが、 PlayStation2の戦略は、非常にうまいと思う。 まず、DVDプレーヤーとして使えること。 実は私がPlayStation2を購入した理由は、 ゲームをしたいとか思ったわけではなくて、 とりあえずDVDプレーヤーが欲しいと思ったからだ。 初代PlayStationはCDプレーヤーとしても使うことができたのだが、 PS2になってDVDというように進化したわけである。 初号機をCDを聴くために購入した人は殆どいなかったと思う。 なぜなら、その時に既にCDプレーヤーは十分に世の中に普及していたからである。 しかし、2000年になって、DVDプレーヤーはまだ世間に浸透しているわけではない。 これから普及に向けて広まりつつあるという状況で、 ここでPlayStation2が出てくるというのは、実にうまいタイミングではないか。

 

※ 今ならpcで観ることもできるし、 DVDプレイヤーだけなら数千円で買えるのだが。

もう一つ注目したいのは、 既に持っているソフトが使えるということである。 パソコンの場合には基本なのだが、 家庭用ゲーム機では、そのようなものはあまりなかったのではないか。 PlayStation2は、原則的に、従来のPlayStationのゲームソフトがそのまま使えるのである。 メモリカードもそうだし、コントローラーもそうである。 既にかなり多くの種類のPlayStation用ソフトが販売されている状況を考えると、 これはメリットになると思う。

ハードウェアが違うのに本当に動くのだろうかと思ったのだが、 大抵のソフトは問題ないということだ。 とはいっても、若干のソフトが動かないという報告がされている。 また、微妙な違いがないわけでもない。 実際にPlayStation用のゲームをプレイしてみたところ、 音質がかなり違う。 音源がよくなった影響だろうか。 それはいいとして、画面がざらざらした感じになるのがやや気になる。 おそらくPlayStation2のグラフィックの性能が上がったためだと思われる。

グラフィックの性能といえば、気になることがある。 pcのゲームの場合、pc用のモニタの解像度が高いので、その点は有利な環境にある。 1ドット単位が読める前提で…いや、 読めないかもしれないが、 とりあえず、そういう前提でデザインすることができるからだ。 PlayStationも機能上はそういうデザインは可能だが、 問題はモニタの性能である。 おそらく、 殆どのPlayStationは家庭用のテレビにビデオ出力で接続されているのではないだろうか。 少し気の利いた人なら、S端子で接続できるようなモニタを使っているかもしれない。 それにしても、家庭用のテレビというのは、pcのモニタに比べると解像度が低いものである。 いくらPlayStation2の性能が高くても、家庭用のテレビの性能が追い付かなければ、 期待した結果は得られない。 かといって、PlayStation2のために、専用のテレビを買うというのも何だか…と思うわけだが。

§

ショップからPS2を購入するのは大変だったらしい。 実は私はインターネットから注文したので、 外で何時間も並ぶよりは楽に買えたのだと思われる。 とはいえ、インターネットも大変だという話もあるわけで、 予約開始時にはアクセスが集中してサーバがダウンしたそうだが、 こうも毎度毎度「予想外のアクセスのためにダウン」と言われてしまうと、 何かシナリオ通りと言いたげな気配を感じてしまうのは私だけだろうか?

実際、インターネットから注文する手順自体もアドベンチャーゲームを解いているような感じがして、 それなりに面白かった。 特に、最初のページから中に入る所には、結構大きな壁があった。 というか、実はそれ以前の問題があって、つまり、最初にどこに行けばいいのか分からなかった。 「プレイステーション・コム」という情報を知っていれば、 http://www.playstation.com/ は当然思いつくはずだが、ここで Japanを選択すると、SCEIのページに飛ぶことになっている。 ここからどうすれば注文ページに行けるのか、よく分からないのである。 そこを何とか頑張って、これが注文ページの入り口だ、というURLを発見。 後は簡単かというとそうでもない。 この次が壁なのである。 このページには、画像がたくさん使われている。 普段なら何でもない分量だ。 この原稿を書いている時点でも試してみたが、ものの数秒で表示できてしまった。 ところが、予約した時には、その程度のページがさっぱり表示できなかったのである。 待てど暮らせど画像が送られてこない。 ブラウザが表示している転送速度は、速くて数十バイト/秒、という感じである。 しかも、画像を出さないと、どこに飛んでいいか分からなくて、困るのである。 今頃思いついたのだが、ソースを見れば何とかなったのだろうか? いや、その程度なら最初にら思いついたような気もするのだが…。

とにかく、一つのページを表示するのに10分とか20分もかかるという状況で、 何とか根性で注文ページにたどり着くまでに約2時間。 流石に今ならサクサクとアクセスできると思う。 試しにゲームソフトのページを見てみると、 なぜか

The requested URL /jacket/l/slps20015.jpg was not found on this server.

とか表示されてしまったが、 まあ愛嬌というか、割とよくある話のような。 ふむ、このサーバはApache/1.3.11ですか。 商用のhttpサーバとしてApacheが使われているというのがなかなか興味深い。 市販のサーバもあると思うのだが、Apacheが負けていないというのがいい。

ちなみに、注文の後に、同じ文面のメールが2通やって来たので、 2個注文してしまったのかと思って、 あわてて注文内容を確認しにアクセスしたというオチがある。 よく考えてみれば、1人1台という制限があるのだった。 何かの間違いで2台来たら、むしろラッキーだったのだが。

もう一つびっくりしたのは、報道されたように、 他人の個人情報がアクセスできてしまうという事件であるが、 まあこういうことはあると考えておいた方がいいのかもしれない。。

§

前回、Solaris をインストールした話を書いたが、 その後、sambaやらNetscapeやらインストールして、 pcと連携して結構使えるようになってきた。 もっとも、いちいちトラブルが発生するから、 全てがそう簡単にインストールできたわけではないのだ。

  

さて、もう一つ面白いのはtelnetxである。 telnetx というのは、telnetの機能強化版で、 これを使えば外部のファイル転送プロトコルを呼び出すことで、 例えばB Plusを使うことができる。 @niftyというかNIFTY SERVEのデータのやりとりには必須に近い機能になるわけだ。 今時 B Plusでデータのやりとりとは…という感じがしないこともないが、 とりあえずまだ「パソコン通信」という世界も生きているのである。

 

※ NIFTY SERVE: 昔あったパソコン通信サービス。 モデムを使って電話回線経由で接続し、 掲示板等を使うことができた。

telnetxの日付を見ると1994年頃のもので、 その後は更新されていないようだ。 UNIXというのも結構微妙な進化をするもので、 特にSunというと昔はBSDだったという歴史もあるからややこしい。 それはともかく、telnetxを使おう…と思ったら、 まず最初にぶち当たった壁は、これってどこからgetすればいいの? という問題である。 当然、大問題だ。 Solbinにもないし、Vectorにもなかった。 UNIX系のフリーソフトというのは意外と一箇所に集まっていないのかというと、 実はLINUXとかFreeBSDのサイトには集まっているものである。 もっとも、最近はWWWで検索するという手があるから、どこにあるかをそれで探せばいいわけだ。 結局、getしたのは、telnetx.src.940401.tar.gz というものだ。

 

※ Solbin: Solaris 用のプログラムが集められたサイト。 http://sunsite.tus.ac.jp/sun/solbin/

さて、これをmakeすれば終わり…というのなら簡単だが、 世の中そう甘くないわけである。もちろん1994年にはSolaris 7なんてOSはない。 しかし、Sunはあった。Sunは結構歴史の長い由緒有るワークステーションなのだ。 Config.genericにsunという項目があるので、 sunを指定してコンパイルするとどうなるか? 実はsunというのはその昔はBSD系だったので、あまりよくない。 コンパイルエラーで中断してしまうのである。 例えば、TerminalNewMode() という関数定義の中でエラーが発生する。 この関数、結構凄くて、まともに読むとかなり消耗するのではないかと思う。 何が凄いかというと、いわゆる #ifdef の嵐の状態で、 コンパイルした時にどこが実際に処理される行なのか分からないという感じなのだ。

エラーの出るのは sigsetmask を呼び出す行である。 このソースには sigsetmask は一箇所しか出てこないから、 それで検索すればどこか一発で分かると思うが、 とりあえずヤケクソでその前後をlist 1 のように修正してみた。 #else~#endifで囲まれている個所はオリジナルのソースである。 #ifdef SOLARIS7~#elseの間が追加した処理となる。 また#indef が増えてしまったわけだが、 一つ位増えてもたいして…とかいう安直な発想でこだわらずに追加してしまうのである。

---- list 1 ----

#ifdef SOLARIS7
    {
        sigset_t sig;

        sigprocmasc(SIG_BLOCK, NULL, &sig); /* get current status */
        sigdelset(&sig, SIGSTP);
        sigprocmask(SIG_BLOCK, &sig, NULL);
    }
#else
    (void) signal(SIGSTP, SIG_DFL);
    (void) sigsetmask(sigblock(0) & ~1<<(SIGTSTP-1)));
#endif

---- list 1 end ----

ところで、これが本当に正しい処理になるのか、 という問題がある。 しかも、どうもいまいち自信がないのだ。 こういう場合は必殺「結果オーライ」という技を使う。 コンパイルして動かしてみてうまく行ったら「正しい」と判断するという、 納品時には禁断とされている技だ。 しかし自宅でhobbyとしてやる分には構わないだろ、 とか勝手に納得して実行してみたのだが、 まあ特に問題ないような気もするので、そのまま使っていたりする。

実はB Plusは、 UNIXで動くように修正したバージョンがあったはずなのだが…というか試作したような記憶があるのだが、 なにしろ随分昔の話なので定かではない。 とりあえず、 telnetxに付属のbpの「&& !defined(sun)」という文字列を削除すればコンパイルできるようなので、 それで使っているのだが、 折角だから自分のソースで使えるようにしてみたいとも思っていたりする。

  

(C MAGAZINE 2000年5月号掲載)
内容は雑誌に掲載されたものと異なることがあります。

修正情報:
2006-03-14 裏ページに転載。

(C) Phinloda 2000-2006, All rights reserved.