「ファミコンの驚くべき発想力」読書感想文

全体
  • 実はソフト・ハードとも、すごい頑張って作りこんであることを知って驚いた(小並感)。
    • でも、自分じゃ絶対頑張りたくない領域だなと思った(ローレイヤすぎて大変そう)。
  • 自分が情報科学科の一年生の時に読んでおきたかった。
    • CPU演算とか、アセンブリでの処理のところとか、特に。
ふーん、と思ったこと
  • スクロール
    • ファミコン本体側ではビデオRAMを2画面分しか用意してないので、そのままだと縦・横どちらかのスクロールしかできない。
    • 縦・横・斜めスクロールは、カートリッジ側でビデオRAMを増設し、4画面分にすることで実現している。
  • 画面の更新
    • 画面(正確には画面の部品:スプライトや背景)の更新は、PPU(Picture Processing Unit)が活動していないわずかな隙を狙って行う必要あり。
      • わずかな隙=垂直復帰期間(VBlank):CRTの電子ビームが、右下に来てまた右上に行くまでの期間。
    • ダブルバッファリングなどないため。
勉強になったこと
  • 非同期(割り込み)処理にハンドラ(リスナ)を使う理由:
    • もしハンドラ(リスナ)を使わないとすると、プログラム側で監視することになる。
      • 「if (Aボタンが押されたら) {……} 」みたいな記述をいたることろに書くことになる。
      • ずっと監視するのはCPUに負荷がかかる(昨今の処理性能で考えると大した負荷ではないけど)。
  • ゲームプログラムの処理は日本語でも書ける。
    • むしろ抽象度が上がるので、まずは日本語で書いたほうがよいのかも。
    • なので、積極的に書いていくべき。