拝啓、電波新聞社さま。

拝啓、電波新聞社さま。
~大きくなった少年からの素敵な贈り物~


拝啓

不躾なお便りをお届けすることをどうか御寛恕ください。
私は1986年ごろ、御社のX1用ゲームソフトウェア「ゼビウス」を記録したカセットテープを友人から借りて複製し、自分のパソコンで遊んでおりました。
御社におかけしたかもしれない損害を償うため、定額小為替を同封いたします。
いじめで苦しんでいた少年時代に、御社のゲームで楽しいひと時を過ごさせていただいたことは貴重な思い出であり、製作者の皆様には大変感謝しております。

謹白
ある元ゲーム少年


1983年、ゲームセンターにゼビウスが登場。それからすぐに、アーケードゲームの移植で有名な株式会社電波新聞社は、大人気となったこのシューティングゲームを家庭でも楽しめるよう移植版の開発に着手しました。X1の移植版は1984年ごろに発売されました。そんな株式会社電波新聞社に、先日、冒頭のようなお手紙が定額小為替とともに届きました。

友人からソフトを借りたり、ゲームショップでレンタルするなど、ゲームソフトが今よりずっと高価だったあの頃は、ソフトを買わずにコピーして遊んだという人も多かったのでは?
お気に入りのゲームをコピーして遊んでいたゲーム少年の一人は、ふとしたきっかけで「もしかしてあの時コピーしちゃって、悪いことしたかな」と考えたのでしょうか。わざわざ丁寧なお手紙と定額小為替で、ゲーム会社にそうした少年時代の行いを償ってくださったのです。

株式会社電波新聞社は現在、『電子工作マガジン』などの技術系の書籍や雑誌の出版など、エレクトロニクス産業に関わる出版業を続けています。今回お手紙を受け取った電波新聞社の皆様は、この定額小為替をどう受け取るか検討され、ゲーム保存協会にそのまま寄付することを決め、ご連絡くださいました。

こうして、当協会が事のいきさつを知り、電波新聞社さんからご寄付として定額小為替と冒頭のお手紙を譲り受け、また、この素敵なエピソードを記事にして公開するお許しをいただいたのです。

送られてきた定額小為替

80年代に活躍していたゲーム会社の多くは倒産や合併などで既に存在しない例も多く、今回のように同じ会社が今もあるというのは幸運なケースです。ですが、たとえ会社があったとしても、当時のゲーム開発に関わった方や担当者はすでに退職していたり、他へ移っていたりして、ゲームの歴史を支えたクリエイターたちの足跡をたどるのは、企業さんでも難儀します。会社は残っていてもゲーム事業から手を引いている例も多数あります。

失われつつある80年代の豊かなゲーム文化。その貴重な資料を収集保存するのが、ゲーム保存協会です。人気のあったあのソフトや、あまり売れなかったけれどクリエイターの創意工夫が詰まったあのソフト、私たちはそんな大切なゲームたちを、周辺資料も含めて未来のために保存しています。

当協会がアーカイブに収蔵しているX1用ゼビウス

ゲーム保存協会には、権利者である作者や法人が、自分たちの手元にはもう残っていない資料を求めてやってくることも多々あります。どんな形で、古い資料が将来の役に立つのかわからない以上、私たちは分け隔てなくできるだけ多くの資料を博物館や美術館と同様の長期保管用設備で保存し、そうした資料が必要とされる日のため、365日連続でアーカイブの管理や、新規資料の保存作業に取り組んでいます。
すでに法人としては存在しないゲーム会社の作品、作者自身でも開発資料や現物を持っていない作品、劣化や散逸でどこにも資料が残っていない作品など、当事者ですら手元から失ってしまったものでも、ゲーム保存協会に来ればいつでも資料を見ることができ、歴史を辿ることが可能となります。
100年後、200年後、私たちの心の支えとなっていた大切なゲーム文化をもう一度振り返る必要が出るその日まで、私たちは非営利でこうした資料群を保管・保存し続けているのです。
その昔コピーして遊んだゲームが、今のあなたを支える素敵な思い出になっているのなら、今度はあなたが、未来の誰かがそんな素敵なゲームと出会えるよう、ゲーム保存の取り組みを支えてみませんか?

