PC-6001のビルディングホッパー@210408更新

 

1981年(約年前)のNECのパソコン、PC-6001のお話。


コンピューターランド北海道(その後、フラッピーで有名なデービーソフトという社名に変更)のビルディングホッパーをご紹介したい。

任天堂のドンキーコングに似ていて、上から落ちてくるボールをジャンプしてよけて最上段に向かうというゲーム。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦


このゲーム、単純故にかなり面白くて当時は何回も遊んだが、テープで起動するゲームだったため、ゲームをしたいときは読み込みに5分ぐらい待たされた。

それが嫌で、PC-6001の後継機種である、PC-6601SRを買うやいなやこのゲームをフロッピーディスクに入れた。


ところが、不思議なバグに遭遇した。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

ミスをすると

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

なぜか2面に突入する。(偶数面はエイリアンが出てくる。2面以降は床に穴が開く)

さらにミスすると

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

3面に突入してしまう。(ちなみに、このゲームは面が進む度に床に穴が開く)


これでは面白くも何ともない!と思った高校生akkyだったが、原因がわからない。

ただ違うのは、私が使っているPCが初代PC-6001ではなく、後継機種のPC-6601SRであること。

このPC-6601SRは初代PC-6001も内蔵しているのだが、互換性が100%ではないらしく、ごくまれに互換性問題が発生する(実際にBIOS ROMを見るとかなり書き換わっているのを確認済み)。このゲームがそれに該当したらしいのだ。


そこで私はいろいろ研究した結果、「新しい PC-6601SR の上で初代 PC-6001をエミュレートすればいいじゃないか!!」・・・という謎の境地に達した。


※ここから先はちょっとマニアックみたいです

基本的にPC-6001mk2SR や PC-6601SR はRAMが64KB・・・だと理解してるのだが(左図)

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

電源を投入して、PC-6001モードを選ぶと本体のメインメモリ64KBに対し(左図)、PC-6001のBASIC ROM(中央図)をバンク切り替えしてあてがったり各種メモリ設定などをして、右図のように「P6モードを再現している」と理解している。


わかりにくいので、すごく簡単に言えば、

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

PC-6001mk2SR /PC-6601SRのN60-BASIC ROMの裏には、通常は使えない書き込み可能のRAMが隠れている、…といえばいいのだろうか。

で、問題なのは、

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

この中央図のN60-BASICROM。初代PC-6001と初代以外のPC-6001モードで若干の違いがあるのだ。この部分の新旧の違いから今回の互換性問題が発生した可能性がある。


では、「PC-6601SR上で元祖PC-6001をエミュレート!」を敢行しよう。

あまりにも起動方法が特殊なので、

 

1)ビルディングホッパー専用のローダー(←ソフトを読み込むツール)を自作する。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

あら、行番号を表示しないテクニックを使っておるな笑。

「わたや」というのは、当時私が小学生の頃、このゲームを展示していたお店の名前。

building hopperなんて英語が読めなかった頃なので、呼び名はもっぱら「わたや」だった。


ちなみに、60行目の「BLOAD"P6ROM",0」の部分で、初代PC-6001のROMデータを読み込んでいる。スタートアドレスは当然0000h。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦


ここにも書いてあるように、バンク切り替えしてやればいいはず、と書いてある。

2)「START RAM」というツールを読み込んでおく。このツールが2つのN60-BASICを一気にバンク切り替えするのだ。

3)パソコンをリセットしてもBASICが復活するツールを読み込んでおく。

4)ビルディングホッパーのマシン語とBASICリストを読み込む。


で、呪文その1の「exec &Hf000」と打ち込むことで、2つのBASIC ROMが入れ替わるはずだ。

さて、やってみると…

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

じゃーーーーん。 これが元祖PC-6001の起動画面!

・・・といいたいところだが、本当にそうなのだろうか。

 

よく見ると、

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

先ほどの画面(斜め上)はコンソール部分が小文字なのに、今の画面はコンソール部分が大文字だ。


初代のN60-BASICは大文字だったんだよね。これで、初代PC-6001が見事起動したことが判明。

 

で、ここでリストを見てみると、

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

当然だが何も出ない。


BASICROMを起動する、ということはPCを初期状態にする、というのと同じ意味だからだ。でも、電源を消したわけではないので、メモリの中にはしっかりとデータは残っている。


そこで、さっき仕掛けておいた「BASIC復活」のツールを使ってみよう。2番目の呪文「exec&Hf100」だ。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

とりあえず何も変化がない。

でも、listを見てみると

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

復活してるじゃないか! 

で、早速起動させると…

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

起動したー。

よし、プレイしてみよう。

初代PC-6001をエミュレートさせて、コンピューターランド北海道(デービーソフト)のbuilding hopper(ビルディングホッパー)を動かそうという作戦

バグが出ることなくちゃんと最上段に到達できた。

これぞ、PC-6601SR(通称 Mr.PC)を使った、初代PC-6001エミュレートによるビルディングホッパーの完成っ(^^)


※この記事は2006/05/15にflash動画としてアップしておりましたが、flashが終了したので再アップです。

 

トップページへもどる