PCエンジンminiのお手伝いしてました

30年前あったPCエンジンという8ビットゲームマシンは、僕にとってとても思い出深いハードだ。
なんせこのハードでゲームを作るプロ側に立てるようになったのだから、そりゃあ思い出も深い。

そのPCエンジンがレトロゲームマシンの復刻ブームでミニとして出るという話になり、なんとそれのお手伝いをさせてもらえることになり、スタッフロールに名前が出ることになってしまった。
30年やっていると、こんなボーナスが出ることもあるんだなと思った。

ではなんのお手伝いをしてたのか?

あまり具体的な個々の内容に触れないように書くと、30年前のソフトとハードの中身の説明ということになる。特に多かったのは圧縮・メモリの質問とビデオ周りの質問。

実は圧縮は難しくなくて、当時の圧縮はグラフィック側はLZSSを使って、コレはこんな数字を設定してますよって話を伝えたりすれば「なるほど!」でだいたい終わった。

奥村先生が当時のソースを残してくれているので「intは当時は16ビットです、longは32bitです。メモリはほっとくとダイレクトアクセス可能なのは16bitの範囲で、8ビットマシンだから、このパラメータとこのパラメータはこういう数字ね」と教えればわかってしまうような世界なのだ。

ちなみにintは16bitでlongは32bitは、86でも68でも同じだった。
intが32ビットになったのは68020あたりがワークステーションで登場するようになってから。で、86系ではwindows 95で32ビットに一応テイクオフしてからあとだったと思う。

メモリの質問は「どこにロードされるんですか?」とかそーいうの。
これまた話は簡単でMPR1、つまり$2000-のメモリの$2200からにtaskmanがいるはずだから、そこから解析すればわかるよ、とかそーいう説明をしていた。
『エメドラ』あたりになると、直線的なメモリアクセスが欲しくてMPR0(通常はI/Oに割り当てられている)で悪さしてたんだけど『天外Ⅱ』までは1988年に『凄ノ王伝説』で作ったメモリ管理ルーチンを改造して使っていたし、CDROMを素直に使えば似たようなメモリマップになる。
だから今回収録された作品は、だいたい似たようなメモリマップなのだ。

役に立ったかは知らないけど、役に立ったとは言われた。

問題はビデオ周りの質問だった。
正直、今のドットバイドットが当たり前の世界に生きている人たちに、アナログテレビの出力を説明するのは至難の技だった。

まずブラウン管はアナログ信号で表示されるもので、ブラウン管に使われている蛍光体のまあドットのようなものと、画面解像度は全く一致しないのだけど、これを理解してもらえない。しかもゲームマシン側は下手に普通に今のマシンみたいに解像度があるから困ってしまう。

結果的に「当時のテレビは全部見えるわけではなかった。見え方もテレビで違った」とか「当時のテレビに映る標準的なドットは正方形ではなく、横に長い(これは分かっている人も多かった)」といったあたりを、ドットバイドットで1920×1080の正方ドットがクッキリ見えるのが当たり前な環境で暮らしてきた、僕より軽く二回りは若いみなさんに説明するハメになったのだけど、これを書いていきたい。

まず「ドットが実は横長」について。

当時のテレビは4:3の縦横比(ということになっている)。まあメーカー出荷なら、だいたいそのあたりの数字だ。
例えばよく使われたPCエンジンの画像は256×240。これをドットバイドットの絵で表示すると、下みたいになる。妙に縦長だ。

そこで比率計算をしてみよう。

4/256=0.015625
3/240=0.0125
0.015625/0.0125=1.25
実に横に25%も伸ばした方が正しい画像だって話になる。

今度は少々横長すぎるように見えるだろう。
「なぜだ」と不思議になるところだが、実はここから先に「アナログテレビの時代にはテレビ画面は全部見えるわけではなかった」という次の話が加わってくる。
下はインターネットを探して見つけたほぼ正面から放送が映っている画面。

テレビの枠まで画像が表示されているが、ブラウン管はテレビの枠より大きい。
つまりブラウン管テレビでは映像として用意されていても映らない場所があるわけだ。
で、これは標準化が一応されていて、こんな風に設定すれば「マア間違いなく映る」ことになっていた。
それが下の画面。

今の人には信じられないだろうが出荷時の設定ではマア見えない場所、見えたり見えなかったりする場所、必ず見えるハズの場所に分かれていて、大雑把にはそれぞれ上の様に設定することになっていた。

  • ブラウン管
    (放送する領域)100%
  • アクションセーフ
    放送する領域の90%
  • テキストセーフ
    放送する領域の80%