ゲーム保存協会のサポーター会員年会費は1口3,000円です。
きっと、当時あなたがコピーしたソフトの定価よりも安いはず。あなたの参加で、メーカーさえも持っていない当時の貴重なゲーム資料を未来に残すことができます。

 

ゲーム保存協会ではサポーター登録の他、ご自宅に眠る不要となった古いソフトや機器の寄贈なども受け付けております。
古い資料の処分などをご検討されている方がいらっしゃいましたら、ぜひ一度ご相談ください:お問合せフォーム

また、定額小為替切手ギフト券金券書き損じハガキなどは、弊団体宛てにご郵送いただきますと、そのままご寄付として活動費に補填させていただくことが可能です。ぜひご支援ご協力をいただけますよう、よろしくお願い致します。

送付先住所:
〒158-0082
東京都世田谷区等々力八丁目19番1号
椎の木山ガーデンテラスC号
NPO法人ゲーム保存協会
(℡ 03-6805-9810)

※保存活動を支える法人・企業パートナーも募集しております。お気軽にご連絡ください:お問合せフォーム

ソフトをはじめとするゲーム資料の保存は、資料のクリーニングに使う特殊素材の器具購入、アーカイブ室での資料安置のためのアーカイブ器材費がかかる他、ソフトの保存には作業をする専門スタッフの人件費が必須です。
ボランティアをベースに行う活動でも、時間と技術を要する作業は無償では続けることができません。
皆様の会費とご寄付はこうした保存活動に係る非営利事業に大切に使わせていただいています。
ゲーム保存協会は会計の透明性にこだわりをもっており、毎年皆様には決算報告書をすべて開示し、ご寄付いただいている会員の皆様にお渡しするニュースレターでは、収支に関する詳しい説明も掲載しています。
こちらのページでどなたでも決算報告書をPDFにて閲覧いただけますので、ぜひご確認ください。

過去の決算書はこちらから:東京都生活文化局・団体情報詳細

 

未来のために、真摯に取り組みを続ける団体です。
ぜひご協力をよろしくお願いいたします。

ゲーム保存協会 Game Preservation Society特定非営利活動法人ゲーム保存協会
ルドン

サポーター会員限定・5周年記念講演のコンテンツを公開

メリークリスマス!ゲーム保存協会・広報担当です。
早いもので、あっという間に師走の時季を迎えましたが、皆さまいかがお過ごしでしょうか?
さて今回は、ゲーム保存協会サンタからのプレゼント!?嬉しいニュースをお届けします。

サポーター会員限定コンテンツがついに公開!
2016年7月30日(土)に開催した、5周年記念講演イベントの模様をご覧いただけます。

この講演はサポーターの皆様によるご支援によって開催した、ゲストを招いた初のイベントです。活動にご支援頂いているサポーター会員の皆様のために、この度講演の内容を会員限定コンテンツとしてリリースします。

ゲストを招いたイベントは、全て皆様のご寄付ご支援によって運営されています。まだ会員になっていらっしゃらない方も、ぜひこの機会に新規サポーター登録をして、限定コンテンツをお楽しみください。

すでにサポーター会員の方は、マイページにログインしてすぐにコンテンツをお楽しみいただけます。

コンテンツは以下の通りです。

 

■エニックスの黎明期展

ゲーム保存協会 Game Preservation Society

株式会社エニックス(現、株式会社スクウェア・エニックス)は、1982年に「第一回ゲーム・ホビープログラムコンテスト」を開催。入選以上の作品を全て市販パッケージとして流通され、イベント当日は当協会で所蔵しているエニックス販売ゲームの貴重な初期版バッケージを数多く展示いたしました。
その展示品の様子をご覧いただけます。

 

■「元プログラマー日高徹氏に聞く」(ゲスト:日高徹氏)

ゲーム保存協会 Game Preservation Society

名誉会員・日高徹さんをゲストにお招きした講演を一言一句、文字で記録したものをご覧いただけます。日高さんには、副理事長・福田の司会にて、ご自身のゲーム開発に纏わるお話を、お話をいただきました。目次としては以下の通りです。

