Commodore 64 の開発: エンジニアの物語
史上最も売れたコンピューターに込められた大胆さとデザイン
1981年1月、コモドア・インターナショナル社の子会社であるペンシルベニア州ウェストチェスターのモス・テクノロジー社の数人の半導体エンジニアは、「世界最高のビデオゲーム」を作りたい人に販売するためのグラフィックス・チップとサウンド・チップの設計を始めた。 1982 年 1 月、これらのチップを組み込んだ家庭用コンピュータがネバダ州ラスベガスの冬季コンシューマー エレクトロニクス ショーで発表されました。プロトタイピングに社内の集積回路製造施設を使用することで、エンジニアは各チップの設計時間を短縮しました。 9 か月足らずで、5 週間足らずでショー用に 5 台のプロトタイプ コンピューターを設計して構築しました。 しかし、他の家庭用コンピュータ業界が最も驚いたのは、Commodore 64 の初売価格でした。キーボード、中央プロセッサ、グラフィックスとサウンド チップ、および 16 キロバイトの代わりに 64 キロバイトのメモリを組み込んだユニットが 595 ドルでした。または当時標準と考えられていた32。
チップ開発プロジェクトが開始されたとき、Commodore 64 は設計者が念頭に置いていたものではありませんでした。 MOS Technology は半導体販売会社でした。 当時アルバート・シャルパンティエが率いていた同社のLSIグループは、コモドールの家庭用コンピュータVIC-20に搭載されるチップの一部を担当していたが、そのプロジェクトはすでに量産に入っていた。 「私たちには、世界の他の国々が私たちに望んでいるようなチップのアイデアがまったくありませんでした」とシャルパンティエ氏は述べています。 」
この記事は最初に「デザイン ケース ヒストリー: コモドール 64」として公開されました。 これは IEEE Spectrum の 1985 年 3 月号に掲載されました。 PDF バージョンは IEEE Xplore で入手できます。 チップ、回路基板、画面の図と写真は、元の印刷版に掲載されています。
当時コモドール社のワールドワイドエンジニアリングディレクターだったチャールズ・ウィンターブル氏がこのチップの開発にゴーサインを出し、シャルパンティエ氏のグループは1981年11月中旬に両方のチップが完成するまでかなり独立して作業を進めた。
同月下旬のシャルパンティエ氏とウィンターブル氏との会合で、当時コモドール社の社長だったジャック・トラミエル氏はビデオゲームの開発を続行しないことを決定した。 その代わりに、同氏は、このチップを 1982 年 1 月の第 2 週にラスベガスで開催されるコンシューマー エレクトロニクス ショーで発表される 64 キロバイトの家庭用コンピュータに搭載することを決定しました。コンピュータはまだ設計されていませんでしたが、それは簡単に修正されました。
エンジニアたちは 2 日かけて、マシンの基本アーキテクチャを紙の上にレイアウトしました。 新年の直前に、彼らは 5 つの実用的なプロトタイプを完成させました。 その間に、新しいマシンで何ができるかを十分にデモンストレーションできるように、十分なオペレーティング システム ソフトウェアが VIC-20 からコピーされ、書き直されました。 コンシューマー エレクトロニクス ショーでの熱狂的な歓迎を受けて、Commodore 64 は急いで生産に入りました。 大量出荷は 1982 年 8 月に始まり、衰えることなく続いています。
品質管理や業界で最も遅いディスクドライブに関する不満にもかかわらず、コモドール 64 は比類のない成功を収め、多くの競合他社を市場から追い出しました。 その成功の理由の 1 つは、価格が下がり続けていることです。発売当時の 595 ドルから現在は 149 ドルにまで下がり、消費者はその価格で 5 倍の価格のマシンが提供するものと同等かそれ以上のグラフィックスとサウンドを得ることができます。
1970 年代後半、MOS Technology は半導体会社として成功を収めました。 同社のエンジニアは人気の高い 6502 マイクロプロセッサを設計し、他にもいくつかの堅実な販売製品を製造していました。 当時西海岸の企業だったコモドールが 1976 年に MOS を引き継ぎ、その株が 1 ドル 10 セントで買われたときに多くの MOS エンジニアが辞めましたが、MOS はかなり自律的に運営することが認められました。
1979 年と 1980 年に、MOS テクノロジーは 6510 マイクロプロセッサを開発したと回想します。これは、追加の入出力ポート、6526 ペリフェラル コントローラ、多数の読み取り専用メモリ (ROM) チップ、および 4 つのプロセッサを備えた 6502 のマイナー リビジョンです。キロビットのランダム アクセス メモリ (RAM) チップ。 当時、MOS は Commodore だけでなく、Atari Inc.、General Electric Co.、Hewlett-Packard Co.、その他多くの顧客に機器を供給していました。
ビットマップ
画面上の各ドットがコンピュータ メモリ内の特定のビットの値によって制御される表示システム。 ドットあたり複数のビットにより、複数の色とシェーディングが可能になります。
文字マップ
画面上のドットのグループが、各ドットの値を含む小型ビットマップを指すコンピューター メモリ内の 1 つのワードによって定義される表示システム。 一般的な画面では多くのパターンが再利用されるため、文字マップはビット マップよりもメモリの使用量が少なくなります。
カラー時計
National Television Systems Committee (NTSC) 標準で色情報を送信するために使用される搬送波信号の周波数。 3.58メガヘルツ。
の
ディスク オペレーティング システム。 ファイルを開く、閉じる、名前変更、削除など、コンピュータがディスク ドライブを効率的に使用するために必要な一連の機能。
分野
NTSC 標準では、262.5 本のテレビ走査線のセットが 1 秒あたり 60 本の速度で送信されます。 2 つのインターレース フィールドが 525 ラインの 1 つのフレームを構成します。
割り込み
コンピュータが実行していることをすべて停止し、特別なルーチンを呼び出す信号。 割り込みを使用すると、コンピュータは周辺機器からの予測できない入力に応答しながらデータを処理できます。
スプライト
家庭用コンピュータやビデオゲーム機でアニメーション用に使用される可動グラフィックス オブジェクト。 スプライトは、その位置を制御するレジスタを変更するだけで移動できますが、ビットマップ メモリに描画されたオブジェクトは、新しいメモリ位置セットにコピーすることによってのみ移動できます。
最新の優れたグラフィックスおよびサウンド チップを設計するという決定が下されたとき、最初のステップは明らかでした。現在の高品質チップで何ができるかを見つけることです。 設計チームを編成する際、シャルパンティエは、1979 年に MOS に入社し、自宅で予備の試作基板から VIC-20 を設計した若いエンジニア、ロバート ヤンネスを採用しました。 チームは約 2 週間を費やして、業界全体で同等のチップを調査しました。
「私たちはマテル インテリビジョンを徹底的に調査しました」とウィンターブル氏は回想します。 「私たちはまた、Texas Instruments 99/4A と Atari 800 も調査しました。私たちは、これらの企業が現在のテクノロジーから推測することで、将来何ができるかを把握しようとしました。これにより、私たちのマシンのグラフィックス機能が何を必要とするかが明確になりました。」なれ。"
MOS 設計者は、TI マシンからスプライト、Intellivision から衝突検出技術とキャラクタ マップされたグラフィックス、独自の VIC-20 からビット マップなど、気に入ったアイデアを自由に借用しました。 次に、それらのアイデアをできる限り多く、シリコンの事前定義された領域に詰め込みました。
「アル(シャルパンティエ氏)には、特定のダイサイズ内で、私たちが計画したサイズ内で逆算して、できる限りすべてを投入する自由が与えられました。彼はレジスターがなくなると停止しました」とウィンターブル氏は語った。 「私たちは、許容できる歩留まりが得られるシリコン サイズを事前に定義しました。当時、5 マイクロメートル技術で妥当なダイ サイズは 200 ミル未満でした。その後、必要なものの中からウィッシュ リストに優先順位を付けました。あるべきものがそこにあり、私たちが望んでいるものがそこにあるため、さまざまな時点で必要な決定がかなり自動的に行われるようになりました。」
9 か月間、シャルパンティエは 2 人の製図者と 1 人のコンピューター支援設計オペレーターとグラフィック チップの開発に取り組み、一方、ヤネスは他の 2 人の製図者と 1 人の CAD オペレーターとサウンド チップの開発に取り組みました。 彼らには、今日のエンジニアリング ワークステーションのような洗練された設計ツールはまったくありませんでしたが、家庭用コンピュータ業界ではほとんどどこにも見られない、すぐに利用できる設計ツールが 1 つありました。それは、敷地内のチップ製造ラインでした。 これにより、チップの奥深くに埋め込まれた回路を取り出してテストチップとして実行できるようになり、回路の他の部分を気にせずに徹底的なデバッグが可能になるとウィンターブル氏は説明した。 当時コモドール社の生産エンジニアだったデイビッド・A・ジンビッキ氏は、通常の製造時間は数週間だったが、緊急時には専用製造施設が最短4日で設計を立て直すことができたと回想する。
コモドール 64 の開発コスト: 誰も知りません。
コモドール 64 の開発コスト: 誰も知りません。 「ジャック(トラミエル)が私を監視していたこと以外、私には正式な予算の説明責任はありませんでした。ジャックは予算は盗むためのライセンスだと言いました。」とウィンターブルは語った。 MOS Technology の製造施設はフル稼働ではなかったので、C-64 テスト チップとシリコンの複数のパスに使用される装置は、そうでなければアイドル状態になっていたでしょう。 「私たちはとにかくそこにいた人々を利用していました」とジエンビツキ氏は語った。 「シリコンは少し無駄になりますが、シリコンはかなり安いものです。ただの砂です。」
カスタム チップは通常高価であると考えられていますが、C-64 チップはそうではありませんでした。 開発コストが会社の諸経費に吸収されただけでなく、チップが別の会社によって製造されていた場合には支払われるべきマークアップもありませんでした。 また、チップは成熟した半導体製造プロセス向けに設計されていたため、歩留まりも高かった。
サウンドチップは7マイクロメートルのテクノロジーで設計されており、場所によっては6マイクロメートルに縮小されています。 (対照的に、4 年前に製造された Atari のビデオ コンピュータ システム用のカスタム チップは 6 マイクロメートルのテクノロジーで作られていました。) コモドールのビデオ チップは 5 マイクロメートルの機能で設計されました。
シリコンよりも設計時間が重視されたため、チップはコンパクトではなくシンプルにレイアウトされました。 「私たちは非常にモジュール的な方法でそれを行いました」とヤネス氏は言います。 たとえば、彼は次のように述べています。「発振器を構築する標準的な方法は、発振器を 1 つ構築し、それを必要なだけ多重化することです。私たちは発振器モジュールを構築し、それを繰り返しました。そのほうが、すべてのモジュールを作成するよりもはるかに高速だったからです」マルチプレクサのタイミング。」
(A)文字ポインタのストレージ(B)スプライトアドレスカウンター(C)文字アドレスカウンター(D)クロックジェネレーター(ホ)スプライト垂直コンパレータ(F)垂直タイミング制御(G)スプライト水平コンパレータ(H)水平タイミング制御(私)スプライトとキャラクターのシフト レジスタ(J)表示優先エンコーダー(K)カラーレジスター(左)スプライトキャラクタ衝突検出(男)ビデオ出力
Commodore 64 ビデオ チップである VIC II の領域の大部分は、8 つのスプライト (B、EH、L) に割り当てられています。 クロック生成回路 (D) はシステム全体に機能します。 文字生成専用の唯一の回路は、表示される文字の各行を保持するストレージ アレイ (A) と、文字表示の各ラスター ラインに適切な ROM データをフェッチするアドレス カウンタです。 3 つのモジュール (I、J、L) は、スプライトとキャラクター データを適切な順序で画面に送信し、スプライトとキャラクター データ間の衝突を報告する役割を果たします。 チップの中央部分は、スプライトを正しい水平および垂直位置で表示し、メモリからデータを取得するための回路で構成されています。 スプライトのデータのフェッチなど、さまざまなチップ機能のタイミングは、カウンターと ROM を組み合わせることによって行われます。 カウンタは ROM のアドレスを順に移動し、各 ROM アドレスの内容が適切な制御ラインを駆動します。 MOS Technology のロゴと設計者と製図者のイニシャルがチップの左端近くに表示されます。
「注目すべき点は、9 か月後に最初のパスを作成したとき、1 つの不良スプライトを除いて機能したことです」とウィンターブル氏は付け加えました。
1981 年 11 月にチップが完成しました。 当初の目的はゲーム機でしたが、この時点でパソコン市場は有望視され始めていました。 シャルパンティエ、ウィンターブル、トラミエルの会議で、パーソナル コンピューターを使用することが決定されました。 Charpentier 氏によると、カスタム チップはどちらのオプションにも対応できるように設計されているため、次に選択すべきは 16 キロバイトと 64 キロバイトのマシンの間でした。
「ジャック(トラミエル氏)は、私たちが製品を生産する準備が整う頃には、64,000 個のラムが私たちが使用できるほど安価になるだろうと賭けました」とシャルパンティエ氏は語った。
Commodore 64 の設計が始まったとき、最も重要な目標はシンプルさと低コストでした。 コモドール 64 の初期生産コストは 130 ドルが目標でした。 結果は135ドルでした。 このコンピュータは、開発を迅速化するために、VIC-20 と同じケースと同じサイズの回路基板を使用します。 「それは決定ですらなかった」とシャルパンティエ氏は語った。 「それは単なる常識でした。優れた製品を持っているのに、なぜそれを変更する必要がありますか?」 VIC-20 から Commodore 64 に切り替えるために、制作グループはカートリッジ スロットを小さくし、ケースの色を変更し、新しいラベルをデザインするだけで済みました。
さらに、多くのエンジニアがよく行うように、パフォーマンスを第一に、価格を第二に設計するのではなく、コモドールの小規模な設計チームは最初からコストを念頭に置いていました。 たとえば、ヤネスは、サウンド シンセサイザーを構築するための部品を探していた無邪気な高校生だったとき、経済を信条としていた。 「何かを設計するときは常に、可能な限り最小限のコンポーネントを使用したいと考えています。これは個人的な課題です。ゲート パッケージに予備の [ロジック] ゲートがある場合は、パッケージ全体を削除するように努めます。 」
コンシューマーエレクトロニクス業界では、伝統的に新製品が年に 2 回、1 月の最初の週末と 6 月の最初の週末の冬季および夏季コンシューマー エレクトロニクス ショー (CES) で販売代理店、販売店、報道機関、および競合他社に発表されます。 )。
「コモドールで働いていたときは、常に冬の CES に向けて何かを持っていなければなりませんでした」とヤネス氏は言いました。 1982 年のウィンター ショーでは、C-64 には大きな競争はありませんでした。Atari はまだ 400/800 コンピューターの種を蒔いていた段階でした。 マテル社はアクエリアス コンピュータを導入し、スペクトラビデオ社はメモリと機能が限られたコンピュータ/ゲーム マシンを導入しました。
ジエンビッキ氏は「ブースで見かけたのは、口を開けて『どうやって595ドルでそんなことができるんだ?』と言っているアタリ関係者だけだった」と回想した。
「私たちは大成功でした」とウィンターブル氏は付け加えた。
ショーの後、二度と再登場しない製品を時々展示することで知られていたコモドールは、64 を迅速に生産に投入する必要がありました。 機械の生産準備を整えるために、わずかな設計変更のみが加えられました。 「機能的に64に含まれるものは私が望んでいたものです。サウンドチップに含まれるものは私が望んでいたものであり、ビデオチップに含まれるものはアル(シャルパンティエ)が望んでいたものです。」とヤネス氏は語った。
実際、ジエンビツキ氏は、「ようやく生産に入った後、私たちは振り返って、なぜわざわざ1月以降に変更したのかと自問した。そうすれば、1台も売れなくなることはなかったし、開発費も大幅に節約できたはずだ」と語った。費用がかかります。」
変更の中にはかなり重要なものもありましたが、解決されたのと同じくらい多くの問題が発生した可能性があります。 ウィンターブル氏によると、最大の改善点はビデオチップの「問題」を修正したことだという。
シャルパンティエ氏が最初にビデオ チップを設計したとき、彼の目標は白黒とカラーの両方で最適なパフォーマンスを実現することであったと説明しました。 Atari や Apple で使用されているものなど、以前のビデオ チップの白黒周波数は 7.16 MHz (テレビのカラークロック周波数 3.58 MHz の 2 倍) でしたが、これでは 1 行に十分な文字を詰め込むことができませんでした。また、2 つの信号間のクロストークも誘発され、その色に応じてオブジェクトが画面上で左右にわずかに移動します。 1982 年 1 月の CES の後、シャルパンティエは、40 文字がテレビ画面に収まりきらないことに気づき、白黒のクロック レートを上げ、2 つのクロックを完全に非同期にしました。 しかし、カラーと白黒の情報セットは相互に位相を常に変化させていたため、「色の変化は素晴らしかったが、全体的に泳ぐような効果があった」と彼は回想する。 解決策は、システムにフェーズロックループを導入して、色と白黒の情報が一定の関係を持つようにすることでした。 シャルパンティエ氏も、これは「バンドエイドの解決策」であると認めた。
カリフォルニア州サニーベールにある Epyx Computer Software の製品開発ディレクター、Craig Nelson 氏によると、それはどのようなものであるかというと、「非常にエレガントな回路です」と彼は言いました。その真ん中で。」 (コモドールは現在、問題を解決するためにチップを再設計したと述べている。)
Commodore 64 を使用して作業するソフトウェア開発者の喜びと不満について詳しくは、以下を参照してください。
「バンドエイド」の結果、カラー情報と白黒情報は、位相が予期せず変化するのではなく、連続するビデオ フィールド上で相互に 180 度位相がシフトします。 これは、National Television Systems Committee (NTSC) 標準にさらに準拠しています。この標準では、白黒情報のクロック レートがカラー クロック レートの奇数倍音であることが要求され、その結果、2 つの関係が 1 つおきに自動的に逆転します。フィールド - あるフィールドは同相であり、次のフィールドは同相ではありません。 (NTSC 規格では、色信号と各ラインの先頭で送信される色基準信号との位相差によって色が決まります。)
この規格が開発された時点では、一般に利用可能な回路では白黒情報を色から完全に分離することができませんでした。色の変化は明るさの変化につながり、またその逆も同様でした。 NTSC が 2 つの信号の相対的な位相反転が連続するフィールドで発生する可能性があると規定したのは、これらの変化を時間の経過とともに平均化するためでした。 その結果、色の遷移はより快適になりますが、位相シフトにより静止した図形がジッターして見えるようになります。 ジッターは、英数字のような細い垂直線で特に顕著です。 しかし、コモドール 64 が考案されたとき、それは主にコンピューターではなくゲーム機である予定でした。
5 マイクロメートルのテクノロジー チップを 8 MHz のクロック レートで実行すると、1.5 ワット近くという大量の電力が消費されます。 チップの動作が速いだけでなく、VIC-20 の場合のように色が褪せるのを防ぐために、「色信号を徹底的に排除するために 12 ボルトにしました」とウィンターブル氏は回想します。 「暑さの問題が起こることは分かっていました。」
この時点で、Winterble は別の設計修正を行いました。ビデオ チップの周囲のシールド エンクロージャの蓋の内側に小さな金属タブを溶接しました。 コンピューターが組み立てられると、タブがチップ パッケージの上部に押し付けられ、熱伝導経路が形成され、シールドがヒート シンクに変わります。
マシンを改善する可能性のあるいくつかの変更は、生産を急いでいる間に行われませんでした。 たとえば、プリント基板上のサウンド出力用のワイヤはビデオ信号用のワイヤと並行して走っている、とヤネス氏は述べた。 その結果、サウンド出力に迷惑な 15,750 Hz のノイズが発生します。 回路の配線を変更するには時間がかかるだろうが、「そして機能する基板があった」と彼は説明した。 「その時点で、うまくいくものがあったとしても、それを変えることはありませんでした。」 コモドール氏によると、その後の回路基板の改訂により、これらの配線の配線が変更されたという。
しかし、設計者は実際には、マシンのパフォーマンスを低下させるリビジョンを含め、機能するものをいくつか変更しました。
しかし、設計者は実際には、マシンのパフォーマンスを低下させるリビジョンを含め、機能するものをいくつか変更しました。 元の設計では、信号をテレビに送信するために高品質の無線周波数変調器が指定されていましたが、より安価な変調器が置き換えられました。 「良いものなら6.25~6.50ドルだったが、最終的には3ドルほど使ってしまった」とシャルパンティエ氏は語った。
ウィンターブル氏は、この 3 ドルの変調器については異なる見解を持っています。「VIC-20 で使用していた 50 セントの変調器は十分な性能ではなかったので、より高価なものを使用することにしました」と彼は言いました。
Commodore 64 がプロトタイプの開発から生産に移行する際に困難だったのは、電子設計だけではありませんでした。物流には複雑な問題が伴いました。 C-64 はペンシルベニア州ノリスタウンの MOS で設計されました。 C-64 の製造を開始する VIC-20 組立ラインはカリフォルニア州サンタクララにありました。C-64 の生産開始に伴い、コモドールはペンシルベニア州ウェストチェスターにも新しい組立ラインを開設していました。追加の VIC がありました。 -C-64 用のディスクドライブが製造される日本国内の 20 の組立施設。 そして、C-64 回路基板は香港で製造されていました。
「とても楽しかった」とジエンビツキは語った。 「設計担当者は英国式ネジを選択します。製造側はメートル法を選択します。しかし、彼らは自分たちが持っているものを使いました。コモドールの製造は、意図しているかどうかに関係なく、物事を適合させるのが非常に上手でした。彼らの憲章は「出荷する」でした。 」
シャルパンティエ氏は、「『商品が期待できるほど良くないので発送しない』と言うのは、非常にタフな人間でなければならない。特に人々が商品を購入したいと叫んでいる場合にはなおさらだ」と説明した。
1982 年の春にコモドール 64 の生産が開始されたが、この論争が終わったわけではありません。 「重要なのは、走りながら問題を解決できるかどうかだ」とジエンビッキ氏は語った。
シャルパンティエ氏は、最初の争いの 1 つはプリント基板のレイアウトをめぐるものだった、と回想しています。 米国にあるコモドールの組立工場では自動部品挿入装置が使用されていましたが、日本の施設では自動部品挿入装置が使用されておらず、2 つの組立技術では異なる部品間隔が必要でした。 最終的に、C-64 の基板は自動挿入用にレイアウトされ、生産は自動ツールを備えた香港の新しい工場に移されました。
また、スイッチなどの多くのコンポーネントにも問題が発生しました。 「消費者向けスイッチとしてリストされているスイッチを選択することになります」とZiembicki氏は言う。 「あなたはそれを設計します。メーカーに電話して、妥当と思われる見積もりを取得します。すると、カリフォルニア(生産部門)は週に5万個を望んでいますが、メーカーは『私たちにはそれは無理です。これは消費者向けのスイッチですが、私たちは』と言いました。消費者の量に合わせたものではありません。」 その時点で電話は切られます。」
コモドールはエンジニアリングスタッフをカリフォルニアからペンシルベニアに移転したばかりだったため、設計エンジニアと生産施設の間のコミュニケーションがあまり良好ではなかったとジエンビッキ氏は説明した。 「たとえ答えが得られなくても、作業をやめることはできないという状況に達しました。生産側が入手できると考えたコンポーネントをそのまま進めることになります。」
また、外部のサプライヤーは必ずしも信頼できるとは限りませんでした。 「そのうちの 1 つは技術承認のために電源を提供しました」と Zembicki 氏は思い出します。 「それは承認されましたが、サプライヤーは誰にも言わずに設計を変更しました。」
コモドール 64 は 500 万台以上の生産中に内部設計に小さな変更が加えられ、製造コストは当初の 135 ドルの推定 3 分の 1 に削減されました。 量の増加はコスト削減の 1 つです。 (矢印をクリックすると、修正された回路基板が表示されます。)
シャルパンティエ氏は、制作グループとの関係はかなり良好だったと語った。 ウィンターブルの彼らに対する対応はそれほど友好的とは言えなかったが、彼はこれが許容できるものであると考えた。 「私個人としては、多くのことにおいて厳しいプレーをしなければならなかった」と彼は語った。 「その後、アルが入って何か良いことをするでしょう。その技術は緊張をかなり和らげ、物事を成し遂げる方法でした。」
最も悪名高い問題は「スパークル」、つまりディスプレイ画面に小さな光の点が現れる欠陥でした。 この問題はシャルパンティエが 1982 年 9 月に会社を辞める前に解決されましたが、欠陥の報告はクリスマスシーズンになっても続き、報道ではコモドール社の品質管理の悪さの一例として取り上げられました。 Canny の消費者は、90 日間の保証期間内に完全に正常な Commodore 64 を返品する口実としてそれを利用しました。 マシンの価格は発売後 2 か月で 200 ドル下落したため、この策略により所有者は購入価格の払い戻しを受け、より低い金額で別の C-64 を購入することができました。
スパークルは、システムの心臓部であるビデオ チップのバグが原因であると広く考えられていましたが、実際には、ヒットしたアーケード ビデオ ゲーム「アステロイド」を含む他のシステムでは問題なく使用されていた 300 万個の ROM チップが原因でした。 Commodore のエンジニア自身が最初にビデオ チップの問題を探しました。 シャルパンティエ氏によると、欠陥の原因がROMチップであることを特定するまでに3週間かかったという。 「問題はランダムな出来事でした。常に発生していたわけではありません。私たちは、ビデオ チップが何らかの理由で間違ったデータを認識しているのではないかと考えました。それが ROM である可能性さえ考えていませんでした。最後に、ロジック アナライザーをオンにしました。それを追跡しました。」 シャルパンティエと彼のグループが何年も前に設計したROMには、より高速に動作させるための特別な事前充電回路があったが、その回路によりスプリアス信号に敏感になっていた。 ビデオ回路と 6510 マイクロプロセッサはシステム バスの制御を交互に行っており、制御が一方から他方に渡されると、電圧スパイクが発生することがありました。
「たまたま正確なタイミングが当たっただけだ」とシャルパンティエ氏は語った。 「スパイクが数ナノ秒短かったり、長かったりしていれば、問題はなかったでしょう。スパイクは、ROM がそれを有効なアドレスとして認識するのに十分な幅でした。ROM は次のアドレス要求を無視し、ビデオ チップに応答を与えます。」間違ったデータです。」 ROM には C-64 文字セットが含まれていたため、画面表示には文字のランダムなスライスが散在していました。
Epyx の Nelson 氏によると、「画面上のこの紙吹雪の干渉のように見えるものは、輝きと呼ばれるものですが、非常に好ましくない特性を持っています。それはハードウェアの衝突を引き起こすため、スプライトはそれが実際に存在すると信じているのです。」 この輝きはビデオ チップに供給された不適切なデータによって引き起こされたため、可動表示オブジェクト (スプライト) が画面上の背景オブジェクトに重なっているかどうかをチェックする回路が起動されました。 そのため、画面上のオブジェクトの動きを制御するために衝突検知に依存しているソフトウェアは、輝きに直面すると暴走してしまいます。
ROM のバグは修正されましたが、Commodore は新しい生産ラインを立ち上げるため、しばらく外部のサプライヤーに頼らなければなりませんでした。 欠陥があったのは出荷された最初の数十万ユニットのみでした。 しかしネルソン氏は、「プログラマーにとって、それが修正されたかどうかは問題ではない。私たちのソフトウェアは、そこにあるすべてのマシンで動作する必要がある」と述べた。 プログラマーにとっての最善の解決策は、ROM の内容を信頼性の高い RAM にコピーすることだと同氏は説明しました。 ただし、これにより 2 キロバイトの RAM が無駄になります。
ROM の難しさに加えて、「論理的な間違いを犯しました」とシャルパンティエ氏は振り返ります。 このエラーは、シャルパンティエがコモドールを去った後に時々修正されましたが、初期の C-64 が各水平ビデオ ラインで誤った数のクロック サイクルを生成する原因となっていました。 「1つ違いました」と彼は言った。 「1 ラインあたり 65 クロック サイクルではなく、64 クロック サイクルでした。」
その結果、色遷移の問題を排除するはずだった、白黒情報とカラー情報の間の 180 度の位相シフトは発生しませんでした。 オブジェクトの色と背景の色によっては、画面上の一部のオブジェクトのエッジがわずかにずれて表示される場合があります。 これは、生産開始から約 5 か月で修正されました。
しかし、C-64 には依然としてリーディングエッジの問題が残っています。 画面上の任意の位置にスプライト情報または背景情報を表示する回路の応答が遅く、数ピクセル欠落した後でのみスプライトを背景情報にオーバーレイすることがあります。
マシンを改訂したのは C-64 の設計者だけではありませんでした。 流れ作業の労働者さえもその行為に加わった。
マシンを改訂したのは C-64 の設計者だけではありませんでした。 流れ作業の労働者さえもその行為に加わった。 色の品質を自動的にテストすることは事実上不可能であるため、組立ラインの作業員は、色が見えるまで色信号と白黒信号を制御するポテンショメータを回すように指示されました。 シャルパンティエが思い出したように、作業員はポテンショメータを可能な限り回すと色が飽和するが、同時に白黒信号も消去されることにすぐに気づきました。 組み立てライン作業員の「改訂」に気づく前に、数千台のコンピュータが出荷されていました。 その時までに、一部の評論家は C-64 の「派手な」色を非難していました。
これらの変更は C-64 の導入以来行われてきましたが、このマシン用の商用ソフトウェアを作成する設計者は、さらにいくつかの変更を加えたいと考えています。 そのような変更の 1 つは、適切な品質管理です。 「彼らはテストをしない」とエピュックスのネルソン氏は言う。 「新品のコモドールを開けてみると、痕跡が切れているのを見つけました。彼らは明らかに電動ドライバーを使ってC-64を組み立てていますが、時々ネジを外して痕跡を切り刻んでいます。どうしてそれが最終検査に合格したのか疑問に思われるかもしれません。 ? そうですね、これらのトレースはディスク ドライブ コネクタに接続されていますが、明らかにテストされていません。」
今になって思えば、シャルパンティエ氏はコモドールの間違いの一つを「品質に少しでも近づけなかった」と述べた。
C-64 のアドオン ハードウェアの設計者が表明した苦情の 1 つは、その最小限の設計により、ハードウェアの各部分とソフトウェアの間で望ましくない相互作用が発生するというものです。 たとえば、ジョイスティックとゲーム パドル ポートの制御に使用される回路は、押されたキーのキーボードをスキャンするために 1/60 秒ごとに借用されます。 ジョイスティックのスイッチが閉じている場合、キーボード スキャン ソフトウェアはキーが押されたことを報告します。 ジョイスティック ポートに接続されているデバイスは、予期しない応答を引き起こす可能性があります。この問題は、2 つの機能に別個のハードウェアが使用されている場合には発生しません。
もう 1 つの欠陥は、コンピュータの粗雑な内部ソフトウェアです。 システムの電源を入れると、ベーシックで起動します。 これは、Commodore が製造した最初の Pet コンピュータの時代の名残です。当時はディスク ドライブがなかったため、ディスク オペレーティング システムはありませんでした。 「まともなディスク オペレーティング システムは、Pet Basic 4.0 まで開発されませんでした」とシャルパンティエ氏は言います。 C-64 は、「搭載できるよりも多くの ROM が必要になるため」、この高度なバージョンの Basic を使用しません。 代わりに、このマシンは VIC-20 から借用した、はるかに原始的なバージョンの Basic を使用します。
「ソフトウェアは目に見えるものではなく、持ったり、触ったり、触れたりすることができないため、お金を費やす価値はありませんでした。」
Commodore 64 の Basic からの最も明らかな省略は、サウンドとグラフィック チップを制御するコマンドです。 「グラフィックスやサウンドを制御するためのソフトウェアがシステムに組み込まれる予定はまったくありませんでした」とヤネス氏は語った。 「それはコモドールの哲学の明らかな部分でした。製品をより高価にするものや、大多数の購入者が使用しないものにはお金を無駄にしないのです。」
「コモドールは常にソフトウェアに対してリップサービスを行ってきた」とシャルパンティエ氏は語った。 「彼らは十分にやりくりしており、そのギャップを埋めるために外部の情報源に頼っています。コモドールはジャック・トラミエルの延長であり、彼にとってソフトウェアは目に見えるものではなく、手にしたり、感じたり、触れたりすることはできませんでした。お金をかける価値はありませんでした。」
C-64 の設計者には、まだ実装されていない変更について独自の計画がありました。 彼らは開発を短縮するために VIC-20 ケースを使用しましたが、8 ~ 10 か月で置き換える予定の新しいケースが設計されていました。 「前方が薄くて、くさびのような形になっていた」とシャルパンティエ氏は語った。 「VIC-20 ケースは見た目がダサいといつも思っていました。」 いくつかの新機能もマシンに追加される予定でした。
これらの変更が加えられていないという事実は、C-64 の成功に実際には影響を与えていない、とカリフォルニア州バークレーのバークレー・ソフトワークス社長ブライアン・ドーハティ氏は断言した。テレビ画面のために行われたものだ」と彼は語った。 「それは素晴らしいシステムになりました。」
C-64 の 1 つの大きな欠陥は、マシン自体ではなく、ディスク ドライブにあります。 適度に高速なディスク ドライブと適切なディスク オペレーティング システム (DOS) を備えた C-64 は、ビジネス市場で Apple や、おそらくは他のビジネス コンピュータと競争できる可能性があります。 しかし、現在のディスクドライブでは、おもちゃとしてのイメージを失うことは困難です。
「ビジネス指向のソフトウェアは、C-64 では期待どおりに見栄えがしません」とドハティ氏は述べています。「ベース システムが十分ではないからではなく、ディスク ドライブへのアクセスが遅すぎるためです。どのようなビジネス アプリケーションでも、ディスクアクセスが多い。」 また、DOS は非常に弱く、ディレクトリの自動作成や維持、ファイルの追跡などの機能が欠けているため、C-64 用の「ビジネス ソフトウェアを開発するのははるかに困難です」と同氏は付け加えた。 「Lotus [Development Corp.、人気の統合ビジネスソフトウェアパッケージのメーカー]のような企業は、IBM PC用のソフトウェアを開発するよりもはるかに困難に直面している。なぜなら、PCは存在しないオペレーティングシステム構造を持っているからだ。この製品の場合。
「ROM 内の基本的な入出力システムは、オペレーティング システムの原則に従って、かなりクリーンに実行されます。必要なルーチンはすべてそこにありますが、ディスクの最初のトラックを自動的に読み取ってブートするための機能も必要です。より洗練されたオペレーティング システムをメモリに取り込みます。」
Epyx の Nelson 氏によると、実際にはディスク ドライブにはディスクの最初のトラックを自動的に読み取る機能がありますが、文書化されていないため、広く使用されていません。
コモドールのエンジニアはどのようにしてディスクドライブを失敗させたのでしょうか?
「ディスクドライブ? 何というひどい話でしょう!」
「ディスクドライブ? 何というひどい話でしょう!」 シャルパンティエ氏は語った。 「それは、私たちが受け入れたマーケティング上の意見が 1 つありました。マーケティング側は、C-64 は VIC-20 と互換性がある必要があると言いました。」
VIC-20 のディスク ドライブは、Commodore Pet コンピュータのドライブの直接の子孫であるとシャルパンティエ氏は説明しました。 「Pet ディスク ドライブにはパラレル IEEE-488 バスがあり、初期の頃はデータをパックするために奇妙なフォーマットを使用していました。外側のトラックではディスクが内側のトラックよりも速く移動するため、データ レートが遅くなります。 「より多くのデータを詰め込むために変更を加えました。それは素晴らしいアイデアでしたが、他の人と互換性がないという点で不器用でした。それがすべての始まりでした。」
VIC-20 ディスク ドライブは日本で設計され、バスは節約のためにパラレルからシリアルに変更されました。 VIC-20 で使用されているインターフェイス コントローラ (6522) のシリアル インターフェイス部分が動作しないため、ドライブは非常に遅くなります。 その結果、6502 プロセッサは、ペリフェラル コントローラにバイトを送信してクロック、データ、およびハンド シェイクを処理させるのではなく、直接ソフトウェア制御の下で一度に 1 ビットを送信します。
「私たちは6526(6522を置き換えるためにC-64で使用されていたインターフェース・コントローラ)のシリアル・シフト・レジスタを修正しましたが、ディスク・ドライブに互換性がなければ使用できませんでした」とシャルパンティエ氏は続けた。 「そして、C-64 のプロセッサは 512 マイクロ秒ごとに 40 マイクロ秒間オフになるため、ディスク インターフェイスを制御する割り込み信号を見逃し続けました。解決策は、ドライブの速度をさらに低下させることです。」
ディスクドライブの大幅な変更というコストを発生させずに変更できた唯一の要素は速度でした。 C-64 の設計者が VIC-20 との互換性を無視することができていたら、もっとうまくできただろうに。 そして最終的には、もちろん、C-64 は IC-20 のディスク ドライブと互換性がありませんでした。
「すべては 6522 シリアル インターフェイスが機能していないことが原因でした」とシャルパンティエ氏は結論付けました。
他のメーカーも C-64 のディスクドライブの問題を解決しようとしています。 C-64 用に独自のディスク ドライブを販売している企業もありますが、コモドールが管理する市場に参入するのは難しいことがわかっています。 他の企業は、ディスク転送速度を高速化するために RAM にロードできるプログラムを販売していますが、このオプションは Basic でのプログラミングに C-64 を使用する場合にのみ適用されます。 事前にパッケージ化されたソフトウェアがシステムにロードされると、プログラムが RAM から追い出されます。 Epyx は、ディスク転送を 5 倍高速化する ROM ベースのプログラムをリリースしました。 Nelson 氏によると、このプログラムはあらゆるディスクベースのソフトウェアで動作するとのことです。 「それは可能だ」とシャルパンティエ氏は言った。 「C-64 ディスク ドライブには独自のマイクロプロセッサとメモリがあり、そこに情報を送信してオペレーティング システムを変更したり、シリアル バス プロトコルを高速化したりできます。」
C-64 ディスク ドライブの標準ソフトウェアは、ディスクの 2.5 回転ごとに 256 バイトのセクター、つまり 1 秒あたり 512 バイトを読み取ることができます。 Epyx が使用するプログラミング手法により、1 秒あたり最大 2.5 キロバイトの転送速度が実現されました。 (他の低速ディスク ドライブの中でも、Atari の 810 は 1 秒あたり 1000 バイトの転送速度を誇り、Apple II ディスク ドライブは最大 15,000 バイト/秒で動作します。)
コモドールのチームは、C-64 の初期生産コストを低く抑えるために懸命に取り組んでいました。 垂直統合により部品コストを抑えることができ、ウィンターブルは追加機能のアイデアを拒否しました。 デザイナー自身もペニーを数えることが信じられていました。 シャルパンティエ氏は、ジャック・トラミエル氏から「多くのことを学んだ」と語った。彼は「コストに本当にこだわる人だった。 私たちはすべてのトランジスタについて悩みました。」
発売時の製造コストが 135 ドル、小売価格が 595 ドルだったコモドール 64 の小売価格は、業界標準の 1 ~ 3 を余裕で上回ります (数量が増加すると、おそらく 1 ~ 2 になるでしょう)。 しかしコモドールは、現在149ドルとなっている小売価格と、現在35ドルから50ドルの間とみられる製造コストの両方を下げる方法を模索し続けている。
コモドールはこのコスト額を確認していない。 バークレー ソフトワークスのドハティ氏は、マテル社とイマジック社での経験に基づいて C-64 部品のコストを見積もりました。
さらなるコスト削減の取り組みとして、コモドールはTTLをより安価なカスタムチップに置き換え、サウンドチップとグラフィックチップの歩留まりを高める方法を見つけました。
すべてのコスト削減手順がシステムに悪影響を及ぼさなかったわけではありません。 6567 ビデオ チップは当初セラミックでパッケージ化されていましたが、プラスチックの方がはるかに安価でした。 シャルパンティエ氏は、「セラミックパッケージは非常に高価なので、プラスチックパッケージを実現するために、銅鉛フレーム、パッケージ内の金属インサート、その他の信じられないほど多くのことを試しました。しかし、できませんでした」と語った。 」
設計チームは自律的でした。彼らは独自の市場調査を行い、独自の仕様を開発し、生産まで一貫して取り組みました。
チップはプラスチックに包まれています。 コモドールのエンジニアらは、チップの再設計に加え、セラミックと同様に熱を放散できるプラスチックパッケージを開発したと述べた。
プラスチックパッケージに変更されて以来、C-64 に関する多数の新たな問題、つまりマシン固有の問題または温度依存の問題が報告されています。 ソフトウェア業界全体で広く知られている欠点の 1 つは、プログラムがグラフィックス モードを切り替えるとき (ビットマップの表示から文字の表示に) チップがロックする傾向があることです (補足の「豊富なグラフィックス モードのコレクション」を参照)。 「我々が制作していたゲームが生産ラインで失敗し始めた」とEpyxのネルソン氏は語った。 「その後、(欠陥のあるディスクを)再度テストすると、正常に動作することがわかりました。それは、どのマシンに装着するか、また温度によって異なります。」 シャルパンティエは、元の設計では一部の回路線がフローティングのままになっていたのではないかと推測しました。 処理が不十分で動作温度が高いと、チップに故障点までストレスがかかる可能性があります。
一部の C-64 で発生し始めているもう 1 つの問題は、ビットマップ画面の水平スクロールの不具合です。 マーキュリー・ニュースは、カリフォルニア州サンノゼで開催されたC-64のEpyxスポーツゲームである夏季大会の最近のレビューで、水泳競技中に顕著な「フラッシュバルブ効果」を批判した。 ネルソン氏によれば、これは「影響」ではなく、マーキュリー・ニュースの査読者が使用した C-64 は単に水平スクロールが適切に行われないだけだという。
このマシンには欠点もありますが、コモドール 64 の設計者は、プロジェクトの初期段階で享受した自由のおかげで、多くの重要な進歩を思いついたと信じています。 設計チームは自律的でした。彼らは独自の市場調査を行い、独自の仕様を開発し、生産まで一貫して取り組みました。 しかし、本番環境のバグが解決され、コモドールに勝者がいるとわかるとすぐに、それまで西海岸で VIC-20 とペット コンピューターを扱っていた企業の官僚機構が動き出しました。
「その時点で、多くのマーケティング グループが私たちを『支援』するためにやって来ました」とウィンターブル氏は思い出します。 「次の製品定義は、あるグループが考え出し、別のグループが生産に移す責任を負い、アルのグループはチップのみの研究開発を行うことになっていた。」
「製品定義にマーケティングを関与させても、それをすぐに完了することは決してできません」とヤネス氏は言う。 「そして、マーケティングは常に何か他のものと互換性のある製品を求めているため、何かユニークなものを作る能力を無駄にしてしまいます。」
シャルパンティエ氏は、彼らの不満を次のようにまとめた。「プロジェクトに多くの人を巻き込むと、結局は自分を正当化することになる。コモドール 64 が技術的には当時製造可能などの製品と同じくらい優れており、低コストであることはわかっていた」 、しかし今では、マーケティング担当者の「これがないから売れない、あれもできない」という言葉に耳を傾けなければなりませんでした。
「私たちがC-64プロジェクトを行うことを可能にした自由は、おそらくあの環境では二度と存在しないでしょう。」
元のコモドール 64 設計チームのうち、コモドールに残っているのはロバート ラッセルだけです。 彼は現在デザインマネージャーを務めています。 チームの残りのメンバー (Albert Charpentier、Robert Yannes、Charles Winterble に加え、プロジェクトのデバッグと運用開始を支援した David Ziembicki と Bruce Crocket) は、1983 年の春に Commodore を退職し、Peripheral Visions という会社を設立しました。 彼らの計画は、別のコンピュータを設計することでした。 運転資金を得るために、彼らはアタリ社からビデオ コンピューター システム用のキーボードを設計する契約を結びました。このキーボードはプレビューされましたが、ビデオゲーム市場の崩壊によりリリースされることはありませんでした。 Peripheral Visionsは、VCSキーボードがCommodoreに属するプロジェクトであるとしてCommodoreから訴訟を起こされた。 この記事の執筆時点では、訴訟は解決されていませんでした。
Peripheral Visions は Ensoniq に名前を変更し、最初の製品である音楽シンセサイザーを間もなくリリースする予定です。 現在、Albert Charpentier は Ensoniq のエンジニアリング担当副社長、Bob Yannes はシニア デザイナー、David Ziembicki は生産管理マネージャーです。 Charles Winterble 氏は Peripheral Visions を退職し、現在はコネチカット州ウェストハートフォードの Coleco Industries Inc. でエレクトロニクス部門のグループ副社長を務めています。また、Jack Tramiel 氏は現在、家庭用コンピュータ市場で Commodore の主な競合相手であった Atari Corp. の CEO を務めています。 C-64との競争で10億ドル近くを失う前に。
コンピュータ書店には、C-64 に関する幅広い書籍が取り揃えられています。 推奨されるものの中には、ベルギーのフェヌールにある DataCap から発行されている、Bilton Bathurst 著の『Commodore 64 の実際の内部』と、ミシガン州グランドラピッズの Abacus Software から発行されている Lothar Englisch と Norbert Szczepanowski 著の The Anatomy of the 1541 ディスク ドライブがあります。 Creative Computing や Compute! などの雑誌。 ソフトウェアをレビューし、C-64 上で動作するプログラムを公開します。 Commodore 64 自体は、ほとんどの大規模小売店で見つけることができます。
「128色を作るつもりはなかった」とコモドール64のチーフデザイナーであるアルバート・シャルパンティエは主張した。「チップ上の面積が大きすぎた。
それにもかかわらず、Commodore 64 は、他の多くのグラフィックス機能に加えて、ドキュメントに記載されている 16 色よりもはるかに多くの色を表示できます。 カリフォルニア州バークレーのバークレー・ソフトワークス社長、ブライアン・ドハティ氏は次のように説明した。「各ピクセルの幅はNTSCカラークロックのほぼ半分なので、2つの異なる色のピクセルを交互に配置すると、思っている2色が得られるのではなく、まったく新しい位相の解釈が得られるのです。」 [下の図を参照してください。] もちろん、新しい位相の解釈により、新しい色が生成されます。 ピクセルの幅はカラー クロックの 7/16 であるため、生成される色は画面上で周期的にシフトし、利用することが困難になります。
シャルパンティエ氏は、ビデオ チップを設計する前に、競合他社を検討するのに数週間を費やしたと回想しました。 テキサス・インスツルメンツ、アタリ、マテルの製品に加えて、彼は自身の過去の研究も研究しました。 「搭載可能なグラフィックス モードを検討するのに約 1 週間を費やしたことを覚えています。」
Commodore 64 ビット マップは、ほとんどのコンピュータの回路とは異なり、キャラクタ グラフィックの表示に使用される回路からほとんどの回路を借用しています。 標準的なビット マップでは、上記の 8 ドット セグメントが A、B、C、D… の順序で連続したメモリ バイトに格納されます。 Commodore 64 では、A、E、I、M、Q、U、Y、CC、B、F… の順序で保存されます。 これは、文字の 8 × 8 ドットのパターンを模倣しています。
「これはエンジニアリングのエスカレーションの一例でした」と、ビデオチップの設計当時にコモドールのワールドワイドエンジニアリングディレクターを務めていたチャールズ・ウィンターブル氏は語った。 「私たちは奇妙なカラー モードを発見しました。アルの想像力は狂ってしまいました。カラー モードの中には何の目的も持たないものもあれば、非常に賢いものもありました。」
Commodore 64 には、キャラクタ マップとビットマップという 2 つの基本モードがあります。 キャラクタ マップ モードでは、画面は 1000 個のポインタで構成され、各ポインタは ROM または RAM に保存されているキャラクタを選択します。 各ポインターには 8 ビットが含まれるため、256 個の 8 × 8 ピクセルの文字を選択できます。 ビットマップ モードでは、8000 のメモリ位置が画面の定義に使用され、1 ビットが 1 つのピクセルに対応します。 ビットマップ モードは最大限の柔軟性を提供しますが、特に複数の画面が定義されている場合はメモリを消費します。 ほとんどの画像は繰り返しの要素で構成されているため、文字マップ モードは見た目ほど制限的ではありません。
文字マップ モードにはいくつかのバリエーションがあります。 標準形式では、8 x 8 ピクセルのセルが 256 個含まれており、解像度は水平方向に 320 ピクセル、垂直方向に 20 ラインです。 画面上の 1,000 個の位置のそれぞれに異なる前景色を含めることができますが、すべて同じ背景色を使用します。 「これは色を混ぜる際の制限です」とドハティ氏は言う。 通常、テキストは標準の文字マップ モードを使用して表示されます。
National Television Systems Committee の標準では、色は各ラインの先頭で送信されるカラー バーストに対するカラー キャリアの位相によって決定されます。 上の正弦波は、その規格に基づく位相に応じて色付けされています。 2 つの正弦波間の位相差はわずかであるため、赤からオレンジへの変化は比較的きれいです。 ただし、赤から青に変化すると、赤の正弦波が上昇し始める点から青の正弦波が下に到達する点までの位相が不定になるため、画面のエッジが不鮮明になる可能性があります (約 300 ナノ秒の期間)。 。 この問題は、NTSC 標準に準拠するシステムでは普遍的です。
マルチカラー文字モードでは、各セルの前景色が 1 つと、背景色が 3 つから選択できます。 前景色に使用できるのは 16 色のうち 8 色だけです。 背景色はビデオ チップ内の 3 つのレジスタによって定義されます。 セル内の各ピクセルを定義するのに 1 ビットではなく 2 ビットが使用されるため、セルの解像度は標準の 8 x 8 ではなく、垂直 8 ライン x 水平 4 ピクセルになります。 各ピクセルの幅は通常の 2 倍であるため、表示解像度は 160 x 200 に減少します。
拡張カラー モードでは、画面上の各位置に 4 つの背景色と前景色を選択できます。 16 色すべてが利用可能で、画面はフル解像度で表示されます。 唯一の制限は、各文字ポインターの 2 ビットが色の選択に割り当てられるため、文字数が 256 ではなく 64 になることです。
ビットマップ モードはキャラクタ マップ モードを応用したものであるため、その使用は思ったほど簡単ではありません。 「ほとんどのラスター スキャン アルゴリズムは、メモリが直線的に配置されることを期待しています。そのため、他のシステムで既に使用されている多くのソフトウェアを使用するのは困難です。」と Dougherty 氏は述べています。 一般的なビット マップは、連続するメモリ位置の水平ライン上の連続するピクセルで構成されますが、C-64 ビット マップは、8 つの連続するメモリ位置を使用して、8 つの連続するラインからそれぞれ 8 つのピクセルを格納します。 続く 8 つの場所には、同じ 8 ラインからのさらに 8 つのピクセルが格納されます [図を参照]。 これは、文字セットのピクセルが ROM にレイアウトされる方法を模倣し、同じ回路を両方のモードで使用できるようにします。
標準のビットマップ モードでは、「1」ビットが前景色に表示され、「0」ビットが背景色に表示されます (8 × 8 ピクセル グループごとに異なる前景色を使用できます)。 マルチカラー ビットマップ モードでは、2 ビットを使用して各ピクセルを定義するため、可能な 16 色から 4 色を選択できますが、画面解像度は再び 160 x 200 に低下します。
Commodore 64 ハードウェアのさまざまな機能を単独で使用することも、組み合わせて使用することもでき、印象的な効果を実現します。 ここに示す画面では、Commodore 64 のラスター割り込み機能を使用して、色と解像度を変更し、利用可能なスプライトの数を増やし、さまざまなグラフィックス モードを切り替えています。 Epyx のサマー ゲーム ビデオ ゲームのこのオープニング画面では、フラグの行間の 2 つのラスター割り込みを使用してカラー レジスタを変更し、このマルチカラー キャラクタ マップ ディスプレイで使用できる色の数を増やしています。 スプライトは、色や複雑なディテールを追加するためにも使用されます。
スプライト (背景表示に重なる独立して移動可能なオブジェクト) を組み込むことは、コモドール 64 プロジェクトの初期に大きな注目を集めました。 実際、スプライトの操作と表示に使用される回路は、マシンのビデオ ディスプレイ チップの 3 分の 2 を占めます。
コモドール 64 コンピュータの主任設計者であるアルバート・シャルパンティエ氏は、「今から思えば、もう少しビットマップ機能をマシンに組み込んだ方が良かったのですが、私たちはスプライトに重点を置きました」と語った。 チップ設計時の前提はゲーム機でした。
そしてもちろん、優れたゲームでは、独立して動くオブジェクトが多数使用されます。 C-64 プロジェクトのデザイナーでもある Robert Yannes 氏は、Atari のいわゆるプレーヤー ミサイル スプライトを研究していたことを思い出します。 「彼らはひどいものだ」と彼は言った。 「色が足りず、大きさも足りず、望み通りにならない。」 Texas Instruments 99/4A のスプライトは「素晴らしかったですが、1 色しかなく、十分な大きさのオブジェクトを作成するにはそれらをグループ化する必要がありました。」と彼は言いました。
C-64 スプライトは、ソフトウェアのオーバーヘッドを最小限に抑えながら、X 軸と Y 軸の両方に独立して移動できる多色のオブジェクトであるとグループは決定しました。
スプライトは、通常、縦方向拡大、横方向拡大、両方向拡大の 4 つのサイズで表示できます。 また、マルチカラー モードで表示することもできます。このモードでは、解像度は粗くなりますが、比率は維持されます。
「私たちはスプライトについて議論するのに多くの時間を費やしました。『どれくらいの大きさにすべきか? x で 2 倍に拡大する必要があるか? y で 2 倍に拡張する必要があるか? 衝突検出を行う必要があるか?』と考えました。」とシャルパンティエ氏は述べています。
一連の数学的計算によってこれらの疑問の多くが解決された、と同氏は説明した。 「ビデオ ラインを移動すると、63 マイクロ秒の時間があります。私は 2 MHz 未満で動作するメモリを使用するつもりでした。つまり、1 ラインあたり 114 回のメモリ フェッチのみを意味します。これ以上は必要ありません。プロセッサは、少なくとも 40 回のフェッチが必要です。背景情報も 40 個あり、背景情報とプロセッサ スライスを簡単にインターリーブできるため、40 というアーキテクチャ上の数値は適切でした。
「つまり、114 からプロセッサー用の 40 とバックグラウンド用の 40 を引いた結果、34 回のフェッチが残りました。スプライト ポインター (メモリ内のスプライト情報が格納されている場所を示す) を取得するには 8 回のフェッチが必要でした。つまり、26 回のフェッチが残りました。8 回あった場合スプライトを作成すると、スプライトごとに 3 回フェッチできるようになりました。」
Charpentier 氏は、ビデオ チップがすでに適切な行アドレスと列アドレスをステップスルーしているため、画面表示中にダイナミック RAM をリフレッシュするための追加のサイクルは必要ないと説明しました。 垂直ブランキング期間中のみ、メモリは個別にリフレッシュされます。
「手に入るサイクルをすべて使用したところ、スプライトあたり 3 バイトになりました」と彼は言いました。 (クロック速度の変更により、ラインで利用できるサイクル数は 126 に増加しましたが、スプライト回路を変更するには遅すぎました。)
スプライトあたり 3 バイトによって、スプライトの水平サイズ (24 ピクセル) が決まりました。 次に、シャルパンティエは、スプライトを効率的に保存できるように、2 の累乗に近づく 3 の倍数 (バイト) を探しました。 「たまたま 24 × 21 ビットで 63 バイトの情報が得られました」と彼は言いました。 したがって、各スプライトの高さは 21 行になります。
スプライトは画面上または画面外の任意の場所に配置できるだけでなく、水平方向または垂直方向に通常の 2 倍の寸法に引き伸ばして、48 x 42 ドットの大きさのスプライトを生成することもできます (ただし、解像度は向上しません) )。 [上の図を参照。] スプライトはマルチカラー モードでも定義できます。その場合、サイズは変わりませんが、水平解像度は 12 ピクセルに低下します。
コモドール 64 の回路は、ブラウン管テレビの走査線にデータをフェッチする時間を計測します。
コモドール 64 のサウンド チップ設計者でありシステム アーキテクトであるロバート ヤネス氏は、「私はシンセサイザーを使った仕事をしていましたが、音楽シンセサイザーのチップが欲しかったです」と語ります。彼は 1981 年の春にチップの開発を始めました。 2 人の製図者と 1 人の CAD オペレーターによって作成されます。 「私たちが何をしているのか、他の誰もよく理解していませんでした」と彼は言いました。 「高校時代から取り組んでいた基礎研究を経て、実際の設計にはわずか 4 ~ 5 か月しかかかりませんでした。」
彼のチップと典型的なビデオゲーム サウンド チップの主な違いは、より正確な周波数制御と、サウンドの強さを形成するための独立したエンベロープであるとヤネス氏は説明しました。 「ゲームのサウンドエフェクトのほとんどは、最大音量かまったく音量がありません。これでは本当に音楽が不可能になります。オルガンを除いて、そのようなエンベロープを使用して楽器のサウンドを漠然とでもシミュレートする方法はありません。 」
他のサウンド チップのボリューム コントロールを使用してサウンドのエンベロープを形成することは理論的には可能ですが、このような複雑なタスクに取り組んだプログラマーはほとんどいませんでした。 サウンドの形成を容易にするために、Yannes はエンベロープ コントロールをハードウェアに組み込みました。声ごとに 1 つのレジスタを使用して、サウンドの立ち上がりの速さを決定します。 2 つは音が持続するレベルとそのレベルに達する速さを決定します。 もう 1 つは音符が消えるまでの速さを決定するものです。 「人々がこれを理解するまでには長い時間がかかりました」と彼は結論づけた。
Yannes 氏はまた、音符のデータを同等の周波数に変換するためのルックアップ テーブルをハードウェアに組み込みましたが、それには過剰なシリコンが必要でした。 「私がそれを取り出したのです」と、C-64の設計時にコモドール社のワールドワイドエンジニアリングディレクターを務めたチャールズ・ウィンターブル氏は語った。
サウンド チップの正確な機能は、今日でも明らかではありません。これは主に、チップが最初に設計されたときに誤った仕様が書かれていたためです。 「仕様書は配布され、さまざまな人々によってコピーされ、書き直され、ついには実質的に意味をなさなくなった」とヤネス氏は語った。 欠陥のある文書の例としては、チップが複数の波形の論理積を演算できるという主張があります。 チップは、制御レジスタのいずれかに設定されているビットに応じて、三角波、のこぎり波、または方形波のいずれかを生成できます。 「1つのビットがオンであれば他のビットがオフであることを確認するインターロックはありません」とヤネス氏は述べた。 「それではシリコンが多すぎるでしょう。」 したがって、複数の波形が選択された場合、出力マルチプレクサの内部ノートが放電され、最小の振幅が現れます。
仕様シートのもう 1 つの誤りは、オンチップ フィルタに関するものです。 「フィルターは最後に取り組んだものです」とヤネス氏は認めた。 「時間がなくなってしまった。コンピューターのシミュレーションでは『これはあまりうまくいかないだろう』と言われましたが、実際にはうまくいきませんでした。」 フィルターは平凡だったかも知れませんが、フィルターがどのように機能するかを説明する方程式は明らかに間違っていました、とヤネス氏は回想します。 「彼らは噛み合っていませんでした。誰も私にそれらを修正する機会を与えませんでした。」
これらの誤った方程式に直面して、ほとんどのソフトウェア設計者はサウンド チップのみを使用します。
C-64 用の初期のゲーム ソフトウェアを書いた日本のプログラマーの中には、異なるアプローチをとった人もいたとヤネス氏は述べています。「彼らは仕様に従ってそれを書きました。何かが機能するかどうかは彼らにとって重要ではありませんでした。その結果、プログラムは聞こえない効果音を作りました。」
1981年1月 ビットマップ キャラクタマップ カラークロック DOS フィールド割り込み スプライト (A) (B) (C) (D) (E) (F) (G) (H) (I) (J) (K) (L) (男)