と、こんな風にしておけば、絶対に読めないと困る物はテキストセーフの内側におけば大丈夫で、見えればいいものはアクションセーフの領域に置けば良く、そしてそれ以外は見えないことになる。

ではPCエンジンの画面は、上の分類でいうとどうなっていたのか?
実は表示するときにはデフォルトの設定では両側に約8ドット分の隙間がついて表示されるのが標準の値になっている。つまり、アクションセーフの外側に16ドット分の黒がついていると思えばいい。
昔、これをHSRとHDRというレジスタで設定することになっていて、ビジュアルシーンでは弄り回すところなので、よーく覚えているのだ(下はマニュアルの該当場所)。


では16ドット足して「だいたい4:3ってこと?」
その通り。そしてそれで計算をすると…

4/(256+16)=0.01470
0.01470/0.0125=1.1764256*1.1764=約300ドット

というわけで、さきほどの画像を300にしてみると…下。

左下は「実際にテレビでプレイされているカトケンの画像」で、ほぼ320と300の間の雰囲気で正しいことになる。
「えっ? バッチリ決まらないの?」と言いたくなるだろうが、アクションセーフやテキストセーフ、さらに画面比率はめちゃくちゃいい加減で、メーカーごとテレビ毎にわずかにバラつくし、テキストセーフの領域に配置してすらRPGのテキストだの、左上に置かれているハイスコアだのが見えなくなることがあるフナイのヘボいテレビなんてのも存在したのだ。
しかも、これらは全てアナログで調整されているので、個体ごとに違うし、経年変化で少しずつ比率が変化していく、なんてとんでもないものだったのだ。

と、アナログテレビの見える範囲と比率の説明をしたところで、PCエンジンミニの話に戻ると、上の話で分かる通り、下は224-240ラインはまず見えない場所だし、左端の8ドットぐらい、右端の8ドットぐらいはまず見えない

なので実はゲームによってはそこをワークエリアに使ったり(つまりドットバイドットで全画面表示すると変なものが置かれている)、それともミスで左端に変なものがあったり、それともレジスタの設定の違いで、ちょっと表示が違ったり…なんてことがかなりあり、そのたびに某所からスクリーンショットと共に「こんなの見えてるんですが?」と質問がやってきて「それ、見えないから」とか「これ、画面比ちょっと間違ってるから。HDRとHDSにどんな数字書き込んでるのか調べてみて?」
なんてことを説明していたのであった。

Amazon | PCエンジン mini | ゲーム
PCエンジン mini

そんなこんなで、ゲーム以外のスタッフロールに名前が載ったPCエンジンミニは、来年3月に発売される予定である。

楽しく仕事をさせてもらいました。

LinkedIn にシェア
Pocket

5件のコメント

  • いつも興味深く読ませていただいてます。
    表示エリア外に映っていたものとはどのようなものがあったか差し支えなければ教えて欲しいです。

    • んーと…わからないように書くと、ラスターで上に表示してるステータス画面が224から先スレスレに置いてあるとか、そんな例がありましたねw

  • その昔、VHSのAVをレンタルしたときに見えない部分に写っている物を見たくて垂直同期なんかをいじりまくってたのを唐突に思い出してしまった。

  • アーケードの人でしたので当時モニター調整はよくやってました。
    ソフトの人から、情報をなるべく詰め込みたいから広く表示したいとはよく言われたなあ。コンシューマだとモニター側の調整は不可だったけど、アーケード用だからモニター側の調整で攻めてくれと。
    とはいえ端の方だとどうしてもフォーカスが甘くなるので、読ませたいものはなるべく置かないようにソフト側で注意してましたね。

    あとブラウン管の場合、周囲の地磁気の影響を受けるので、消磁器は必須アイテムでした。
    地域限定ですが、アメリカ空軍の特定の機種が飛んでる時だけ画面が波打つ→画面が歪んだまま、とか画面が虹色に変色する、なんてのもありますからね。(これは今でも起こります)

  • メガCD版のコズミックファンタジーの壁ぬけ裏技で画面表示外に行くと
    CF01 M01 ○○ ってマップのファイル名みたいなの書いてあったなあ
     普通にやると分からないからいいのだけど(まあ普通にやるとPCエンジン版より雑魚敵強すぎるうえ エンカウント高すぎ&バグでやってられないからこれ見た人多いかもしれない)

コメントは現在停止中です。