【index】

  • プロフィール、生い立ち
  • エピソード1 きっかけ、どうやって学んだのか?
  • エピソード2 エニックス時代、執筆、ゲームプログラミングスクール
  • 作品、著書 1
  • 作品、著書 2
  • ゆかりの深い方々、最後に

公開記念として特別に、講演ダイジェスト版として、エピソード1の冒頭を抜粋し、ご紹介いたします。

~一部抜粋~

エピソード1
きっかけ、どうやって学んだのか?

福田:ちょっとずっとゲームと関係ない話ばっかりで大変申し訳ないんですけど、ここでやっとゲームがでる。当時ですね、インベーダーブームが、1回目卒業されて就職、1回目の会社にっていう辺りで流行ったと思うんですよね。

日高:1回目じゃなくて2度目の会社辺りですね。

福田:2度目のところですかね。

日高:カーメイトの時だと思うんですよね。

福田:やってましたか?ってことなんですよね。ゲームで。右側の方がテレビジャックを販売してるころなんですが、そろそろこのぐらいの時代で日本も段々ゲームっていうのがこう浸透してきたかなっていう感じだったんですけど。

日高:いや〜、私こういうのを見るとバカだなって、ただ思ってましたね。

福田:なんですよね?全然されてなかったっていう。

日高:したことないですよ。

福田:全然したことない?100円入れたこともじゃあ無いってことですか?

日高:ないですね。

福田:ないですか。

日高:カーメイトの時に、秋葉原の角田無線っていう電機屋さんに下ろしてたんですけど、そこの社員が喫茶店行こうって、行った途端に100玉いっぱい積んで、インベーダーゲームやりだす。「何でそんな事やってんの?」って言ってバカにしてた記憶はあるんですけど。

福田:だから周りはやってたけども自分ではもうこんなのお金入れてやるのはバカみたいな話だった?

日高:ないですね。

福田:当然家にも、ああいう風なの買ったりっていうそういう事も全然無かったってことですね?

日高:ないですね。

これらの講演・展示イベントは、サポーターの皆さまから会費のご支援をいただき、実現しております。
改めて、皆さまの日頃のご支援に感謝申し上げます。
まだサポーターにご登録頂いていない方は、ぜひこの機会にサポーターに登録して一緒にゲーム保存を盛り上げていきましょう。よろしくお願いいたします。

2019年もゲーム保存協会を日頃よりご支援いただき、誠にありがとうございました。
未来のゲーム文化を残すべく、メンバー一同精進して参りますので、今後ともご支援いただけますと嬉しく存じます。

今後ともゲーム保存協会をよろしくお願いいたします。
皆さま、よいクリスマス&年末年始をお過ごしください!


☆名誉会員ギャラリー

【PasocomMini PC-8001使用レビュー】 パソコンミニでプログラムをつくってみた 編

はじめに

以前からサポーター会員の形でゲーム保存協会に協力していましたが、理事長さまからの強い要望により :) 昨年から正会員に加わりました UME-3 と申します。

今回、私の方にもパソコンミニの記事を書くよう仰せつかりまして、筆を取らせていただくことになりました。

 

私が主に興味のあるパソコンミニの技術的な話は、ウルサイ人(笑)がこれ以上ないくらいすばらしく濃い記事を既に書かれています。

他のいろいろな記事では、パソコンミニの紹介や使い方、内蔵ゲームソフトのレビューなどの記事が多いようです。

 

もちろんそれはそれでよいのですが、パソコンであればプログラミングも大きな楽しみ方の一つではないでしょうか。

パソコン黎明期には、ソフトというのは自分で作るものでした。マイコンBASICマガジンなどを参考に、ぽちぽちとBASICプログラムを作った経験のある方も多いことと思います。

内蔵のゲームやカセットテープから変換したゲームで遊ぶのもよいですが、せっかく電源ONですぐに使えるBASICがあることですし、ひとつなんか作って記事にしてみようか、と思い立ちました。

 

なお、私自身はPC-8801のN88-BASICやマシン語は扱っていますが、PC-8001のN-BASICを本格的に使うのは初めてです。

