1. 6ぽんの 線の うち、はなすのに つかうのは?
1. ケーブルの端子は6ピン、使うのは3本だけ
1. 6ピンの端子と、通信に使う3本の線
ゲームボーイの ケーブルの はしには、6この 金ぞくの ピンが あります。でも おはなしに つかうのは 3ぽんだけです[3]。
1ぽんは 出す 線、1ぽんは 入る 線、もう 1ぽんは 「いま」と いう あいずを おくる 線です。のこりは でんきを おくる 線、ゴールに あたる 線、つかわない 線が 1ぽんずつです。
ふしぎなのは、ケーブルの かたほうの はしで、出す 線と 入る 線が ×の かたちに いれかわって いる ことです。だから 1だいが 出した ものが、もう 1だいの 入る ところに とどきます[3]。
3ぽんの 線で、いったい だれが 「いま」の あいずを 出すのでしょう。
ゲームボーイの通信ケーブルの端子には、6本のピンがあります。ただし、実際に通信で使うのはそのうち3本です。データを出す線(SOUT)、データを受け取る線(SIN)、そしてタイミングを知らせるクロックの線(SCK)です。残りは電源(+5V)、グランド、使われていない1本です[3]。
面白いのは、ケーブルの片端でSOUTとSINが交差していることです。これで、片方の機械が出したデータが、もう片方の入力へ届きます[3]。2台のどちらから見ても「出す線」と「受ける線」がつながる、という工夫です。
ただし、この配線の情報は、有志がまとめた技術資料によるものです。任天堂が公開している配線図は、今回の資料には出てきません。
では、3本の線のうち、タイミングを決めるクロックの線は、2台のどちらが動かすのでしょうか。
通信ケーブルの端子は6ピンで、並びは電源(+5V)、データ出力(SOUT)、データ入力(SIN)、使われないピン、クロック(SCK)、グランドとされる[3]。このうち実際に通信へ使うのはSOUT・SIN・SCKの3本であり、電源とグランドは回路の基準、残る1本は未使用である。
ケーブルは、片端でSOUTとSINが入れ替わる交差配線になっている[3]。仮に交差がなければ、2台とも出力線どうしをつないでしまい、どちらの出力もどちらの入力にも届かない。交差があるから、片方の出力がもう片方の入力に届く。1本のケーブルで両方向の通信ができる理由は、まずここにある。
ただし、この配線の資料は有志の技術資料であり、任天堂公式の配線資料は今回参照した範囲にない。公式の側で確かめられるのは、商品としての通信ケーブルの型番や対応機種、価格といった点である。
線が3本あるとして、タイミングの線を動かすのはどちらか。次はその役割分担を見る。
2. 「いまだよ」の あいずは、どちらが 出すの?
2. 合図を出す「親」と、じっと待つ「子」
2. クロックを作るマスターと、外部クロックで待つスレーブ
2だいの うち 1だいは 「おや」に なります。おやは じぶんで 「いま」の あいずを つくって、いれかえる じかんを きめます[1]。
もう 1だいは 「こ」です。こは あいずが くるまで まって います。しかも あいずが くるまで、なんじかんでも まちつづけます[2]。
ひとの かいわで たとえると、おやが 「せーの」と こえを かける 人、こが それを きいてから うごく 人です。ただし ほんとうは、こえでは なくて でんきの しんごうです。
では 「せーの」の あと、なかみは どう いれかわるのでしょう。
通信では、2台のうち1台が「親」(マスター)になります。親は、自分の内部でクロック信号を作り、データを入れ替えるタイミングを決めます。もう1台は「子」(スレーブ)で、親が作ったクロックを受け取って動きます[1]。
子は、クロックの元を「外部」にして待ちます。外部クロックのときは、相手からの合図が来るまで、何時間でも待ち続けます[2]。ケーブルの向こうに親がいなくても、子はただ待っているだけです。
この親と子の役割は、「SC」というレジスタ(本体の中の小さな記憶場所)の最下位ビットで切りかえます[2]。
クロックを出す係が1台に決まっているので、2台のタイミングはぴったり合います。では、そのクロックが1回鳴るたびに、中身はどう動くのでしょうか。
通信の主導権は、クロックを作る側(マスター)にある。マスターは内部クロックでタイミングを決め、もう1台のスレーブはそのクロックを受けて動く[1]。タイミングの線が1本だけ要り、2台が別々に時計を持って合わせる必要がない。これが線の本数を少なくできる理由の1つと考えられる。
スレーブは、クロック源を外部に設定して待つ。外部クロックの場合、動作中のシリアルポートは、相手からのクロックが届くまで際限なく待つ[2]。そのため、ケーブルの先にマスターがいない、あるいはマスターがまだ始めていない状況でも、スレーブ側は待ち続けうる。
どちらの役を務めるかは、SC(Serial Control、エスシー)の最下位ビットで切りかわる[2]。つまり、役割は配線の違いではなくレジスタの設定である。
役割が決まれば、次は中身がどう動くか。クロックの1拍ごとに何が起きるのかを、8拍で追う。
3. 「せーの」を 8回 かぞえると、なにが おきる?
3. 8回の合図で、2台の中身が同時に入れ替わる
3. 8拍のあいだに、各機のバイトが同時に入れ替わる
おやが 「せーの」の あいずを 1回 出す たびに、2だいは 1つぶんの 「0か1」を おたがいに わたします。8回 くりかえすと、8つぶん、つまり 1バイトが そろいます[1]。
いちばん だいじなのは、「おくって から へんじを まつ」のでは ないことです。わたすのも うけとるのも、おなじ ときに おきます[1]。
むかいあった 2人が、8まいの カードを 「せーの」で 1まいずつ さしだして、おなじ ときに もらうのと にて います。8回 おわると、2人の てもとの カードが ぜんぶ いれかわります。ただし ほんとうの ゲームボーイでは、カードでは なく でんきの ON・OFFです。
では、ケーブルが つながって いない ときは?
クロックが1回鳴るたびに、各機は手持ちのデータの左端(最上位)の1ビットを線へ送り出し、同時に、相手から来た1ビットを取り込みます[1]。8回繰り返すと、8ビット、つまり1バイトぶんが入れ替わります。
ここで押さえておきたいのは、送信と受信が同時に起きることです。「こちらが送って、終わってから相手が返す」という往復ではありません[1]。1つの動作のなかで、自分のバイトを渡しながら、相手のバイトを受け取っているわけです。
向かい合った2人が、8枚のカードを「せーの」で1枚ずつ差し出し、同時に受け取る場面に似ています。8回目が終わると、2人の手元のカードが入れ替わっています。ただし実際のゲームボーイは、カードではなく電気の信号で0と1を表しています。
この方式なら、お互いが同時に相手へ伝えたいときにも、手順が増えません。では、ケーブルが抜けているとき、受け取る側には何が届くのでしょうか。
クロック1拍ごとの動きは次のとおり。各機は、シフトレジスタの最上位ビットを線へ送り出し、同時に、相手から届いたビットを取り込む[1]。8拍が終わると、両方の中身が丸ごと入れ替わっている。通信の単位が1バイト(8ビット)なのは、この8拍を1セットとして数えるためである[1]。
注意すべきは、送信と受信が別々の段階ではなく、同じ拍の中で同時に進むことだ[1]。「送って、受け取る」と読むと、片方向を2回行う方式のように思えるが、実際は1回の入れ替えである。そのため、1バイトを渡すたびに、必ず1バイトが返ってくる。
この仕組みの利点は、手順が単純なことにある。2台が同時に相手へ情報を渡したい場面では、順番に送受信を調整する必要がない。逆に限界もある。1拍ごとに1ビットしか動かず、クロックを出すのは片方だけなので、送りたい内容がないほうも、入れ替えにつきあうことになる。
この単純さは、通信が失敗したときの動きにも表れる。ケーブルが抜けていたら、受け取る側には何が届くのか。
4. ケーブルが ぬけて いると、なにが とどくの?
4. ケーブルが抜けていると、「全部1」ばかりが届く
4. 未接続のとき、マスターの入力は$FF(全ビット1)になる
ケーブルが つながって いないと、おやは 「1」ばかりを よみつづけます。8つ ぜんぶが 1の かたまりが、なんども とどきます[1]。
これは、あいてが へんじを して いるのでは ありません。だれも いない ところから、「ずっと 1」と いう ようすが かえって くるだけです。
ソフトが この ようすを みれば、「あれ、ケーブルが ささって いない かも」と きづけるかも しれません。
では、この 8つぶんの いれかえは、1びょうに どのくらい できるのでしょう。
ケーブルがつながっていないと、親の入力の線は1を読み続けます。その結果、親は、8ビットすべてが1の値(16進数で$FF)のバイトばかり受け取ることになります[1]。
これは、相手が「FFです」と答えたのではありません。誰もいない線から、何も来ないことが「ずっと1」として読めてしまうのです。
「全部1」だけが並ぶのは、通信相手がいないときの目印になりうる、ということでもあります。ただ、その使い方そのものは資料に書かれておらず、仕組みから考えられる使い道です。
では、この入れ替えは1秒に何回できるのでしょうか。
ケーブルが外れているとき、マスター側の入力ビットは1を読み始める。その結果、マスターは$FF(全ビットが1)のバイトばかりを受け取る[1]。
ここで見落としやすいのは、1バイト届いたことが、通信が成立した証拠にならない点である。相手が$FFと返信したわけではなく、「相手がいない」ことが「全ビット1」という値として現れている。$FFだけが続く場合は、ケーブルの抜けや相手の未応答を疑う余地がある。ただしこの使い方(検出に使う)を述べた資料は今回の範囲になく、仕組みから導かれる推測である。
一方、スレーブ側は、先に見たように外部クロックを待つだけなので、ケーブルが抜けていればクロックが届かず、待ち続けることになる[2]。同じ「つながっていない」状況でも、マスターは$FFを受け取り、スレーブは待ちぼうけになる。役割によって、異常の現れ方が違う。
通信が成立したとして、速さはどうか。8拍で1バイトなら、1秒にどれだけ入れ替えられるのかを、数字で見てみる。
5. 1びょうに、どのくらい いれかえられるの?
5. 1秒に約1キロバイト ── 8192÷8の計算
5. 8192Hzのクロックと、1秒約1キロバイトという上限の計算
はじめの ゲームボーイの クロックは、1びょうに 8192回です。1バイトは 8回なので、8192を 8で わると 1024。1びょうに 1024バイトが うえの めやすです[1]。
ただし これは「いちばん はやい ばあい」の けいさんです。じっさいには、ソフトが じゅんびする ために まつ じかんが あり、もっと おそく なります[1]。
1びょうに 1024回の いれかえは、しゃしんを おくるには たりません。でも 「いま ひだりに うごいた」のような みじかい ことを つたえあうなら、じゅうぶんな はやさです。
では、この かんたんな しくみで、どんな あそびが うまれたのでしょう。
初代ゲームボーイ(カラー対応前の動作)が自分で作れるクロックは、8192Hz、つまり1秒に8192回だけです。1バイトの入れ替えに8回かかるので、8192÷8で、1秒あたり最大1024バイト、約1キロバイトになります[1]。
この1024バイトは、待ち時間を除いた上限の目安です。実際はソフトの側の準備の待ちがあるので、これより遅くなります[1]。
ある用語集には「約600bps」という別の数字もありますが、技術資料の8192Hzと食いちがうため、ここでは使いません。
1秒に約1キロバイトは、大きなデータを送るには足りません。ただし、「いま左へ動いた」「ラインを消した」のような短い情報を、2台で伝え合うには十分な大きさです。
では、この単純な仕組みの上で、どんな遊びが生まれたのでしょうか。
初代機(非カラー動作)の内部クロックは8192Hzのみである[1]。1バイト=8拍なので、8192÷8=1024バイト毎秒。資料はこれを「待ち時間を除いて約1キロバイト毎秒」と説明する[1]。ここで大事なのは、この1024は上限の計算値であり、実測値ではないことだ。ソフトが次のバイトを用意するまでの待ちがあるため、実際の転送はこれより遅くなる。
別の用語集には転送速度を約600bpsとする記述があるが、8192Hzという技術資料の値と大きく食いちがうため、本稿では採用しない。出典どうしが割れるときは、仕組みから計算できる値のほうを優先した。
実感に置きかえてみる。1拍は約0.000122秒(1÷8192)、8拍で約0.001秒だから、1バイトの入れ替えは理論上1ミリ秒ほどで終わる。それでも、大きなデータを送るには足りない。一方、対戦に必要な「ブロックを置いた」「ラインを消した」といった短い情報なら、十分に間に合う。
では、この単純な仕組みを、遊びの側はどう使ったのか。
6. 「たいせん」にも つかう ケーブルを、「こうかん」にも つかった 人は?
6. 対戦にも使われたケーブルを「交換」にも使った、田尻智の発想
6. 対戦にも使われた通信ケーブルを「交換」にも使う ── 田尻智の発想
任天堂の ページでは、通信ケーブルは 1500円(ぜいべつ)です。ゲームボーイを つなぐ ための ものでした。4人で あそぶ ための アダプタも ありました[4][5]。
ポケモンの 石原さんは、ケーブルと テトリスが あわさった ことを 「ほんとうに あつかった」と はなして います[7]。
ところが 田尻智さんは、おなじ ケーブルで モンスターを 交換する ことを かんがえました[6]。ポケモンが 1996年2月に 発売された つぎの 月から、ケーブルは きゅうに うれ だしたと いわれます[6]。
ケーブルの しくみは おなじです。あそびかたが かわっただけで、みんなの あつまりかたが かわりました。
任天堂のページには、通信ケーブル(DMG-04A)が、初代ゲームボーイを通信接続するためのものとして載っています。価格は1,500円(税別)で、変換コネクタを使えば、ゲームボーイカラーやポケットでも使えるとされます[4]。4人用アダプタ(DMG-07)は、初代のゲームボーイ4台をつなげるもので、3,000円(税別)でした[5]。
ポケモンの石原恒和さんは、インタビューで、通信ケーブルという発明が合わさった『テトリス』は本当に熱かった、と語っています。そして田尻智さんの発想は、それを「ポケモンの交換というデータ通信」に使うものだった、と続けています[7]。
ポケモンの企画は、田尻さんが1990年、自分のゲームボーイの中のモンスターを、ほかのプレイヤーのモンスターと交換するという案を、任天堂に提案したことに始まると紹介されています[6]。発想の背景には、子どものころの昆虫採集の体験があると紹介されています[8]。交換を思いつくまでの詳しい過程は、ここでは描きません。
ポケモンの発売の翌月から、通信ケーブルが急に売れ出したと伝えられています。交換に重きを置いたしくみに、子どもたちが敏感に反応した、という見方です[6]。ただし、売れた数の具体的な値は、資料にありません。
8拍で入れ替える仕組みは、同じままです。使う人の考え方が変わり、その使い道を子どもたちが広げました。
任天堂の商品ページでは、通信ケーブル(DMG-04A)は初代ゲームボーイ(DMG-01)を通信接続するためのもので、価格は1,500円(税別)。変換コネクタ(MGB-004)を使えば、ゲームボーイカラー、ポケット、ライトでも使える[4]。4人用アダプタ(DMG-07)は初代4台を接続できたが、カラー、ポケット、ライトには使えず、価格は3,000円(税別)である[5]。
では、この道具は何に使われ、そこへ誰が別の使い道を持ちこんだのか。ポケモンの石原恒和氏は、インタビューで、通信ケーブルという発明が合わさった『テトリス』は本当に熱かった、と述べる。そして、田尻智氏の発想は、その仕組みを「ポケモンの交換というデータ通信」に使うものだった、と語る[7]。
ポケモンの企画の出発点は、1990年に田尻氏が、自分のゲームボーイの中のモンスターを、別のプレイヤーのモンスターと交換する、という案を任天堂に出したことだと紹介される[6]。この発想の背景には、子どものころの昆虫採集の体験があると紹介される[8]。交換を思いつくまでの詳しい過程は、ここでは描かない。
発売後の動きについて、同じ記事は、ポケモンの発売(1996年2月27日)の翌月から、ゲームボーイ用の通信ケーブルが急速に売れ出したとする。交換に重点を置いたコンセプトに子どもたちが敏感に反応した、というのが記事の見立てである[6]。ただし、販売数の具体的な値は出典にない。「急速に売れた」という表現の強さを超えて、数字は引けない。
ここまでの筋道を並べると、8拍でバイトを入れ替える仕組みは、一度も変わっていない。変わったのは、その入れ替えに何を乗せるかである。対戦なら遊びの中の短い情報、交換ならモンスターのデータ。同じ1バイトの入れ替えが、遊びの形を変えた。
7. 「せーの」で カードを いれかえて みよう
7. 友だちと「せーの」で8枚のカードを入れ替えてみる
7. 入れ替えを手で再現する ── 8枚と1024回の感覚
ともだち 1人と、むかいあって すわります。かみを 8まい きって、それぞれに ○か ×を かいて ください。
ひとりが 「せーの」と いったら、おたがいの 1まいめを、おなじ ときに さしだして こうかんします。これを 8回 やります。
おわると、2人の カードが ぜんぶ いれかわって います。「せーの」と いった ほうが 「おや」です。つぎは やくわりを かえて、おなじことを して みましょう。
ゲームボーイの ケーブルが、どんな ことを して いたか、からだで わかります。
友だち1人と向かい合って座り、紙を8枚に切って、それぞれに○か×を書きます。1人が「せーの」と声をかけたら、お互いの1枚目を同時に差し出して交換します。これを8回続けます。
終わると、2人の手元のカードがすべて入れ替わっています。声をかけた側が親、待っていた側が子です。次は役割を交代して、同じことをやってみましょう。
1回に動くのは○か×の1枚だけです。それを8回数えるあいだに、1バイトぶんの情報がお互いの手に渡ります。交換できたことが、そのまま通信になっている、と考えると、仕組みの単純さが実感できます。
もう一歩進めるなら、8192÷8=1024という計算を、自分で確かめてみてください。1バイトぶんの入れ替えを1秒に1024回行う、というのがゲームボーイの上限の目安でした[1]。
カードの入れ替えにかかる時間をストップウォッチで測り、1秒に1024回の速さと比べてみるのも面白いです。
手で再現する方法が1つある。2人が向かい合い、○か×を書いた8枚の紙札を持つ。「せーの」の合図で、互いに1枚ずつ同時に出して交換する。これを8回繰り返すと、2人の札はすべて入れ替わる。合図を出した側がマスター、待った側がスレーブに当たる[1]。役割を交代してもう1度やると、どちらが親でも同じ結果になることが分かる。
計算の確認も1つ。1バイト=8拍、クロック8192Hzなら、8192÷8=1024で、1秒あたり最大1024回の入れ替えが上限の目安である[1]。実際はソフトの待ちがあるため、これより遅い。自分の手で8枚の入れ替えにかかる時間を測り、それを1秒に1024回繰り返す速さを想像してみると、上限の感覚がつかめる。
原典を読みたくなったときは、技術資料のPan Docsの「Serial Data Transfer (Link Cable)」と「External Connectors」が、本稿の中心的な出典である[1][3]。英語の有志資料なので、公式資料ではない点に注意が必要だ。公式の側では、任天堂の商品ページで、通信ケーブルと4人用アダプタの型番・対応機種・価格が確認できる[4][5]。
残る問いは、ポケモンのほかにも、この入れ替えを別の形で使った遊びがあったのか、という点である。それは資料の範囲を越えるので、各ソフトの説明書や公式の年表に当たるところから始めることになる。
しらべた もとの じょうほう
参考にした情報源
参考にした情報源と、その使い方
技術面はPan Docsなどの有志資料を中心に、商品情報は任天堂の公式ページ、使い道の話はインタビューと報道記事で確かめました。
- Pan Docs「Serial Data Transfer (Link Cable)」。https://gbdev.io/pandocs/Serial_Data_Transfer_(Link_Cable).html (クロック、親子、8拍の入れ替え、転送速度、未接続時の動作)
- gb-asm-tutorial「Serial Link」。https://gbdev.io/gb-asm-tutorial/part2/serial-link.html (外部クロックで待つ動作、役割の設定)
- Pan Docs「External Connectors」。https://gbdev.io/pandocs/External_Connectors.html (6ピンの端子、SOUTとSINの交差)
- 任天堂「ゲームボーイ 周辺機器(通信ケーブル)」。https://www.nintendo.co.jp/n02/dmg/hardware/option/acce.html (通信ケーブルの型番、対応機種、価格)
- 任天堂「ゲームボーイ 周辺機器(4人用アダプタ)」。https://www.nintendo.co.jp/n02/dmg/hardware/acesorie/index.html (4人用アダプタの型番、対応機種、価格)
- 文春オンライン「ポケモン」の記事。https://bunshun.jp/articles/-/1548 (田尻智の提案、発売の翌月からの通信ケーブルの売れ行き)
- GameBusiness.jp「石原恒和氏インタビュー」(2016年)。https://www.gamebusiness.jp/article/2016/03/03/12036.html (通信ケーブルとテトリス、交換への使い道の語り)
- ハグクム(小学館)田尻智の学習まんが。https://hugkum.sho.jp/190786 (発想の土台にある昆虫採集)
なおした ところ
更新履歴
更新履歴(改版の記録)
- 初版を公開。
このサイトでは、公開した記事の本文は原則として書き直しません。誤りが見つかったときや、内容が古くなったときだけ手を入れ、その理由をこの欄に残します。