ファミコンの驚くべき発想力
ファミコン ノ オドロクベキ ハッソウリョク
限界を突破する技術に学べ
- 著者:
- 松浦健一郎 / 司ゆき(マツウラ, ケンイチロウ / ツカサ, ユキ)
- 出版社:
- 技術評論社
- 出版日:
- 2010年11月
- ISBN:
- 9784774144290
- シリーズ:
- ポケットカルチャー
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
小さなコンピュータに詰まった緻密な設計思想。限られた資源を活用する驚異のプログラミング技術。ゲームの基本構造と同時に生まれたゲーム文化。これから全く新しいゲームを考えることは可能か? ゲームを考えるための原点回帰。
技書の森解説
『ファミコンの驚くべき発想力』 (松浦健一郎、司ゆき 著、技術評論社、2010 年 10 月刊) は、ファミコンのハードウェアの仕組みと、限られた資源の中でゲームを動かしたプログラミングの技術を解説した本です。副題は「限界を突破する技術に学べ」で、技術評論社の PC ポケットカルチャーシリーズの 1 冊です。版元の書籍ページは、低スペックに見えるファミコンがどのようにゲームの表現を可能にしていたのか、当時のプログラマーが限られたリソースをどう活用していたのかに迫る本と案内し、対象としてゲームプログラミングの初心者、ゲームプログラマを目指している人、ゲーム好きの人を挙げています。紙の書籍の発売日は 2010 年 10 月 29 日です。
序章と全 5 章の構成、ハードウェアから節約の技まで
本書は、はじめにと序章「RPG のパーティはなぜ 4 人?」に続く第 1 章から第 5 章までの全 5 章と、おわりに、参考文献で構成されています。序章は、キャラクターを表示するスプライト機能と、パーティの制限を超える工夫を扱います。第 1 章「ファミコンのハードウェア」は CPU、グラフィックス、メモリ、サウンド、コントローラー、ROM カートリッジの拡張を取り上げ、当時のパソコンや後のゲーム機との性能の比較で終わります。第 2 章「ファミコンに見るプログラム技術の基本」は、60 分の 1 秒を周期にして動くゲームの処理、VBlank の検出と割り込み、ダブルバッファー、6502 アセンブリプログラミングのレジスターとメモリアクセスを扱います。
第 3 章「数字を自在に操る計算のテクニック」は、乗算と除算、実数の扱いを、シフト演算、テーブル、DDA、固定小数点数といった手段から取り上げます。第 4 章「限界ギリギリに挑むワザと発想」は、乱数を使ったステージ生成と迷路生成のアルゴリズム、スーパーマリオとドラクエに見るパターン数やパレット数の節約、サイクル数の制御とラスタースクロール、バッテリーバックアップと復活の呪文によるセーブデータの保存を扱います。最後の第 5 章は、「オブジェクト指向プログラミングの功罪」「ガベージコレクションの功罪」「ミドルウェアという諸刃の剣」などの節で、ファミコン以後のプログラミングを論じます。
6502 の 8 ビット CPU と、画面を書き換えられる時間
ファミコンの CPU は 6502 系の 8 ビット CPU で、演算の中心になるアキュムレータと 2 つのインデックスレジスターはどれも 8 ビット幅、プログラムカウンターだけが 16 ビット幅です。8 ビットで表せる整数は 256 通りしかないため、得点や座標のような大きな値は複数のバイトに分けて扱います。6502 には乗算と除算の命令が無く、2 のべき乗による掛け算と割り算はビットをずらすシフト演算で済ませ、それ以外はシフトと加算の組み合わせや、あらかじめ計算した表を引く方法で補います。小数を扱う仕組みも無いので、整数の下位のビットを小数部とみなす固定小数点数が使われます。
ブラウン管のテレビは画面を上から下へ走査して描き、1 画面を描き終えてから次の画面を描き始めるまでの間を垂直帰線期間と呼びます。描画の途中で表示用のメモリを書き換えると画面が乱れるため、ファミコンのゲームはこの短い期間に画面の更新を済ませます。1 秒に約 60 回描き直される画面に合わせて処理を回す ゲーム開発 では、この期間の扱いが処理の組み立ての土台になります。
2010 年刊の本書と、版元の著者紹介
版元の書籍ページの著者紹介 (2026 年 10 月時点) によれば、松浦健一郎は東京大学工学系研究科電子工学専攻修士課程を修了し、研究所勤務を経て、フリーのプログラマ、ライター、講師として活動しています。司ゆきは東京大学理学系研究科情報科学専攻修士課程を修了し、学部生時代からライターとプログラマの仕事を続けています。同じページには、2012 年 8 月 22 日発売の電子版も掲載されています (2026 年 10 月時点)。
本書は、序章のスプライトとパーティの話から、ファミコンのハードウェア、6502 アセンブリの基本、乗算と除算と実数の計算、データとパターンの節約、セーブデータの保存、ファミコン以後のプログラミングまでを序章と全 5 章に収めています。
言及した記事 (1 件)
この本に興味がある方におすすめ
関連する本

松浦健一郎 の他の書籍
関連記事
手が止まったら本を開け - デバッグとしての読書
コードを書いていて手が止まる瞬間は、読書のチャンスです。実装に詰まったときに技術書を開く習慣が、問題解決力とコードの質の両方に効いてくる理由を解説します。
OS / 低レイヤー本ガイド - コンピューターの仕組みを学ぶ技術書の選び方
OS、コンパイラー、ネットワークなど低レイヤーを学べる技術書の 4 ジャンルと、どこから始めるべきかの指針、賞味期限の見極め方を紹介します。
本を読むスピードは気にしなくていい
1 ページ読むのに 10 分かかっても問題ありません。プログラミングの本はゆっくり読むのが正解である理由と、焦らず読み進めるコツを紹介します。