N-BASICでは画面クリアの命令がなくPRINT CHR$(12);で代用が必要とか、N88-BASICにはある便利な編集命令がないとか、変数は最初の2文字しか認識しないとかの制約はありますが、おおむね主要な命令はN-BASICにも実装されていましたので、慣れればそれほど困惑することもありませんでした。

 

 

ネタを考える

作ってみようと思いついても、まずはネタ出しが必要です。

さて何を作ろうか…と考えてみたわけですが、締め切りのある限られた時間内でアイデアをひねり出すというのはなかなか難しいものです。

少し考えた結果思いついたのが、学生の頃、つまらない授業の合間に:) ポケコン(PC-E500)のBASICで作ったワンキーゲームでした。

2000年頃までは定期的にポケコンの電池を交換してプログラムを維持していたのですが、それもやがて失われてしまい、当時のプログラムは現在は残っていません。

PC-E500用のデータレコーダやRS232Cのインターフェースは当時は持っておらず、バックアップも取れなかったのです。

 

しかしながら、当時作ったアイデアと、どうやって作ったかは今でもなんとなく覚えています。

それをベースに、ぽつぽつとプログラムを作り始めたのでした。

 

そのプログラムとはホームラン競争のゲーム。

単純に来たタマを打ち返すだけの単純なものですが、そこそこ丁寧に作ったこともあり、作り始めてから1週間くらいかかりました。

エミュレータやPC-8801実機などのN-BASICで作ってからパソコンミニに持ってくることもできるのですが、それだとパソコンミニの評価にならないので、製作はすべてパソコンミニ上で行いました。

 

 

まずはキャラクタパターン作りから

このゲームの元となったアイデアは、ノーマルキャラクタを連続でアニメーションぽく表示すれば、武骨なデザインでもそれっぽく見えるのではないか? という思いつきからです。

当時流行っていたス○2とかのキャラを、ポケコンの狭い画面で表示して、○どーけん とか ○ょーりゅーけん とか、雰囲気で動かしたりしていました。

 

というわけで最初にとりかかったのは、投球動作とバッティング動作のキャラクタパターン。

6つくらいのパターンを連続で表示するようにして、動きをチェックするところから始めました。

PC-E500の時は表示画面のサイズの関係で2×2で作った記憶がありますが、PC-8001だと画面が広く使えるので、40桁モードの3×3でデザインしています。

どんなもんかな。

 

 

キャラクタのパターンを作るには、できるだけ多くの種類の文字が使えた方がよいですが、ここで SHIFT + @, \, [, ] で入力する ~, |, {, }の各文字が入力できないことに気がつきました。

「バグじゃないのこれ」と思ったのですが、実はPC-8001初代やPC-8801のN-BASIC ver 1.2までは実機でもこれらの文字は入力できないのが仕様だそうで、後のPC-8001mkIIやPC-8801mkIIでは直接入力できるようになったのだそうです。なんと。

こんなところも後継機で地味に改良されたんですね。

 

直接入力できない文字は、

KEY 1,CHR$(&H7E)

などと、ファンクションキーに定義してから、F.1キーを押すことで入力するような小技もいまだになんとなく覚えています。

 

 

パソコンミニの公式のサポートサイトのキーボードレイアウトの説明は、2019/11/3現在では間違いがあるようです。

Insert,Delete,Home,End の各キーは実際にはINS,DEL,HOME,CLRとしては効きませんし、GRPHモード時のテンキー部の割り当てが、実際に入力されるキャラクタがWebの説明と違うようです。

101/106キーボードの説明ではUSBキーボードの刻印が表示されていないので、標準的なキーボード以外を使用している場合はどれがどのキーに相当するものなのか読み取れないのも困るところです。

USBキーボードとPC-8001で割り当てが違う特殊なキーについては、キーボードレイアウトの図に加えて、PC-8001とUSBキーボードのキー割り当ての対応表を掲載しておくと、より利便性が高まるのではないかと思います。

 

 

タマを投げて打つ

 

次に、スペースキーでタマを投げ、来た球を打ち返す部分を作ります。

ピッチャーとバッターを立たせて、ピッチャーがタマを投げ、バッターにスイングさせます。

燃えプ○のように「バントでホームラン」とかは実装として明らかにおかしいので、スイング開始からスペースキーをずっと押しっぱなしにしないと打球が飛ばないような仕組みもこの時に入れています。

ファ○スタでやるような、振り遅れを防ぐためにハーフスイング状態で構えても、やっぱり飛ばないようにしました。

簡単なゲームですし、ズルは許さんぜ。

 

スイングの動作が特定のパターンの時に当たるようにしていますが、このときのタマの位置で飛ぶ角度が変わるように仕込んでいます。

スイングを始めてから当たるまでに少しタイムラグがあることで、ゲームっぽくなった感じです。

 

 

タマを飛ばす

 

当たり判定をつけたら、次はタマを飛ばす動作です。

 

PC-8001のN-BASICにはテキスト画面を代用した160×100ドットのローレゾグラフィックがBASICの命令で手軽に使えます。

これは1つの文字キャラクタを 2×4 ドットのグラフィックパターンとして使うものなので、色をつけるのもこの1文字に相当する 2×4 の単位でしかできず、また色を変える回数も1行あたり最大20回までの制限があります。

後継のPC-8801のN88-BASICでは高精細なグラフィック画面がついたせいか、このようなローレゾグラフィックの命令はサポートされなくなってしまったのはちょっと残念ですね。

 

打ったタマの描画ですが、当時は理系の学生だったのでベクトルやら三角関数やらは普通に理解していたのですが、30年以上経過した昨今では「あれ、どうやって計算するんだっけ」と思い出すまで、頭の中の引き出しをひっかきまわす必要がありました。

結果的には大したことはやっていないんですが…。

 

また、単純に地平線だけで放物線を描くと、ゴルフみたいな感じになってしまうので、外野にフェンスをつけました。

が、このフェンスの当たり判定について、後にデバッグで苦労することになります。

 

 

最初はゲームとして、乱数の要素を入れずに純粋にテクニックだけで遊べるようにしたかったのですが、これだけ単純な動作だとタマを散らす要素が少なく、弾道がいつも決まったようなパターンになってしまいました。

そこで仕方なく乱数の要素を付け加えました。打球の初速と角度に色をつけることで、そこそこ弾道が散るようになったと思います。

 

 

 

その他の飾り

ゲームの本質と関係ありませんが、やっぱり体裁を整えるにはタイトル画面やらリザルト画面はあった方がいいかと思います。

手抜きですが、それっぽく実装しました。

N-BASICには行の色を反転するLINE命令があるのに気がついて、せっかくなので使ってみたり。

リプレイの確認のキーはY,y以外にもいろいろなキーが効くように、INSTR関数の小技を使ったりもしています。

 

 

ひたすら調整

タマを投げて打って、という基本的な動作ができるようになったところで、ここからはひたすら調整とデバッグです。

 

フェンスをつけたものの、フェンスの当たり判定がおかしくてタマがフェンスを突き抜けてしまったり、フェンスを越えたタマがおかしな動きをするようになったりしたので、その辺を地道に修正。

フェンスの位置や高さも変えられるようにして、最終的にフェンスは少し高めにしました。

横○スタジアムくらいの高さにはなったかな。フェンスの色を青にしたのもその影響です。

 

乱数の要素や初速等を調整して、なかなかホームランが出そうで出ない、くらいのいい感じになるようにしたつもりですが、どんなもんでしょうか。

このあたりはひたすらタマを投げて打って調整して、を繰り返していました。

 

キャラクタのパターンはもっといい表現ができないか、何度かいじっています。

なんとなくパターンの枚数も1枚増やして7枚にしてみたり。

 

いいアイデアが浮かばない時は、一晩ゆっくり寝るのがいいですね。

プロ生ちゃんの言うとおり、「プログラミングは心の整理整頓的な何か。」なのかもしれません。

 

ある程度満足したところで、完成とあい成りました。

 

 

 

つくってみて

 

というわけで、パソコンミニで1本プログラムを作ってみたわけですが、もろもろの所感など。

 

  • パソコンミニでの全体的なN-BASICの動作速度は、実機と比べてやや遅く感じました。

これが意図的にそのように調整されたものなのか、エミュレータの動作の都合によるものなのか、ラズパイZEROの能力によるものかはちょっとわかりません。

が、調べたところによると、どうもPC-8001初代とPC-8001mkII以降でも動作速度は異なるようで、処理によってPC-8001初代の方が遅かったり、PC-8001mkII以降の方が遅いケースなどもあるようです。パソコンミニではPC-8001初代に合わせて調整されているのかもしれません。

 

  • キーを押しっぱなしにしたときのキーリピートが効いたり効かなかったりするようです。

パソコンミニではPC-8001には本来存在しない←や↓のキーを押した場合、利便性を考慮してエミュレータが内部的にそれぞれSHIFT+→、↓のキーが押されたように変換しているようです。

このためファンクションキーを表示している状態(CONSOLE ,,1)ではファンクションキー表示が一瞬反転します。ここまではマニュアルにも記載があります。

ですが、キーリピートの不具合(?)か、キーを押しても表示が反転するだけでカーソルが移動しなかったり、SHIFTが判定されずに逆方向へカーソルが動きだすことがしばしばありました。
どうもキーを取りこぼしているような反応に見えます。ファンクションキー表示がされている状態では特に顕著です。
ファンクションキー表示を消す(CONSOLE,,0)ことで軽減できますし、表示のちらつきもなくなりますので、プログラムを行なうにはこちらの方がよいかもしれません。

キーリピート関連ではもう一つ、バッティングの際にSPACEキーの入力に当初INKEY$で検出しようと思って実装したところ、キーリピートが効かず1回分の入力にしかならなかったので、これもエミュレータの不具合かなと思ったのですが…

こちらはまた別で、実はここにもN-BASICの仕様が隠されていました。
(N-BASICはN88-BASICと似ているようでところどころ違うのでつまづきますね…)

実はN-BASICではINKEY$でキーリピートが効かないのは仕様だそうです。なんと。
N88-BASICや、他の機種でもINKEY$はキーリピートの効く機種が多かったので、びっくりしました。

今回のゲームではINKEY$の代わりにINP関数でキーボードI/Oを直接読むようにしましたが、これは正しい対応だったということになります。
なお、INKEY$の代わりにINPUT$(1)を使ってもキーリピートは効くそうです。

 

  • プログラムのセーブはCMTファイルへのセーブのほかにステートセーブが使えるのは非常に便利です。

テープイメージからCLOADしなくても、前回の続きからプログラミングができます。

気をつけるべきは、ロードしようとしたにも関らずうっかりセーブを選択して上書きしてしまったりすること。またその逆もありえます。

これは作成中本当に注意して操作していました。もし実際にやらかした場合、ロードしようとしてセーブした場合はせっかく作ったプログラムがきれいさっぱり空の内容で上書きされてしまいますし、逆にセーブしようと思ってロードした場合はせっかく修正したプログラムが修正前の状態に戻ってしまいます。

プログラム作成中はステートセーブだけに頼らず、バックアップの意味でもCMTイメージへのセーブを併用するようにしていました。

 

不具合については私が使ってみた時点(初期版)ではこのような現象があった、というだけことですので、今後のバージョンアップなどで解消されるかもしれません。

期待したいところですね。

 

パソコンミニは、当時のBASICがメーカーに公式に認められている環境として使用できる点でも貴重なものだと思います。

今更40年前のBASIC? なんて声も聞こえてきそうですが、手軽に扱えますし、アイデア次第で「おおっ」というものも作れるかもしれません。

楽しいゲームのプレイの合間に、たまにはものづくりの楽しさに触れてみるというのはいかがでしょうか。

 

ゲーム保存協会 UME-3

 

【おまけの付録】プログラムリスト

UME-3さんのご厚意により、今回の製作したプログラムリストとCMTファイルを公開いたします。
宜しければこちらのデータを使って皆さんも遊んでみてくださいね。

 

▼ダウンロードはこちら

シフトJISだとグラフィックキャラクタが文字化けしてしまいますので、プログラムは画像形式でも用意しました。